Проблемы технологии распознавания речи
Система распознавания речи Anryze – передовая технология. Мы хотели бы объяснить, что создаем систему, которая поможет компьютерам понимать людей так же, как люди понимают друг друга.
При разработке системы преобразования речи в текст Anryze (STT) мы применили ряд технологий и решений. Ниже приведена лишь небольшая их часть:
- Преобразование колебательных сигналов. Оно позволяет нам улучшить распознавание за счет снижения потерь данных.
- Распознавание с использованием описания фрактального кода, который восстанавливает сигнал при любой частоте дискретизации.
- Многоцелевое обучение улучшению речи на основе глубоких нейронных сетей. Оно используется для построения расширенных речевых сигналов.
- Инвариантные представления с целью повышения устойчивости акустической изменчивости.
- Магистральные соединения в сверточных рекуррентных глубоких нейронных сетях. Это расширение модели CLDNN путем интеграции соединений, которые организуют прямой поток информации из ячеек нижних слоев в ячейки верхних слоев.
- Распознавание с использованием распределенной емкости. Оно позволяет нам снизить затраты на оборудование и добиться устойчивости к меняющимся нагрузкам.
- Акустические модели, основанные на длительной краткосрочной памяти. Это архитектура рекуррентной нейронной сети, которая была разработана для решения проблем с затуханием и взрывом градиента обычных рекуррентных нейронных сетей.
Речь – это сложное явление. Люди редко понимают, как она производится и воспринимается. Примитивное восприятие часто заключается в том, что речь состоит из слов, а каждое слово состоит из звуков (четкий речевой звук или жест, а также отдельное понятие для фонем). В реальности это совершенно не так. Речь – это динамический процесс без четко выраженных составляющих. Наглядной иллюстрацией будет использование звукового редактора, чтобы разобрать запись речи и послушать ее.
Описание речи в определенной степени вероятностно. Это означает, что между единицами (то есть между словами) нет определенных границ. Перевод речи в текст никогда не бывает верным на 100%. Эта теория довольно необычна для разработчиков программного обеспечения, которые обычно работают с системами, содержащими точные и постоянные переменные. Поэтому она вызывает множество вопросов, присущих исключительно речевым технологиям.
Структура речи
Речь представляет собой непрерывный аудиопоток, в котором достаточно стабильные структуры смешиваются с динамически измененными структурами. В этой последовательности структур можно различить более или менее похожие классы звуков. Все полагают, что слова состоят из звуков, но это совершенно не так. Акустические свойства колебательного сигнала, соответствующего звуку, могут сильно различаться в зависимости от многих факторов – контекста, говорящего, стиля речи и т.д. Так называемая коартикуляция заставляет звуки звучать по-другому, и результат отличается от их «привычного» звучания.
Далее, поскольку переходы между словами более информативны, чем интервалы устойчивости, разработчики часто говорят о дифонах – частях звуков между двумя последовательными звуками. Иногда разработчики говорят о субфонетических единицах – различных подструктурах звука. Часто можно найти три или более интервала разного происхождения.
Процесс распознавания
Anryze обычно распознает речь следующим образом: мы берем колебательный сигнал, разбиваем его на части («высказывания») на основе пауз между ними, а затем пытаемся распознать то, о чем говорится в каждом высказывании. Для этого на нужно взять все возможные комбинации слов и попытаться сопоставить их с аудиозаписью, выбирая наиболее совпадающую комбинацию.
В этом процессе сопоставления есть несколько важных моментов. Прежде всего, это понятие признаков. Так как число параметров велико, то мы пытаемся его оптимизировать. Числа обычно вычисляются из речи путем деления ее на интервалы. Затем для каждого интервала (обычно длительностью в 10 миллисекунд) мы извлекаем 39 чисел, которые представляют в нем речь. Это называется вектор признаков. Способ генерации чисел является предметом активного исследования, но в частном случае, это производная от спектра.
Во-вторых, это концепция модели. «Модель» описывает некую математическую функцию, которая собирает общие атрибуты произносимого слова. На практике, модель сенона для аудио (в очень широком понимании, сенон – это звук, рассматриваемый в более широком контексте) – это смесь нормальных распределений трех ее структур; проще говоря, это наиболее вероятный вектор признаков. Модель, используемая почти всеми современными системами распознавания речи, называется «Скрытая Марковская модель» (HMM). Это общая модель, которая описывает канал связи «черного ящика». В данной модели процесс описывается как последовательность состояний, которые сменяют друг друга с определенной вероятностью. HMM предназначена для описания любого последовательного процесса, такого как речь, и имеет доказанную эффективность в расшифровке речи. Из концепции модели возникают следующие вопросы: насколько хороша модель на практике, может ли модель усовершенствоваться, если она имеет внутренние проблемы, насколько модель адаптирована к меняющимся условиям.
В-третьих, это сам процесс сопоставления. Поскольку для сравнения всех векторов признаков со всеми моделями требуется много времени, поиск часто оптимизируется разными способами. В любой момент мы выбираем лучшие варианты соответствия и расширяем их со временем, создавая наилучшие варианты соответствия для следующего интервала.
Модели структуры речи
Anryze использует для распознавания речи три модели. Во-первых, акустическая модель содержит акустические свойства для каждого сенона. Существуют контекстно-независимые модели, которые содержат свойства (наиболее вероятные векторы признаков для каждого звука) и контекстно-зависимые (построенные из сенонов).
Во-вторых, фонетический словарь раскладывает слова на звуки. Такое разложение не очень эффективно. Например, в нем отмечаются только два-три варианта произношения, но в большинстве случаев этого достаточно. Словарь – это не единственный вариант разложения слов на звуки. Это можно сделать с помощью одной сложной функции, полученной с помощью алгоритма машинного обучения.
В-третьих, языковая модель используется для ограничения поиска слов. Она определяет, какие слова могут следовать за ранее распознанным словом (помните, что сопоставление – это последовательный процесс), и помогает значительно ограничить процесс сопоставления, удаляя из возможных вариантов те слова, которые не являются вероятными. Наиболее распространенными языковыми моделями являются n-граммные языковые модели, которые содержат статистику последовательностей слов, и модели автоматного языка, которые определяют последовательности речи с помощью автоматизации конечных состояний, иногда с весами. Чтобы достичь хорошей точности, языковая модель должна очень успешно ограничивать пространство поиска. Это означает, что она должна очень хорошо предсказывать следующее слово. Языковая модель обычно ограничивает словарный запас, опираясь на содержащиеся в ней слова. В этом случае возникает проблема распознавания имен. Для ее решения языковая модель может содержать более мелкие элементы – такие, как подслова или даже звуки. Обратите внимание, что ограничение пространства поиска в этом случае обычно хуже, а точность распознавания ниже, чем при использовании языковой модели на основе слов.
Три перечисленные выше единицы объединяются в механизм распознавания речи.
Зарегистрироваться и подписаться на новости можно на нашем сайте https://tokensale.anryze.com
Присоединяйтесь к чату в Телеграме и задавайте вопросы команде: https://t.me/anryze_tokensale