Научная статья на тему 'Анализ коммерческих систем распознавания речи с открытым API'

Анализ коммерческих систем распознавания речи с открытым API Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
2727
310
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
РАСПОЗНАВАНИЕ РЕЧИ / СИСТЕМЫ РАСПОЗНАВАНИЯ РЕЧИ GOOGLE SPEECH RECOGNITION / YANDEX SPEECHKIT / BING VOICE RECOGNITION

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Гаврилович Н.В., Сейтвелиева С.Н.

Статье проведен анализ коммерческих систем распознавания речи (Google Speech Recognition, Yandex SpeechKit, Bing Voice Recognition), описаны методы и принципы работы коммерческих систем.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Гаврилович Н.В., Сейтвелиева С.Н.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Анализ коммерческих систем распознавания речи с открытым API»

УДК: 004.934

Гаврилович Н. В.

магистрант, н/п «Прикладная информатика»

ГБОУВО РК «КИПУ»

Научный руководитель: Сейтвелиева С. Н.

старший преподаватель

АНАЛИЗ КОММЕРЧЕСКИХ СИСТЕМ РАСПОЗНАВАНИЯ РЕЧИ

С ОТКРЫТЫМ API

В статье проведен анализ коммерческих систем распознавания речи (Google Speech Recognition, Yandex SpeechKit, Bing Voice Recognition), описаны методы и принципы работы коммерческих систем.

Ключевые слова: Распознавание речи, системы распознавания речи Google Speech Recognition, Yandex SpeechKit, Bing Voice Recognition.

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

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

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

В 2004 году специально для программ с закрытым исходным кодом появилось определение API, которое расшифровывается как интерфейс программирования приложений (Application Programming Interface). API подразумевает набор готовых классов, процедур, функций, структур и констант, предоставляемых приложением, библиотекой или сервисом для использования во внешних программных продуктах или модификациях, расширениях, уже готового продукта.

API определяет функциональность, которую предоставляет сервис, программа (модуль, библиотека), при этом в API не важно, как образом эта функциональность реализована.

Программные компоненты взаимодействуют друг с другом посредством API. При этом, как правило, компоненты образуют иерархию — высокоуровневые компоненты используют API низкоуровневых компонентов, а те, в свою очередь, используют API ещё более низкоуровневых компонентов. По схожему принципу построены протоколы передачи данных по сети. К примеру, стандартный стек протоколов включает 7 уровней (от физического уровня передачи бит до уровня протоколов приложений, подобных протоколам HTTP и IMAP). Каждый уровень пользуется функциональностью предыдущего уровня

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

Важно, что понятие протокола близко по смыслу к понятию API. И то, и другое является абстракцией функциональности, только в первом случае речь идёт о передаче данных, а во втором — о взаимодействии приложений [1].

Google Speech Recognition

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

С июня 2011 года Google начала внедрение речевого движка в Google поиск, который по сей день работает стабильно. Технология голосового поиска на ПК поддерживается только браузером Chrome (браузером разрабатанным компанией Google). Также функция голосового управления поддерживается на гаджетах на базе ОС Android.

Рисунок 1 — Логотип Google Voice Search

Изначально Voice Search — поддерживал поисковые запросы длиной от 35 до 40 слов. Отправка происходила после переключения микрофона, что было очень неудобно для использования.

В 2012 году произошел переход голосового поиска Google на новую в тот момент технологию Глубоких Нейронных Сетей (англ.: Deep Neural Networks — DNN) что вызвало огромный прорыв в области речевых технологий. DNN лучше выполняли задачу распознавания отдельных звуков, произносимых пользователем, чем GMM (англ. Gaussian Mixture Model), вследствие чего точность распознавания речи существенно выросла.

Февраль 2013 года — в браузер интегрируется распознавание непрерывной речи, таким образом голосовой поиск от Google трансформировался в Speech Input (непрерывный, продолжительный ввод).

Актуальная версия голосового поиска Google базируется на усовершенствованном методе обучения нейронных сетей, созданного специально для анализа и распознавания акустических моделей. В основу новых, Рекуррентных Нейронных Сетей (англ.: recurrent neural networks — RNN), легли нейросетевая темпоральная классификация (англ.: Connectionist Temporal Classification — CTC) и дискриминантный анализ для последовательностей, приспособленный для обучения аналогичных структур. Кроме того, RNN имеют циклы обратной связи в своей топологии, позволяющие им моделировать временные зависимости, речевой аппарат одновременно выходит из процесса произношения предыдущих звуков. Иными словами, RNN позволяет распознать слова, произнесенные на одном дыхании и т.п.

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

RNN бывают различных видов, и для распознавания речи Google применяет специальные RNN с «длинной кратковременной памятью» (англ.: Long Short-Term Memory — LSTM). Данные ячейки памяти и сложный механизм гейтов предоставляют возможность LSTM RNN лучше других нейронных сетей запоминать и обрабатывать информацию [2; 3].

