Протокол MRCPv1 (Media Resource Control Protocol) описан в RFC4463, представляет собой простой текстовый протокол, похожий на HTTP. Передаваемые MRCP запросы и ответы инкапсулируются в транспортный протокол RTSP. Передача голосовых данных производится посредством протокола RTP. Спецификация определяет ряд методов и параметров, которые участвуют в установлении и управлении сессиями синтеза/распознавания.
Библиотека UniMRCP
Библиотека поддерживает версии протокола MRCPv1 и MRCPv2. Поддерживается работа с ресурсами распознавания, синтеза, верификации и записи речи. Для реализации протокола MRCPv2 используется библиотека SofiaSIP, библиотека кросс-платформенная и выпущена под лицензией Apache License 2.0, что позволяет использовать её в коммерческих решениях. Библиотека позволяет реализовать как MRCP клиент, так и сервер, в поставке имеются примеры реализации, которые служат хорошим примером для разработки своего приложения.
Кроме того автор активно работает над новыми возможностями, буквально на днях появился релиз 0.9.0 (0.8.0 был выпущен 3 месяца назад), основными нововведениями которого явились:
- Поддержка 64-битных ОС
- Поддержка ресурса записи
- Поддержка для RFC4733/RFC2833 и Inband DTMF генерации и распознавания
- Реализация RTCP стека
Модуль app_mrcp
На данный момент модуль представляет из себя базовую реализацию поддержки MRCP протокола, однако уже готовую к эксплуатации. Модуль работоспособен с Астериском всех версий начиная с 1.4.
MRCPSynth — синтез речи
Приложение получает на вход текст, предназначенный для синтеза и ряд параметров, таких как:
- Файл на жестком диске для записи синтезированной речи
- Параметры синтезированного голоса (возраст, пол, голос)
- Профиль сервера распознавания
Работает как приложение Playback, может производить запись полученного синтезированного голоса в файл, доступный для дальнейшего использования.
MRCPRecog — распознавание речи
Приложение получает на вход грамматику, после установления сессии с MRCP сервером передает все голосовые пакеты к ресурсу распознавания. Как только ресурс распознавания примет решение о том что распознавание закончено (по таймауту или успешному распознаванию в соответствии с грамматикой) приложение прекращает выполнение и устанавливает переменную диалплана RECOG_RESULT, которая содержит результат в формате NLSML. Приложение аналогично приложению Background — воспроизведение звукового файла прерывается успешным вводом пользователя.
Комментариев нет:
Отправить комментарий