Первое устройство для распознавания речи появилось в 1952 году, оно могло понимать произнесённые человеком цифры. 40 лет спустя были представлены первые коммерческие программы, распознающие речь человека. Они были предназначены для людей, которые в силу физиологических особенностей не могли набирать текст вручную. Сейчас же функция распознавания речи есть практически в любом смартфоне, она позволяет нам взаимодействовать голосом с приложениями, облегчая и упрощая нашу жизнь. Как же работает распознавание речи — об этом в сегодняшнем выпуске.
Если произнести голосовой запрос, например, адрес места назначения, смартфон услышит не улицу и номер дома, а звуковой сигнал, в котором звуки плавно перетекают друг в друга, не имея чётких границ. Задача системы распознавания речи — восстановить по этому сигналу то, что было сказано. Стоит отметить, что одна и та же фраза, произнесённая разными людьми в разной обстановке, будет давать совершенно непохожие друг на друга сигналы. Правильно их интерпретировать помогает система акустического моделирования.
После произнесения голосового запроса он записывается смартфоном и отправляется на серверы, где определяется уровень помех и происходит шумоотчистка и отделение полезного сигнала. Затем запись разделяется на маленькие фрагменты (фреймы), например, длиной 25 миллисекунд с шагом 10 миллисекунд, то есть внахлёст. Таким образом из одной секунды речи получается сто фреймов.
Сначала каждый фрейм пропускается через акустическую модель. Система с машинным обучением, определяет варианты произнесенных слов и контекст. Точность результатов напрямую зависит от полноты фонетического алфавита системы. Для каждого звука изначально строится сложная статистическая модель, которая описывает произнесение этого звука в речи. Система распознавания сопоставляет входящий речевой сигнал с фонемами, а уже из них собирает слова. Например, фонетический алфавит Яндекса состоит из 4000 элементарных единиц, которые включают фонемы, их части и сочетания. Каждый фрейм сопоставляется не с одной фонемой, а с несколькими, подходящими с разной степенью вероятности. Кроме того, система учитывает вероятности переходов, то есть определяет, какие фреймы могут идти следом за конкретной фонемой. Для этого применяются данные о произношении, морфологии и семантике. Таким образом система подбирает варианты слов, которые затем анализирует на формы, части речи и возможные статистические связи между ними.
Далее в процесс вступает языковая модель, при помощи которой система определяет вероятный порядок слов и при необходимости восстанавливает нераспознанные слова по смыслу, исходя из контекста и имеющейся статистики.
В результате полученная информация поступает в основной блок системы распознавания — декодер. Этот программный компонент совмещает данные от акустических и языковых моделей и на основании их объединения выдает конечный результат в виде наиболее вероятной последовательности слов.
Благодаря машинному обучению системы устойчивы к шуму и умеют распознавать речь с акцентом. Точность современных систем распознавания речи превышает 90 процентов.