Таким вот образом механические колебания превращаются в набор чисел, пригодный для обработки на современных ЭВМ.

Отсюда следует, что задача распознавания речи сводится к «сопоставлению» множества численных значений (цифрового сигнала) и слов из некоторого словаря (русского языка, например).

Давайте разберемся, как, собственно, это самое «сопоставление» может быть реализовано.

Входные данные

Допустим у нас есть некоторый файл/поток с аудиоданными. Прежде всего нам нужно понять, как он устроен и как его прочесть. Давайте рассмотрим самый простой вариант - WAV файл.

Формат подразумевает наличие в файле двух блоков. Первый блок - это заголовка с информацией об аудиопотоке: битрейте, частоте, количестве каналов, длине файла и т.д. Второй блок состоит из «сырых» данных - того самого цифрового сигнала, набора значений амплитуд.

Логика чтения данных в этом случае довольно проста. Считываем заголовок, проверяем некоторые ограничения (отсутствие сжатия, например), сохраняем данные в специально выделенный массив.

Распознавание

Чисто теоретически, теперь мы можем сравнить (поэлементно) имеющийся у нас образец с каким-нибудь другим, текст которого нам уже известен. То есть попробовать «распознать» речь… Но лучше этого не делать:)

Наш подход должен быть устойчив (ну хотя бы чуть-чуть) к изменению тембра голоса (человека, произносящего слово), громкости и скорости произношения. Поэлементным сравнением двух аудиосигналов этого, естественно, добиться нельзя.

Поэтому мы пойдем несколько иным путём.

Фреймы

Первым делом разобьём наши данные по небольшим временным промежуткам - фреймам. Причём фреймы должны идти не строго друг за другом, а “внахлёст”. Т.е. конец одного фрейма должен пересекаться с началом другого.

Фреймы являются более подходящей единицей анализа данных, чем конкретные значения сигнала, так как анализировать волны намного удобней на некотором промежутке, чем в конкретных точках. Расположение же фреймов “внахлёст” позволяет сгладить результаты анализа фреймов, превращая идею фреймов в некоторое “окно”, движущееся вдоль исходной функции (значений сигнала).

Опытным путём установлено, что оптимальная длина фрейма должна соответствовать промежутку в 10мс, «нахлёст» - 50%. С учётом того, что средняя длина слова (по крайней мере в моих экспериментах) составляет 500мс - такой шаг даст нам примерно 500 / (10 * 0.5) = 100 фреймов на слово.

Разбиение слов

Первой задачей, которую приходится решать при распознавании речи, является разбиение этой самой речи на отдельные слова. Для простоты предположим, что в нашем случае речь содержит в себе некоторые паузы (промежутки тишины), которые можно считать “разделителями” слов.

В таком случае нам нужно найти некоторое значение, порог - значения выше которого являются словом, ниже - тишиной. Вариантов тут может быть несколько:

  • задать константой (сработает, если исходный сигнал всегда генерируется при одних и тех же условиях, одним и тем же способом);
  • кластеризовать значения сигнала, явно выделив множество значений соответствующих тишине (сработает только если тишина занимает значительную часть исходного сигнала);
  • проанализировать энтропию;

Как вы уже догадались, речь сейчас пойдёт о последнем пункте:) Начнём с того, что энтропия - это мера беспорядка, “мера неопределённости какого-либо опыта” (с). В нашем случае энтропия означает то, как сильно “колеблется” наш сигнал в рамках заданного фрейма.

  • предположим, что наш сигнал пронормирован и все его значения лежат в диапазоне [-1;1];
  • построим гистограмму (плотность распределения) значений сигнала фрейма:

И так, мы получили значение энтропии. Но это всего лишь ещё одна характеристика фрейма, и для того, что бы отделить звук от тишины, нам по прежнему нужно её с чем-то сравнивать. В некоторых статьях рекомендуют брать порог энтропии равным среднему между её максимальным и минимальным значениями (среди всех фреймов). Однако, в моём случае такой подход не дал сколь либо хороших результатов.
К счастью, энтропия (в отличие от того же среднего квадрата значений) - величина относительно самостоятельная. Что позволило мне подобрать значение её порога в виде константы (0.1).

Тем не менее проблемы на этом не заканчиваются:(Энтропия может проседать по середине слова (на гласных), а может внезапно вскакивать из-за небольшого шума. Для того, что бы бороться с первой проблемой, приходится вводить понятие “минимально расстояния между словами” и “склеивать” близ лежачие наборы фреймов, разделённые из-за проседания. Вторая проблема решается использованием “минимальной длины слова” и отсечением всех кандидатов, не прошедших отбор (и не использованных в первом пункте).

Если же речь в принципе не является “членораздельной”, можно попробовать разбить исходный набор фреймов на определённым образом подготовленные подпоследовательности, каждая из которых будет подвергнута процедуре распознавания. Но это уже совсем другая история:)

MFCC

И так, мы у нас есть набор фреймов, соответствующих определённому слову. Мы можем пойти по пути наименьшего сопротивления и в качестве численной характеристики фрейма использовать средний квадрат всех его значений (Root Mean Square). Однако, такая метрика несёт в себе крайне мало пригодной для дальнейшего анализа информации.

