Теперь, для вывода текста в речь на платформе Asterisk PBX с открытым источником, можно будет использовать переводчик Microsoft.
Представленный скрипт позволит использовать 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