В статье рассматривается задача распознавания речи, классификация систем распознавания речи. Рассматриваются основные достоинства и недостатки существующих решений с открытым и с закрытым исходным кодом. На их основе выбираются ключевые характеристики для выбора наиболее подходящего сервиса для использования его в программно-аппаратном комплексе «Умное зеркало».
Важнейшим средством коммуникации является речь. Этот процесс в свою очередь подразумевает формирование, восприятие и понимание некоторых языковых конструкций.
В мире информационных технологий голосовое управление порождает новый способ взаимодействия с функциями различных устройств. Такая возможность удобна в некоторых ситуациях, например, когда не хочется искать информацию в смартфоне или если необходимо обратиться к некоторой функции устройства на расстоянии (если, например, нужно сделать фотографию). Для создания такой технологии необходимо было решить такую задачу, как распознавание речи.
Появление коммерческих разработок в начале девяностых годов XX века были направлены помочь людям с травмами рук, которые не могли набирать большое количество текста, а увеличение мощностей вычислительных устройств поспособствовали таким разработкам.
В настоящее время существует множество разработок, обладающих совершенно разными характеристиками и в своих поисках идеального решения для моего программно-аппаратного комплекса «Умное зеркало», который выводит сводку по текущим информационным событиям (таким как новости, погода, время и др.), а также должен обладать возможностью голосового запроса по необходимой информации, я старалась подробно изучить эти свойства сервисов распознавания речи.
Прежде всего необходимо понимать основные свойства речи. Речь — это звук, образуемый аппаратом человека, состоящий из шумов и тонов, которые в свою очередь различаются по высоте, тембру и другим свойствам. Разные звуки обладают разными характеристиками, разные люди произносят одни и те же слова подобно, но не идентично.
Соответственно качество распознавание речи зависит от количества слов, которые необходимо будет распознать (ограниченный набор слов или словарь большого размера), каков будет тип распознаваемой речи (слитная или раздельная), какого назначение (системы диктовки или командные системы), зависим ли сервис распознавания от диктора (дикторозависимые и дикторонезависимые), какова структурная единица распознавания (фраза, слово, фонема) и многие другие характеристики. Также системы распознавания различаются методами и алгоритмами, на которых они построены. Это могут быть, например, скрытые Марковские модели или нейронные сети.
Разработка собственного сервиса является довольно трудозатратной и ресурсоёмкой задачей. Поэтому необходимо из существующих решений выбрать наиболее подходящее для интеграции в конкретный проект.
Сервисы распознавания подразделяются на системы с открытым и с закрытым исходным кодом (с ними работа организована через API). Конечно системы с закрытым кодом обладают более качественной реализацией и обладают большей точностью распознавания по сравнению с системами с открытым исходным кодом, но в то же время для пользования такими сервисами приходится платить за лицензию.
Среди систем с закрытым исходным кодом одной из самых популярных является Yandex SpeechKit. Сервис запущен российской компанией Яндекс в 2013 году. Он позволяет распознавать спонтанную речь на русском, английском, украинском и турецком языках. Для этого необходимо отправить аудио-фрагмент с помощью POST-запроса. В ответ придёт файл в формате XML, который будет содержать несколько вариантов фразы, та, которая в списке будет первой, будет считаться наиболее точным результатом распознавания.
Для того, чтобы воспользоваться этим сервисом, необходимо зарегистрироваться в кабинете разработчика Yandex и получить API ключ, но даже при соблюдении этих условий, в бесплатной версии будет наложен ряд ограничений:
− Максимальный размер аудио-файла 1 МБ;
− Разрешено не более 10000 запросов в сутки;
− Распознавания только русского и турецкого языков.
Microsoft Speech API. Данная система распознавания речи очень схожа с Yandex SpeechKit и мало чем отличается. Основной особенностью является то, что ее можно полноценно использовать только на Windows Server. Таким образом, возможна разработка и поддержка на Windows 2003 Server или позднее. Достоинством Microsoft Speech API является наличие огромного количества подробно разобранных примеров и шаблонов, технология легко внедряется и поддерживается Microsoft.
Одним из представителей систем распознавания речи с открытым исходным кодом является Julius. Она обладает словарем в 60000 слов. Этот распознаватель идеально подходит для декодирования в режиме почти реального времени. Главная особенность — это полная встраиваемость. Главная платформа системы Linux и другие UNIX подобные станции, также система работает на Windows. Для запуска необходимо подобрать языковую модель и акустическую модель для Вашего языка. На данный момент эта система распространяется только для модели японского языка. Хотя проект VoxForge работает над созданием акустической модели для английского языка, используя движок системы распознавания речи Julius.
Jasper является платформой с открытым исходным кодом, который работает на различных системах, в том числе Raspberry Pi. Можно использовать его, чтобы легко управлять приложениями голосом или, например, добавлять задачи в Google Календарь. Jasper имеет целый ряд различных Speech To Text (STT) и Text To Speech (TTS) движков и может работать в автономном режиме, что его принципиально отличает.
Для моего программно-аппаратного комплекса, построенного на Raspberry Pi, Jasper стал идеальным вариантом учитывая требования, предъявляемые к используемой системе (это заранее известные командные запросы), и аппаратно-вычислительные мощности одноплатного компьютера. Jasper предоставляет простой API для разработчиков, чтобы добавлять свои собственные команды для управления модулями.
Ричард Нельсон написал большой сценарий установки и выложил его на форуме поддержки Jasper, что сильно упрощает интеграцию сервиса. Достаточно запустить установочный скрипт.
На сегодняшний день существует множество реализаций для решения задачи распознавания речи. Освещенные в этой статье сервисы лишь немногие из существующих. И для нахождения оптимального решения в каждой конкретной задаче необходимо будет ориентироваться на разные критерии отбора сервиса распознавания.
Литература:
- Титов Ю. Н. Современные технологии распознавания речи // Вестник Тамбовского университета. Серия: Естественные и технические науки. 2006. № 4. URL: http://cyberleninka.ru/article/n/sovremennye-tehnologii-raspoznavaniya-rechi (дата обращения: 05.06.2017).