Вот тут в игру и вступают Мел-частотные кепстральные коэффициенты (Mel-frequency cepstral coefficients). Согласно Википедии (которая, как известно, не врёт) MFCC - это своеобразное представление энергии спектра сигнала. Плюсы его использования заключаются в следующем:

  • Используется спектр сигнала (то есть разложение по базису ортогональных [ко]синусоидальных функций), что позволяет учитывать волновую “природу” сигнала при дальнейшем анализе;
  • Спектр проецируется на специальную mel-шкалу , позволяя выделить наиболее значимые для восприятия человеком частоты;
  • Количество вычисляемых коэффициентов может быть ограничено любым значением (например, 12), что позволяет “сжать” фрейм и, как следствие, количество обрабатываемой информации;

Давайте рассмотрим процесс вычисления MFCC коэффициентов для некоторого фрейма.

Представим наш фрейм в виде вектора , где N - размер фрейма.

Разложение в ряд Фурье

Первым делом рассчитываем спектр сигнала с помощью дискретного преобразования Фурье (желательно его “быстрой” FFT реализацией).

То есть результатом будет вектор следующего вида:

Важно понимать, что после этого преобразования по оси Х мы имеем частоту (hz) сигнала, а по оси Y - магнитуду (как способ уйти от комплексных значений):

Расчёт mel-фильтров

Начнём с того, что такое mel. Опять же согласно Википедии, mel - это “психофизическая единица высоты звука”, основанная на субъективном восприятии среднестатистическими людьми. Зависит в первую очередь от частоты звука (а так же от громкости и тембра). Другими словами, эта величина, показывающая, на сколько звук определённой частоты “значим” для нас.

Преобразовать частоту в мел можно по следующей формуле (запомним её как «формула-1»):

Обратное преобразование выглядит так (запомним её как «формула-2»):

График зависимости mel / частота:

Но вернёмся к нашей задаче. Допустим у нас есть фрейм размером 256 элементов. Мы знаем (из данных об аудиоформате), что частота звука в данной фрейме 16000hz. Предположим, что человеческая речь лежит в диапазоне от hz. Количество искомых мел-коэффициентов положим M = 10 (рекомендуемое значение).

Для того, что бы разложить полученный выше спектр по mel-шкале, нам потребуется создать “гребёнку” фильтров. По сути, каждый mel-фильтр это треугольная оконная функция , которая позволяет просуммировать количество энергии на определённом диапазоне частот и тем самым получить mel-коэффициент. Зная количество мел-коэффициентов и анализируемый диапазон частот мы можем построить набор таких вот фильтров:

Обратите внимание, что чем больше порядковый номер мел-коэффициента, тем шире основание фильтра. Это связано с тем, что разбиение интересующего нас диапазона частот на обрабатываемые фильтрами диапазоны происходит на шкале мелов.

Но мы опять отвлеклись. И так для нашего случая диапазон интересующих нас частот равен . Согласно формуле-1 в на мел-шкале этот диапазон превращается в .

m[i] =

Обратите внимание, что на мел-шкале точки расположены равномерно. Переведём шкалу обратно в герцы с помощью формулы-2:

h[i] =

Как видите теперь шкала стала постепенно растягиваться, выравнивая тем самым динамику роста “значимости” на низких и высоких частотах.

Теперь нам нужно наложить полученную шкалу на спектр нашего фрейма. Как мы помним, по оси Х у нас находится частота. Длина спектра 256 - элементов, при этом в него умещается 16000hz. Решив нехитрую пропорцию можно получить следующую формулу:

f(i) = floor((frameSize+1) * h(i) / sampleRate)

что в нашем случае эквивалентно

f(i) = 4, 8, 12, 17, 23, 31, 40, 52, 66, 82, 103, 128

Вот и всё! Зная опорные точки на оси Х нашего спектра, легко построить необходимые нам фильтры по следующей формуле:

Применение фильтров, логарифмирование энергии спектра

Применение фильтра заключается в попарном перемножении его значений со значениями спектра. Результатом этой операции является mel-коэффициент. Поскольку фильтров у нас M, коэффициентов будет столько же.

Однако, нам нужно применить mel-фильтры не к значениям спектра, а к его энергии. После чего прологарифмировать полученные результаты. Считается, что таким образом понижается чувствительность коэффициентов к шумам.

Косинусное преобразование

Дискретное косинусное преобразование (DCT) используется для того, что бы получить те самые “кепстральные” коэффициенты. Смысл его в том, что бы “сжать” полученные результаты, повысив значимость первых коэффициентов и уменьшив значимость последних.

В данном случае используется DCTII без каких-либо домножений на (scale factor).

Теперь для каждого фрейма мы имеем набор из M mfcc-коэффициентов, которые могут быть использованы для дальнейшего анализа.

Примеры код для вышележащих методов можно найти .

Алгоритм распознавания

