На прошлой неделе мы получили письмо от одного кандидата, не прошедшего собеседование на английском. Оказалось, что наши коллеги стали участниками технического эксперимента, проходившего параллельно с интервью. Приводим письмо с минимальными правками и благодарим автора за интересную идею и смелость в ее реализации.
«Полагаю, я вам не подхожу, так как «завалил» тест английского языка, к сожалению. Да, я не имею хорошей практики разговорного английского, но это мне не мешает читать data sheet’ы и общаться с зарубежной поддержкой по почте. Собственно сейчас не об этом, зная заранее, что я не пройду тест на знание языка, я не мог не воспользоваться шансом применить технический подход к данной проблеме. Хотя у меня не было возможности вживую проверить свой метод заранее, тем более в общении с человеком, хорошо владеющим английским и чувствующим особенности произношения, я решил попробовать.
Должен принести извинения за эксперимент сотруднику, проводившему тест, и за не не очень хорошее качество звука, связанное с техническими особенностями «моего» комплекса.
В качестве компенсации за участие в эксперименте, расскажу его идею. Она хотя и не нова, думаю, будет интересна вашим техническим специалистам, а при должном уровне подготовки и командном подходе на ее основе можно получить интересный результат и даже коммерческий продукт.
Опишу суть: я использовал два компьютера, подключенных к интернету, и Google Translate с распознаванием и синтезатором речи. Для этого аналоговый тракт своего мобильного телефона я соединил с аудиокартами двух системных блоков.
Один системный блок настроен на перевод с английского на русский, соответственно аудиовыход телефона был подключен к линейному входу аудиокарты. В настройках звуковой карты был выставлен режим дублирования сигнала с линейного входа на выход наушников моей гарнитуры, таким образом я слышал оригинал речи и видел правильность распознавания речи Google Translate.
Второй системный блок настроен на перевод с русского на английский, его микрофонный вход был подключен к микрофону гарнитуры, которая была на мне. Аудиовыход системного блока я соединил с аналоговым трактом телефона.
Таким образом я видел английский текст и слышал оригинал, видел перевод, а наговаривая ответ на второй компьютер, я синтезировал его в речь. Поскольку Google говорит женским голосом, я использовал цифровые фильтры Fruity Loops для придания ему мужского низкого тембра и в аналоговый тракт телефона отправлял уже обработанный звук.
Хотя я и завалил тест английского языка, причина была не в неправильном распознавании. Меня подвело узкое горлышко системы, а именно интернет-соединение 3G — к сожалению, у меня нет другой скоростной линии. Утром, насколько я понимаю, базовая станция была нагружена меньше, и мне хватало пропускной способности. Но после обеда сеть просела в самый неподходящий момент.
Результатом эксперимента стало то, что я смог продержаться на первых нескольких предложениях, затем на синтез речи перестало хватать скорости, я перешел на самостоятельные ответы и потерпел фиаско. Хотя я и видел правильный перевод, быстро строить предложения я не умею. Забавно, что собеседник не заметил переключения с робота на человека, выделив только отключение генератора комфортного шума, из-за чего в паузы мой собеседник думал, что связь пропала наглухо.
Cистему нужно усовершенствовать — сделать предобработку сигнала с микрофона, отрезав шумы, не дававшие эффекта тишины, важной для Google. Тогда он сам сможет прерывать обработку и выделять составляющую голоса, что позволит сократить исходящий трафик, поднять скорость соединения и не терять пакеты UDP. В этом случае система получается достаточно боевой. Переносим это на два Raspberry PI и получаем переводчик в реальном времени.
Сам я эту идею реализовать не могу — нужен DSP для предобработки, необходимо делать схемотехнику, разводить топологию печатной платы, писать алгоритм обработки для DSP (хотя они есть в открытом доступе), потом писать программу для Raspberry PI с удобным функционалом и правильным взаимодействием с API Google. Эта задача мне по силам, но скорее подходит для команды разработчиков. Все-таки в ней выделяется слишком много подзадач.
Думаю, идея интересная и найдет своего покупателя, компании воплотить ее будет просто, а у меня она не будет пылиться на полках собственного энтузиазма.
Спасибо за то, что рассмотрели мою кандидатуру!»
Автор: DataArt