Записки Астерискера — Синтез речи через Microsoft Translator для Asterisk

в 11:36, , рубрики: asterisk, ip-телефония, myasterisk, Блог компании MyAsterisk, переводчики, синтез речи, метки: , , , ,

Теперь, для вывода текста в речь на платформе Asterisk PBX с открытым источником, можно будет использовать переводчик Microsoft.

image

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

Зависимости:

perl: The Perl Programming Language
perl-libwww: The World-Wide Web library for Perl
sox: Sound eXchange, sound processing program
API Key (appid) from Microsoft, т.е. доступ в Интернет для того, чтобы связываться с MS и получать голосовые данные.

Установка:

Чтобы установить копию mstts.agi к agi-bin каталог. 
/var/lib/asterisk/agi-bin/
Чтобы убедиться в том, что файл установлен:
/etc/asterisk/asterisk.conf file

Использование:

agi(mstts.agi,text,[language],[intkey])

Эта команда приводит в действие переводчик MS TTS Engine, который будет переводить текстовую строку в речь и воспроизводить её для пользователя. 

Если 'intkey' уже установлен, скрипт запросит ввода пользователя.  Клавиша прерывания на этом немедленно прекратит воспроизведение и начавшийся набор, чтобы перейти к соответствующему расширению (для использования в IVR) TTS сценариев контактов Microsoft. Голосовые данные, которые затем сохраняются в локальном кэше (по умолчанию default /tmp) для использования в будущем. 

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

Asterisk диалплана:

;MsTTS Demo
exten => 1234,1,Answer()
;;Play mesage in English:
exten => 1234,n,agi(mstts.agi,«Communication has been waiting.»,en)
;;Play message in Spanish:
exten => 1234,n,agi(mstts.agi,«La comunicación se ha estado esperando.»,es)
;;Play message in Japanese:
exten => 1234,n,agi(mstts.agi,"これは、日本の簡単なテストです。良い一日を。",ja)
;;Play message in simplified Chinese:
exten => 1234,n,agi(mstts.agi,"通信が待っている",zh-cn)
;A simple dynamic IVR using MsTTS

[my_ivr]
exten => s,1,Answer()
exten => s,n,Set(TIMEOUT(digit)=5)
exten => s,n,agi(mstts.agi,«Welcome to my small interactive voice response menu.»,en)
;;Wait for digit:
exten => s,n(start),agi(mstts.agi,«Please dial a digit.»,en,any)
exten => s,n,WaitExten()

;;PLayback the name of the digit and wait for another one:
exten => _X,1,agi(mstts.agi,«You just pressed ${EXTEN}. Try another one please.»,en,any)
exten => _X,n,WaitExten()

exten => i,1,agi(mstts.agi,«Invalid extension.»,en)
exten => i,n,goto(s,start)

exten => t,1,agi(mstts.agi,«Request timed out.»,en)
exten => t,n,goto(s,start)

exten => h,1,Hangup()

Лицензия:
MS Translator TTS script for asterisk распространяется на условиях GNU General Public License version 2

Скачать последнюю стабильную версию можно здесь

Собрала и перевела информацию для вас компания MyAsterisk

Автор: MyAsterisk_Team


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js