Вот тут, дорогой читатель, тебя и ждёт главное разочарование. В интернетах мне довелось увидеть множество высокоинтеллектуальных (и не очень) споров о том, какой же способ распознавания лучше. Кто-то ратует за Скрытые Марковские Модели, кто-то - за нейронные сети, чьи-то мысли в принципе невозможно понять:)

В любом случае немало предпочтений отдаётся именно СММ , и именно их реализацию я собираюсь добавить в свой код… в будущем:)

На данный момент, предлагаю остановится на гораздо менее эффективном, но в разы более простом способе.

И так, вспомним, что наша задача заключается в распознавании слова из некоторого словаря. Для простоты, будем распознавать называния первых десять цифр: “один“, “два“, “три“, “четыре“, “пять“, “шесть“, “семь“, “восемь“, “девять“, “десять“.

Теперь возьмем в руки айфон/андроид и пройдёмся по L коллегам с просьбой продиктовать эти слова под запись. Далее поставим в соответствие (в какой-нибудь локальной БД или простом файле) каждому слову L наборов mfcc-коэффициентов соответствующих записей.

Это соответствие мы назовём “Модель”, а сам процесс - Machine Learning! На самом деле простое добавление новых образцов в базу имеет крайне слабую связь с машинным обучением… Но уж больно термин модный:)

Теперь наша задача сводится к подбору наиболее “близкой” модели для некоторого набора mfcc-коэффициентов (распознаваемого слова). На первый взгляд задачу можно решить довольно просто:

  • для каждой модели находим среднее (евклидово) расстояние между идентифицируемым mfcc-вектором и векторами модели;
  • выбираем в качестве верной ту модель, среднее расстояние до которой будет наименьшим;

Однако, одно и тоже слово может произносится как Андреем Малаховым, так и каким-нибудь его эстонским коллегой. Другими словами размер mfcc-вектора для одного и того же слова может быть разный.

К счастью, задача сравнения последовательностей разной длины уже решена в виде Dynamic Time Warping алгоритма. Этот алгоритм динамическо программирования прекрасно расписан как в буржуйской Wiki , так и на православном Хабре .

Единственное изменение, которое в него стоит внести - это способ нахождения дистанции. Мы должны помнить, что mfcc-вектор модели - на самом деле последовательность mfcc-“подвекторов” размерности M, полученных из фреймов. Так вот, DTW алгоритм должен находить дистанцию между последовательностями эти самых “подвекторов” размерности M. То есть в качестве значений матрицы расстояний должны использовать расстояния (евклидовы) между mfcc-“подвекторами” фреймов.

Эксперименты

У меня не было возможности проверить работу данного подхода на большой “обучающей” выборке. Результаты же тестов на выборке из 3х экземпляров для каждого слова в несинтетических условиях показали мягко говоря нелучший результат - 65% верных распознаваний.

