Состояние проблемы автоматического распознавания речи

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

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

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

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

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

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

Технические средства формирования аудиоданных

Для обработки голоса нужно в начале записать его в базу данных компьютера. Большинство компьютеров уже оснащены оборудованием, необходимым для ввода и вывода звука. Это микрофон и звуковая плата. Но обычно они достаточно низкого качества, и желательно их не использовать. Схема процесса ввода звука (Рисунок 1).

Состояние проблемы автоматического распознавания речи - student2.ru

Рисунок 1 - Схема ввода речевых сообщений в ЭВМ

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

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

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

Для выбора частоты дискретизации рассмотрим усредненную спектральную плотность мощности непрерывного речевого сигнала для мужского и женского голосов. Как следует из этой характеристики, усредненная спектральная плотность мощности имеет максимум в диапазоне 250-500Гц и затухает со скоростью, равной 8-10дБ на октаву (при удвоении частоты). Это приводит к тому, что на частотах выше 4000 Гц спектральная плотность падает до уровня 60 дБ, что соответствует ослаблению мощности по сравнению с максимумом (25-30 дБ) в 20 и более раз. Это позволяет считать, что полоса пропускания для каналов передачи звуковых сообщений может быть ограничена частотой 4-5 кГц, а, следовательно, частота дискретизации этого сигнала должна составлять 8-10 кГц.

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

Рассчитано, что для обеспечения соотношения шум/сигнал квантования, равного 36 дБ, требуется порядка семи двоичных разрядов и что для получения высококачественного цифрового кодирования сигнала речи необходимо 11 разрядов. На практике число разрядов определяется разрядность компьютера и, как правило, равно или кратно восьми разрядам.

От чистоты звука напрямую зависит скорость распознавания и выполнения команды компьютером. Поэтому качество звука необходимо максимально высокое.

Распознавание и синтез речи компьютером

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

Технология автоматического синтеза речипозволяет преобразовать произвольный текст в звучащую речь. Иными словами, с помощью синтеза речи компьютер может «прочитать» естественным человеческим голосом любую текстовую информацию. Для того чтобы синтезированная речь звучала натурально, необходимо решить целый комплекс задач, связанных как с обеспечением естественности голоса на уровне плавности звучания и интонации, так и с правильной расстановкой ударений, расшифровкой сокращений, чисел, аббревиатур и специальных знаков с учетом особенностей грамматики русского языка.

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

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

Поиск ключевых слов

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

Есть несколько видов поиска ключевых слов:

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

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

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

Шумоочистка

Шумоочистка — обработка сигнала, которая позволяет повысить разборчивость речевого сигнала, уменьшить долю шумов и компенсировать искажения, вызванные как акустическими, так и технологическими причинами (Рисунок 2).

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

При обработке звукозаписи появляются следующие задачи:

- Провести максимально очистку звука для удаления помех и искажений;

- Провести анализ звукозаписей.

Состояние проблемы автоматического распознавания речи - student2.ru

Рисунок 2 – Шумоочистка

Главной целью шумоочистки является доведение качества и аудио сигнала до уровня, необходимого для понимания. Кроме этого крайне важно сохранить исходные свойства и характеристики речи.

Технологии шумоочистки речевых сигналов классифицируются по типу искажения:

1) BABBLE NOISE – технология подавления шума толпы

2) MUSIC NOISE – технология подавления шума музыки

3) NONSTATIONARY NOISE - технология подавления нестационарных шумов

4) PULSE NOISE - технология подавления импульсных шумов

5) TONAL NOISE - технология подавления тональные помех

6) WIDEBAND NOISE - технология подавления широкополосных шумов

7) GSM HINDRANCE - технология подавления наводки мобильных телефонов

8) CLIPPING - клиппирование сигнала

9) REVERBERATION&NOISE – реверберация

Выбор аппаратных средств

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

Общие технические характеристики:

Напряжение питания от 7 до12 В, или 5 В от USB Максимально допустимый ток портов 20 мА Максимально допустимое напряжение на портах от -0.5 до +5.5 В Ток срабатывания предохранителя USB порта 500 мА Управляющий микроконтроллер Atmega 328 Цифровые порты ввода/вывода 14 портов Аналоговые порты ввода 6 портов ПП У (Flash Memory) 32 Kб, из них 2 Кб заняты загрузчиком О У (SRAM) 2 Кб П У (EEROM) 1 Кб Тактовая частота 16 МГц Габаритные размеры 68.5 Х 53 мм 25 Допустимый температурный диапозон от -20 до +50 С° Простейшим способом получения данных из Arduino состоит в подключении этого устройства через USB интерфейс к персональному компьютеру, который будет считывать данные так, как будто они поступают по COM- порту. Так же это устройство может работать не зависимо от персонального компьютера при наличии источника питания и альтернативного канала связи. Arduino поддерживает подключение плат расширения (Shield), которые обеспечивают дополнительный функционал. В работе были использованы дополнительные платы расширения, такие как Ethernet Shield (обеспечивающий подключение к сети и развертывание компактного Web-сервера) и GPRS/GSM Shield (используется для оправки SMS) Датчики Arduino, может совместно работать с огромным ассортиментом датчиков. В данном проекте применяется недорогой датчик измерения температуры и относительной влажности DHT11. Данные с датчика о температуре и влажности проходят по соединительному проводу в виде цифрового сигнала, что позволяет добиться передачи данных до 20 м. DHT11 общается с Arduino по собственному протоколу, это выглядит следующим образом:

· Контролер устанавливает сигнальную линию в 0, а затем в 1 (хочет считать показания) 26

· Датчик устанавливает сигнальную линию в 0, а затем в 1 (подтверждение готовности передачи данных)

· Датчик передает последовательность 0 и 1, формирующих 5 байт

Первые два байта передают значение температуры, вторые два байта относительную влажность воздуха, в пятом байте передается контрольная сумма Датчик энергоэффективен, так как делает измерения по запросу контроллера, в остальное время потребляет 0.2 мА (максимальное потребление 2.5 мА). обзорные характеристики Диапазон измерения Точность измерения влажности Точность измерения температуры количество выводов DHT11 20-90% (ОВВ) 0- 50 ℃ ±5% ±2℃ 4 27 Выбор инструментальных средств, для разработки программного обеспечения В качестве программной среды разработки для Arduino используется одноименная программа. Отвечает всем требования:

· Кроссплатформенная

· Бесплатная

· Открытый исходный код

· Простая установка и настройка

· Множество разнообразных библиотек расширяющих функционал

· C/С++. Объектно-ориентированный язык программирования, обеспечивает модульность, раздельную компиляцию, обработку 28 исключений, абстракцию данных

Является одним из самых распространенных языков программирования, широко используется не только в разработке программного обеспечения, но и в драйверах разнообразных устройств. Хорошо подходит для программной среды Arduino, так как изначально язык программирования устройств Arduino основан на C/C++. На данный момент это самый удобный способ запрограммировать микроконтроллер.

· PERL.

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

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

· Python. Высокоуровневый язык программирования, ориентирован на повышение производительности разработчика, путем уменьшения синтаксиса. Python портирован практически на все платформы. Также как и Perl требует дополнительной настройки. Конечные функции ограниченны. В качестве языка программирования для Arduino, будет использоваться язык C/C++, так как он неограничен в функционале, не урезаны библиотеки и не требует дополнительной настройки в среде разработки «Arduino».

Наши рекомендации