Взаимодействие с Google Speech Recognition происходит через HTTP API.

Преимущества:

• возможность распознавания непрерывной речи;

• большое комьюнити (англоязычное);

• использование API бесплатное.

Недостатки:

• не более 10000 знаков за один запрос;

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

Yandex.SpeechKit

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

Yandex SpeechKit

Рисунок 2 — Логотип сервиса Yandex SpeechKit

Акустическая модель Yandex SpeechKit схожа с Google Speech Recognition и принимает на вход аудио поток, а на выход выдает распределение вероятностей по сенонам (обычно 1/3 часть фонемы).

Рассмотрим конкретно что подается как входные данные. Аудио поток нарезается фреймами (участками) по 25 мс. Стандартный фрейм составляет 10 мс, таким образом соседние участки частично пересекаются. Амплитуда колебаний по времени является не самой информативной формой представления акустического сигнала, а вот спектр этого сигнала — предоставляет больше информации. Используется логарифмированный и масштабированный спектр, что отвечает закономерностям человеческого слухового восприятия (Mel-преобразование). Полученные величины подвергаются дискретному косинусному преобразованию (DCT), и в результате получается MFCC — Mel Frequency Cepstral Coefficients. (термин Cepstral отражает наличие дополнительного DCT). MFCC — это вектор в основном из 13 вещественных чисел. Он применяются как вход акустической модели «в сыром виде», но чаще подвергаются множеству дополнительных преобразований.

Существует множество метожов улучшения акустической модели, однако наиболее значительный эффект имеет переход от GMM (Gaussian Mixture Models) — модели к DNN (Deep Neural Network), что повышает качество распознавания практически в два раза. Нейронные сети лишены ограничений, характерных для гауссовых смесей, обладают лучшей обобщающей способностью, более устойчивы к шуму и обладают лучшим быстродействием

[3; 4].

Компания Яндекс предоставляет доступ к сервису SpeechKit по средствам HTTP API.

Преимущества:

• возможность распознавания непрерывной речи;

• хорошая документация;

• ориентирован на русский язык;

Недостатки:

• Пробный период 1 месяц с первого запроса.

Bing Voice Recognition

Майкрософт тоже в последнее время стал активно развивать речевые технологии. Особенно после анонсирования голосового ассистента Cortana и разработки автоматический технологии синхронного телеперевода с английского на немецкий язык и наоборот для Skype.

К сожалению компания Microsoft не публикует описание технологий, используемых в Bing Voice Recognition известно лишь, что они предоставляют библиотеку и API для работы с распознаванием речи.

В данный момент существуют 4 варианта использования:

• Windows и Windows Server 2008. Возможность использовать систему распознавания речи для Windows приложений используя API и управлять речевым движком, который встроен в Windows и Windows Server 2008.

• Speech Platforms. Встраивание в приложения платформы, использующие распространяемые Microsoft дистрибутивы (языковые пакеты с распознаванием речи или же средства текст в речь).

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

• Services. Разработка приложения с голосовым интерфейсоми спользуемые в реальном времени. Позволяют освободить от создания, обслуживания и модернизации инфраструктуры речевых сервисов от создания, обслуживания и модернизации инфраструктуры речевых сервисов [3].

Разработка и поддержка

• Windows Vista или новее;

• Windows 2003 Server или новее;

• Windows 2008 Server или новее.

Развертывание поддерживается на:

• Windows 2003 Server или новее;

• Windows 2008 Server или новее.

Преимущества:

• Готовая технология, бери и пользуйся (есть SDK);

• Поддержка от компании Microsoft.

Недостатки:

• нет отличий от конкурентов;

• можно развернуть только на серверной Windows (Windows 2003 Server, Windows 2008 Server or later);

• только Windows 7 пока и ранние версии Windows.

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

Литература

1. Зачем голосовому Поиску Google нейронные сети? // habrahabr.ru URL: https://habrahabr.ru/company/google/blog/269747/ (дата обращения: 11.06.2016).

2. Поиск оптимальной аудиосистемы распознавания речи на базе открытого исходного кода // habrahabr.ru URL: https://habrahabr.ru/post/230133/ (дата обращения: 11.06.2016).

3. Распознавание речи от Яндекса. Под капотом у Yandex.SpeechKit // habrahabr.ru URL: https://habrahabr.ru/company/yandex/blog/198556/ (дата обращения: 11.06.2016).

4. API (Интерфейс программирования приложений) // progfile.do.am URL: http://progfile.do.am/publ/programmy/api_interfejs_programmirovanija_prilozhenij/1-1-0-32 (дата обращения: 11.06.2016).

i Надоели баннеры? Вы всегда можете отключить рекламу.