Тем не менее моей задачей было создание максимального простого приложения для распознавания речи. Так сказать “proof of concept” :)

  • 9. Фонологические позиции. Сильные и слабые фонемы.
  • 10. Позиционные чередования гласных фонем. Количественная и качественная редукция гласных фонем.
  • 11. Позиционные чередования согласных фонем. Ассимиляция и диссимиляция по глухости/звонкости и по твердости/мягкости.
  • 12. Исторические чередования фонем.
  • 13. Падение редуцированных гласных фонем и последствия этого явления.
  • 14. Чередования, связанные с историей носовых звуков в древнерусском языке.
  • 15. Палатализация заднеязычных.
  • 17. Фонетическая транскрипция. Фонематическая транскрипция
  • 18. Слог. Слогораздел. Типы слогов.
  • 19. Фонетическое слово. Ударение
  • 20. Речевой такт. Интонация
  • 21. Ударение. Интонационные конструкции
  • 21. Фраза. Интонация
  • 22. Понятие об орфоэпии
  • 23. Основные правила русского литературного произношения.
  • 24. Произношение гласных под ударением. Произношение безударных гласных.
  • 25. Произношение отдельных согласных звуков.
  • 26. Произношение групп согласных.
  • 27. Произношение некоторых грамматических форм.
  • 28. Произношение некоторых аббревиатур. Особенности произношения иноязычных слов.
  • 29. Трудные случаи усвоения ударения в русском языке.
  • 30. Развитие русского литературного произношения.
  • 31. Грамматическое кодирование
  • 32. Семантическое кодирование. Двухаргументные (временные признаки): причинность.
  • 33. Семантическое кодирование. Двухаргументные (временные признаки): следствие, результат, цель.
  • 34. Семантическое кодирование. Двухаргументные (временные признаки): превращение, изменение
  • 35. Семантическое кодирование. Двухаргументные (временные признаки): взаимодействие, группировка, общность, объединение
  • 36. Семантическое кодирование. Двухаргументные (временные признаки): разделение, влияние, условие, вхождение.
  • 37. Семантическое кодирование. Двухаргументные (временные признаки): соответствие, управление, подчинение, зависимость.
  • 38. Семантическое кодирование. Одноаргументные (постоянные признаки):свойство, необходимость, возможность, вероятность, есть, нет.
  • 39. Семантическое кодирование. Одноаргументные (постоянные признаки): истинность, ложность.
  • Семантический код. Его цели. Предназначение. Принцип построения. Возможности.
  • Предназначение семантического кода. Термин «смысл».
  • Предназначение семантического кода. Текст. Информация. Гипертекст в освоении информации.
  • 43. Грамматический и семантический анализ при семантическом кодировании.
  • 44. Русский семантический словарь сочетаемости и ассоциативный словарь при семантическом кодировании.
  • Предназначение семантического кода. Системный изоморфизм.
  • Предназначение семантического кода. Принцип необходимого и достаточного.
  • Предназначение семантического кода. Связность классов и подклассов
  • 48. Предназначение семантического кода. Принцип иерархичности/ неиерархичности.
  • 49. Предназначение семантического кода. Системная метафоричность.
  • 50. Ситуативный (ситуационный) семантический код.
  • 51. Семантическое кодирование. Выравнивающе-толковательный код. Матрешный код.
  • 52. Основные задачи и ключевые понятия речевого интерфейса.
  • 53. Исторический обзор проблемы распознавания и синтеза речи.
  • 54. Системы автоматического синтеза речи. Практические приложения речевого интерфейса.
  • 55. Системы автоматического распознавания речи. Практические приложения речевого интерфейса.
  • 56. Лингвистические основы речевого интерфейса. Использование лингвистики в реализации речевых систем.
  • 57. Структура речевого сигнала. Анализ и синтез. Спектрально-временные характеристики речевого сигнала.
  • 58. Информационная и модуляционная структура речевого сигнала.
  • 59. Методы синтеза речевого сигнала. Обобщенные математические модели описания речевых сигналов.
  • 60. Методы синтеза речевого сигнала. Геометрическая модель речевого тракта.
  • 61. Методы синтеза речевого сигнала. Формантная модель.
  • 62. Компиляционные методы синтеза речевого сигнала.
  • 63. Методы анализа речевого сигнала.
  • 64. Метод цифровой фильтрации речевого сигнала. Спектральный анализ с использованием алгоритмов бпф. Метод цифровой фильтрации
  • Спектральный анализ с использованием алгоритмов бпф
  • 65. Спектральный анализ на основе линейного предсказания. Формантно-параметрическое описание речевого сигнала. Спектральный анализ на основе линейного предсказания
  • Формантно-параметрическое описание речевого сигнала
  • 66. Метод кепстральных коэффициентов. Особенности восприятия речи. Свойства рецептивного восприятия речи человеком. Метод кепстральных коэффициентов
  • 67. Свойства рецептивного восприятия речевых сигналов. Природа слуховых (фонетических) признаков речевого сигнала. Свойства рецептивного восприятия речевых сигналов
  • Природа слуховых (фонетических) признаков речевого сигнала
  • 68. Свойства восприятия минимальных смыслоразличительных элементов речи
  • 69. Синтез речи по тексту. Структура синтезатора речи по тексту.
  • Структура синтезатора речи по тексту Ключевые понятия:
  • 70. Лингвистический процессор. Предварительная обработка текста. Пофразовая обработка текста.
  • Предварительная обработка текста
  • Пофразовая обработка текста
  • 71. Пословная обработка теста. Пример работы лингвистического процессора. Пословная обработка текста
  • Пример работы лингвистического процессора
  • 72. Просодический процессор
  • 73.Фонетический процессор. Артикуляторно-фонетический процессор. Формантный фонетический процессор.
  • 74. Аллофонный фонетический процессор. Акустический процессор.
  • 75. Аппроксимация геометрии речевого такта. Акустический процессор, основанный на компиляционных методах синтеза речи.
  • 76. Классификация систем автоматического распознавания речи. Методы автоматического распознавания речи.
  • 77. Классификация методов распознавания речи.
  • 78. Метод динамического программирования.
  • 79. Метод скрытых марковских моделей.
  • Под системами автоматического распознавания речи (САРР) понимают системы, преобразующие входную речь (речевой сигнал) в распознанное сообщение. При этом распознанное сообщение может быть представлено как в форме текста этого сообщения, так и

    преобразовано сразу в форму, удобную для его дальнейшей обработки с целью формирования ответной реакции системы. Изначально перед системой автоматического распознавания речи ставится задача преобразования текста в речь. Поэтому в английской литературе эти системы называются Speech To Text System. Часто системы автоматического распознавания речи называют также просто системами распознавания речи (СРР).

    Упрощенная структурная схема системы автоматического распознавания речи приведена на рис.

    Под моделью анализа речевого сигнала понимают блок, в задачи которого входит анализ входного сигнала, во-первых, с целью отнесения его к числу речевых, а во-вторых, для выделения в составе полученного сигнала компонент, которые являются основными для

    распознавания полученного сообщения. К таким компонентам относятся параметры, описывающие речь, аналогичные тем, которые формируются в процессе синтеза речи. Набор указанных параметров зависит от избранного метода распознавания.

    Модель распознавания речи и принятия решения – это блок, в рамках которого осуществляется формирование распознанного сообщения на основе анализа последовательности параметров, полученных из первого блока. Например, если используется формантная модель описания речи, то на основе полученных в первом блоке частот формант строится последовательность распознанных фонем, составляющих входное сообщение. При этом осуществляется принятие решения о том, распознано ли входное сообщение правильно. При принятии решения, в частности, возможны следующие решения: сообщение распознано правильно (подтверждением этого является текст, соответствующий нормам естественного языка) либо

    сообщение не распознано или распознано не правильно (такое решение принимается в случае наличия в распознанном сообщении явных, трудно исправимых автоматически ошибок или вообще полной бессмыслицы).

    В качестве ограничений, накладываемых на САРР, можно привести следующие характеризующие их параметры:

    Вид распознаваемой речи (пословное произношение с паузами в стиле речевых команд; четкое произношение без пауз в стиле “диктант”; спонтанная речь);

    Объём словаря (ограниченный до 100, 200 и т.д. слов; неограниченный);

    Степень зависимости от диктора (дикторозависимые; дикторонезависимые);

    Синтаксические ограничения (отдельные слова; типовые фразы; искусственный язык; естественный язык);

    Условия приёма речевых сигналов (контактные микрофоны; удаленные на расстояние более 1 м микрофоны);

    Условия применения СРР (слабые или сильные помехи);

    Надежность распознавания.

    Практические приложения речевого интерфейса

    Прежде чем перейти к рассмотрению примеров практического использования речевого интерфейса, сравним его с наиболее распространенными в настоящее время средствами взаимодействия пользователя с компьютером: клавиатурой и дисплеем. Следует отметить по крайней мере три принципиальных отличия речевого интерфейса:

    1) явный недостаток клавиатуры и дисплея заключается в том, что для общения с компьютером человеку нужно пройти специальную подготовку. В то же время речь – это естественный интерфейс для любого, даже неподготовленного человека. Речь снижает в резкой степени психологическое расстояние между человеком и компьютером. Если появляется речевой интерфейс, то круг пользователей компьютером может стать неограниченным;

    2) речь сама по себе никак механически не привязана к компьютеру и может быть связана с ним через системы коммуникаций, например, телефон. Речевой интерфейс сокращает физическое расстояние между человеком и компьютером. Это дополнительно расширяет круг потенциальных пользователей компьютеров и делает речевой интерфейс идеальным средством для оздания систем массового информационного обслуживания;

    3) можно обращаться с компьютером в полной темноте, с закрытыми глазами, в условиях занятости рук рычагами управления, с завязанными руками и в другой экстремальной обстановке. Это свойство даёт оперативность и мобильность общения, освобождение рук и разгрузку зрительного канала восприятия при получении информации. Это исключительно важно, например, для диспетчера большой энергетической системы или пилота самолёта и водителя автомобиля. Кроме того, компьютерные системы становятся более доступными людям с нарушением зрения.

    В настоящее время речевые компьютерные технологии уже достаточно широко распространены и развиваются в нескольких направлениях, основные из которых представлены на рис.

  • Распознавание речи -- процесс преобразования речевого сигнала в цифровую информацию (например, текстовые данные). Обратной задачей является синтез речи. Первое устройство для распознавания речи появилось в 1952 году, оно могло распознавать произнесённые человеком цифры. В 1962 году на ярмарке компьютерных технологий в Нью-Йорке было представлено устройство IBM Shoebox. Все большую популярность применение распознавания речи находит в различных сферах бизнеса, например, врач в поликлинике может проговаривать диагнозы, которые тут же будут внесены в электронную карточку. Или другой пример. Наверняка каждый хоть раз в жизни мечтал с помощью голоса выключить свет или открыть окно. В последнее время в телефонных интерактивных приложениях все чаще стали использоваться системы автоматического распознавания и синтеза речи. В этом случае общение с голосовым порталом становится более естественным, так как выбор в нём может быть осуществлен не только с помощью тонового набора, но и с помощью голосовых команд. При этом системы распознавания являются независимыми от дикторов, то есть распознают голос любого человека.

    Классификация систем распознавания речи.

    Системы распознавания речи классифицируются:

    • · по размеру словаря (ограниченный набор слов, словарь большого размера);
    • · по зависимости от диктора (дикторозависимые и дикторонезависимые системы);
    • · по типу речи (слитная или раздельная речь);
    • · по назначению (системы диктовки, командные системы);
    • · по используемому алгоритму (нейронные сети, скрытые Марковские модели, динамическое программирование);
    • · по типу структурной единицы (фразы, слова, фонемы, дифоны, аллофоны);
    • · по принципу выделения структурных единиц (распознавание по шаблону, выделение лексических элементов).

    Для систем автоматического распознавания речи, помехозащищённость обеспечивается, прежде всего, использованием двух механизмов:

    • · Использование нескольких, параллельно работающих, способов выделения одних и тех же элементов речевого сигнала на базе анализа акустического сигнала;
    • · Параллельное независимое использование сегментного (фонемного) и целостного восприятия слов в потоке речи.

    Архитектура систем распознавания

    Типичная архитектура статистических систем автоматической обработки речи.

    • · Модуль шумоочистки и отделение полезного сигнала.
    • · Акустическая модель -- позволяет оценить распознавание речевого сегмента с точки зрения схожести на звуковом уровне. Для каждого звука изначально строится сложная статистическая модель, которая описывает произнесение этого звука в речи.
    • · Языковая модель -- позволяют определить наиболее вероятные словесные последовательности. Сложность построения языковой модели во многом зависит от конкретного языка. Так, для английского языка, достаточно использовать статистические модели (так называемые N-граммы). Для высокофлективных языков (языков, в которых существует много форм одного и того же слова), к которым относится и русский, языковые модели, построенные только с использованием статистики, уже не дают такого эффекта -- слишком много нужно данных, чтобы достоверно оценить статистические связи между словами. Поэтому применяют гибридные языковые модели, использующие правила русского языка, информацию о части речи и форме слова и классическую статистическую модель.
    • · Декодер -- программный компонент системы распознавания, который совмещает данные, получаемые в ходе распознавания от акустических и языковых моделей, и на основании их объединения, определяет наиболее вероятную последовательность слов, которая и является конечным результатом распознавания слитной речи.

    Этапы распознавания:

    • 1. Обработка речи начинается с оценки качества речевого сигнала. На этом этапе определяется уровень помех и искажений.
    • 2. Результат оценки поступает в модуль акустической адаптации, который управляет модулем расчета параметров речи, необходимых для распознавания.
    • 3. В сигнале выделяются участки, содержащие речь, и происходит оценка параметров речи. Происходит выделение фонетических и просодических вероятностных характеристик для синтаксического, семантического и прагматического анализа. (Оценка информации о части речи, форме слова и статистические связи между словами.)
    • 4. Далее параметры речи поступают в основной блок системы распознавания -- декодер. Это компонент, который сопоставляет входной речевой поток с информацией, хранящейся в акустических и языковых моделях, и определяет наиболее вероятную последовательность слов, которая и является конечным результатом распознавания.
    • · Голосовое управление
    • · Голосовые команды
    • · Голосовой ввод текста
    • · Голосовой поиск

    Успешными примерами использования технологии распознавания речи в мобильных приложениях являются: ввод адреса голосом в Яндекс Навигаторе, голосовой поиск Google Now.

    Помимо мобильных устройств, технология распознавания речи находит широкое распространение в различных сферах бизнеса:

    • · Телефония: автоматизация обработки входящих и исходящих звонков путём создания голосовых систем самообслуживание в частности для: получения справочной информации и консультирования, заказа услуг/товаров, изменения параметров действующих услуг, проведения опросов, анкетирования, сбора информации, информирования и любые другие сценарии;
    • · Решения "Умный дом": голосовой интерфейс управления системами «Умный дом»;
    • · Бытовая техника и роботы: голосовой интерфейс электронных роботов; голосовое управление бытовой техникой и т.д.;
    • · Десктопы и ноутбуки: голосовой ввод в компьютерных играх и приложениях;
    • · Автомобили: голосовое управление в салоне автомобиля -- например, навигационной системой;
    • · Социальные сервисы для людей с ограниченными возможностями.

    программный автоматизация ввод распознавание

    15 июля 2009 в 22:16

    Распознавание речи. Часть 1. Классификация систем распознавания речи

    • Искусственный интеллект
    Эпиграф
    В России, направление систем распознавания речи действительно развито довольно слабо. Google давно анонсировала систему записи и распознавания телефонных разговоров… Про системы похожего масштаба и качества распознавания на русском языке, к сожалению, я пока не слышал.

    Но не нужно думать, что за рубежом все уже все давно открыли и нам их никогда не догнать. Когда я искал материал для этой серии, пришлось перерыть тучу зарубежной литературы и диссертаций. Причем статьи и диссертации эти были замечательных американских ученых Huang Xuedong; Hisayoshi Kojima; DongSuk Yuk и др. Понятно, на ком эта отрасль американской науки держится? ;0)

    В России я знаю только одну толковую компанию, которой удалось вывести отечественные системы распознавания речи на коммерческий уровень: Центр речевых технологий . Но, возможно, после этой серии статей кому-нибудь придет в голову, что заняться разработкой таких систем можно и нужно. Тем более, что в плане алгоритмов и мат. аппарата мы практически не отстали.

    Классификация систем распознавания речи

    На сегодняшний день, под понятием “распознавание речи” скрывается целая сфера научной и инженерной деятельности. В общем, каждая задача распознавания речи сводится к тому, чтобы выделить, классифицировать и соответствующим образом отреагировать на человеческую речь из входного звукового потока. Это может быть и выполнение определенного действия на команду человека, и выделение определенного слова-маркера из большого массива телефонных переговоров, и системы для голосового ввода текста.

    Признаки классификации систем распознавания речи
    Каждая такая система имеет некоторые задачи, которые она призвана решать и комплекс подходов, которые применяются для решения поставленных задач. Рассмотрим основные признаки, по которым можно классифицировать системы распознавания человеческой речи и то, как этот признак может влиять на работу системы.
    • Размер словаря. Очевидно, что чем больше размер словаря, который заложен в систему распознавания, тем больше частота ошибок при распознавании слов системой. Например, словарь из 10 цифр может быть распознан практически безошибочно, тогда как частота ошибок при распознавании словаря в 100000 слов может достигать 45%. С другой стороны, даже распознавание небольшого словаря может давать большое количество ошибок распознавания, если слова в этом словаре очень похожи друг на друга.
    • Дикторозависимость или дикторонезависимость системы. По определению, дикторозависимая система предназначена для использования одним пользователем, в то время как дикторонезависимая система предназначена для работы с любым диктором. Дикторонезависимость – труднодостижимая цель, так как при обучении системы, она настраивается на параметры того диктора, на примере которого обучается. Частота ошибок распознавания таких систем обычно в 3-5 раз больше, чем частота ошибок дикторозависимых систем.
    • Раздельная или слитная речь. Если в речи каждое слово разделяется от другого участком тишины, то говорят, что эта речь – раздельная. Слитная речь – это естественно произнесенные предложения. Распознавание слитной речи намного труднее в связи с тем, что границы отдельных слов не четко определены и их произношение сильно искажено смазыванием произносимых звуков.
    • Назначение. Назначение системы определяет требуемый уровень абстракции, на котором будет происходить распознавание произнесенной речи. В командной системе (например, голосовой набор в сотовом телефоне) скорее всего, распознавание слова или фразы будет происходить как распознавание единого речевого элемента. А система диктовки текста потребует большей точности распознавания и, скорее всего, при интерпретации произнесенной фразы будет полагаться не только на то, что было произнесено в текущий момент, но и на то, как оно соотносится с тем, что было произнесено до этого. Также, в системе должен быть встроен набор грамматических правил, которым должен удовлетворять произносимый и распознаваемый текст. Чем строже эти правила, тем проще реализовать систему распознавания и тем ограниченней будет набор предложений, которые она сможет распознать.
    Различия методов распознавания речи
    При создании системы распознавания речи требуется выбрать, какой уровень абстракции адекватен поставленной задаче, какие параметры звуковой волны будут использоваться для распознавания и методы распознавания этих параметров. Рассмотрим основные различия в структуре и процессе работы различных систем распознавания речи.
    • По типу структурной единицы. При анализе речи, в качестве базовой единицы могут быть выбраны отдельные слова или части произнесенных слов, такие как фонемы, ди- или трифоны, аллофоны. В зависимости от того, какая структурная часть выбрана, изменяется структура, универсальность и сложность словаря распознаваемых элементов.
    • По выделению признаков. Сама последовательность отсчетов давления звуковой волны – чрезмерно избыточна для систем распознавания звуков и содержит много лишней информации, которая при распознавании не нужна, либо даже вредна. Таким образом, для представления речевого сигнала из него требуется выделить какие-либо параметры, адекватно представляющие этот сигнал для распознавания.
    • По механизму функционирования. В современных системах широко используются различные подходы к механизму функционирования распознающих систем. Вероятностно-сетевой подход состоит в том, что речевой сигнал разбивается на определенные части (кадры, либо по фонетическому признаку), после чего происходит вероятностная оценка того, к какому именно элементу распознаваемого словаря имеет отношение данная часть и (или) весь входной сигнал. Подход, основанный на решении обратной задачи синтеза звука, состоит в том, что по входному сигналу определяется характер движения артикуляторов речевого тракта и, по специальному словарю происходит определение произнесенных фонем.

    UPD: Перенес в «Искуственный интеллект». Если будет интерес, дальше публиковать буду в нем.

    В 1964 году на ярмарке компьютерных технологий в Нью-Йорке было представлено устройство IBM Shoebox.

    Коммерческие программы по распознаванию речи появились в начале девяностых годов. Обычно их используют люди, которые из-за травмы руки не в состоянии набирать большое количество текста. Эти программы (например, Dragon NaturallySpeaking, VoiceNavigator) переводят голос пользователя в текст, таким образом, разгружая его руки. Надёжность перевода у таких программ не очень высока, но с годами она постепенно улучшается.

    Увеличение вычислительных мощностей мобильных устройств позволило и для них создать программы с функцией распознавания речи. Среди таких программ стоит отметить приложение Microsoft Voice Command, которое позволяет работать со многими приложениями при помощи голоса. Например, можно включить воспроизведение музыки в плеере или создать новый документ.

    Интеллектуальные речевые решения, позволяющие автоматически синтезировать и распознавать человеческую речь, являются следующей ступенью развития интерактивных голосовых систем (IVR). Использование интерактивного телефонного приложения в настоящее время не веяние моды, а жизненная необходимость. Снижение нагрузки на операторов контакт-центров и секретарей , сокращение расходов на оплату труда и повышение производительности систем обслуживания - вот только некоторые преимущества, доказывающие целесообразность подобных решений.

    Прогресс, однако, не стоит на месте и в последнее время в телефонных интерактивных приложениях все чаще стали использоваться системы автоматического распознавания и синтеза речи. В этом случае общение с голосовым порталом становится более естественным, так как выбор в нем может быть осуществлен не только с помощью тонового набора, но и с помощью голосовых команд. При этом системы распознавания являются независимыми от дикторов, то есть распознают голос любого человека.

    Следующим шагом технологий распознавания речи можно считать развитие так называемых Silent Speech Interfaces (SSI) (Интерфейсов Безмолвного Доступа). Эти системы обработки речи базируются на получении и обработке речевых сигналов на ранней стадии артикулирования. Данный этап развития распознавания речи вызван двумя существенными недостатками современных систем распознавания: чрезмерная чувствительность к шумам, а также необходимость четкой и ясной речи при обращении к системе распознавания. Подход, основанный на SSI, заключается в том, чтобы использовать новые сенсоры, не подверженные влиянию шумов в качестве дополнения к обработанным акустическим сигналам.

    Виды систем

    На сегодня существует два типа систем распознавания речи - работающие «на клиенте» (client-based) и по принципу «клиент-сервер» (client-server). При использовании клиент-серверной технологии речевая команда вводится на устройстве пользователя и через Интернет передается на удаленный сервер, где обрабатывается и возвращается на устройство в виде команды (Google Voice , Vlingo, пр.); ввиду большого количества пользователей сервера система распознавания получает большую базу для обучения. Первый вариант работает на иных математических алгоритмах и встречается редко (Speereo Software) - в этом случае команда вводится на устройстве пользователя и обрабатывается в нем же. Плюс обработки «на клиенте» в мобильности, независимости от наличия связи и работы удаленного оборудования. Так, система, работающая «на клиенте» кажется надежнее, но ограничивается, порой, мощностью устройства на стороне пользователя.

    Сейчас применяется также технология SIND (без привязки к голосу конкретного человека).

    Применение

    Основным преимуществом голосовых систем является дружественность к пользователю - он избавляется от необходимости продираться сквозь сложные и запутанные лабиринты голосовых меню . Теперь достаточно произнесения цели звонка, после чего голосовая система автоматически переместит звонящего в нужный пункт меню.

    • Голосовой набор в различной технике (мобильники , компьютеры , и пр.)
    • Голосовой ввод текстовых сообщений в смартфонах и прочих мобильных компьютерах

    См. также

    • Цифровая обработка сигналов

    Примечания

    Ссылки

    Категории:

    • Распознавание речи
    • Речевая коммуникация
    • Применение искусственного интеллекта
    • Средства реабилитации для людей с нарушением опорно-двигательного аппарата
    • Средства реабилитации для людей с нарушением зрения

    Wikimedia Foundation . 2010 .

    Смотреть что такое "Распознавание речи" в других словарях:

      Процесс преобразования речи в текст. Системы распознавания речи характеризуются: объемом словаря понимаемых слов; допустимой беглостью речи; степенью зависимости от настойки на речь конкретного лица. По английски: Speech recognition См. также:… … Финансовый словарь

      распознавание речи - — Тематики электросвязь, основные понятия EN speech recognition …

      распознавание речи - kalbos atpažinimas statusas T sritis automatika atitikmenys: angl. speech perception; speech recognition; voice recognition vok. Spracherkennung, f rus. распознавание речи, n pranc. reconnaissance de parole, f; reconnaissance vocale, f … Automatikos terminų žodynas

      распознавание речи, зависящее от особенностей голоса - Процедура распознавания, основанная на учете особенностей голоса говорящего. Распознаваемый речевой сигнал обычно разделяется на короткие фрагменты, каждый из которых сравнивается с образцами речи, хранимыми в памяти. Выбирается тот, с которым… … Справочник технического переводчика

      распознавание речи, не зависящее от особенностей голоса - Метод преобразования речи в осмысленную текстовую информацию без настройки на тембр голоса конкретного абонента. [Л.М. Невдяев. Телекоммуникационные технологии. Англо русский толковый словарь справочник. Под редакцией Ю.М. Горностаева. Москва,… … Справочник технического переводчика

      автоматическое распознавание речи - Процесс или технология, которые воспринимают сигнал обычной речи в качестве входного сигнала и выдают в качестве выходного сигнала кодированную версию сказанного (слово, команда, выражение, предложение и т. д.) (МСЭ Т Y.2271, МСЭ Т P.10/ G.100).… … Справочник технического переводчика

      Образов Оптическое распознавание символов Распознавание рукописного ввода Распознавание речи … Википедия

      Автоматическое распознавание лиц специальной программой. Теория распознавания образов раздел кибернетики, развивающий теоретические основы и методы классификации и идентификации предметов, явлений, процессов, сигналов, ситуаций и т. п. объектов,… … Википедия

      Автоматическое распознавание лиц специальной программой. Теория распознавания образов раздел кибернетики, развивающий теоретические основы и методы классификации и идентификации предметов, явлений, процессов, сигналов, ситуаций и т. п. объектов,… … Википедия

    Книги

    • Распознавание и понимание смысла речи в шумах на основе стохастики , В. В. Насыпный. Стохастика - это стохастическая информационная технология, разработанная в России. Она позволяет создавать эффективные интеллектуальные системы, работающие в реальном времени и исключающие…