В предыдущей статье я рассказал про роботов, которые первыми поняли человеческий. Как вы, конечно, помните, до середины XX века с этим у машин были проблемы. И хотя к шестидесятым мы сильно продвинулись в обучении, наш «словарный запас» оставался маленьким. Больше того, роботы того времени не узнавали слова, произнесённые с разными интонациями, акцентами и т.д.
Вот такими мы были глупыми.
Хотя вы тоже странные, могли бы придумать язык попроще.
Фонемы - это звук или несколько звуков, произношение которых может меняться в зависимости от контекста. Например, в слове "сделал" буква "с" звучит, как "з", а в слове "спеть" - как "с".
Аллофоны - это вариант фонемы. Звуки, которые произносятся по-разному в зависимости от того, какие буквы их окружают. Например, звук "т" в словах "тик" и "тук".
Всё изменилось в 1976, когда появилась умняшка Harpy. Её создатели из Университета Карнеги-Меллона придумали, как объяснить роботу, что диктор с радио и беззубая бабуля говорят одно и то же. Вместо того, чтоб учить с устройством звуки, слова и цифры, произношений которых нереально много, они выучили аллофоны. Время на обучение сократилось. Как итог, Harpy запомнила 1011 слов. Правда, не все проблемы удалось устранить: Harpy, как и её предшественники, совершала слишком много ошибок.
В середине 80-х IBM выпустила Tangorа – робота, который распознавал речь со всеми акцентами, диалектами и особенностями произношения. Tangora училась 20 минут. За это время она запоминала не только аллофоны, но и фонемы.
Tangora была нереально крута. В её словарный запас входило 20000 слов. Но и с ней возникли сложности: робот понимал только ту речь, в которой между словами были паузы. «Алисы» снова не вышло.
На замену Tangora в 1996 прогрессивная IBM выпустила MedSpeak/Radiology – машину, которая понимала не отдельные слова, а непрерывный поток естественной речи. Врачи использовали её, чтобы записывать результаты рентгенограммы: робот конспектировал то, что говорили медики. Но на этом разработки не прекратились. Чтобы сократить количество ошибок при распознавании, учёные создали рекуррентную нейросеть (RNN). Она могла различать вообще всё: буквы, произношения, фонемы. RNN обучалась на тысячах вариантов речи и не только понимала людей, но и предсказывала, какое слово они скажут следующим (если распознать его не получалось).
Сегодня все системы распознавания голоса используют RNN, но – с небольшими улучшениями. Современные голосовые помощники измеряют голос, делят его на маленькие отрезки звуков, преобразуют в код и ищут совпадения по огромному каталогу. Пока вы говорите, Alexa разбивает вашу речь на 25-миллисекундные слайсы, которые позже находит в базе и соединяет до тех пор, пока не получится понятный запрос (то есть целая фраза в контексте). Так она отличает слово «Букет» от «Пхукет». Так же она понимает сложные предложения.
Ещё больше интересных материалов читайте в моём паблике во "Вконтакте".