ћы в Telegram - чате. “ы с нами? :)

ћерион Ќетворкс

“ехнологи€ TTS (text-to-speech) служит дл€ преобразовани€ текстовой информации в голос. ѕроще говор€, вы пишите Ц система проговаривает. ¬ системах телефонной св€зи така€ технологи€ может быть полезна, если необходимо произнести баланс клиента или дл€ озвучивани€ прочих голосовых сообщений. ќ том, как настроить TTS в FreePBX 13 с помощью командной строки Asterisk расскажем в статье.


¬строенный TTS

¬ FreePBX предусмотрен встроенный движок дл€ TTS, который носит название filte. ƒвижок хорошо отрабатывает английскую речь, но не умеет работать с русской. ¬кратце ознакомимс€ с его настройкой. “ут все достаточно тривиально, переходим в Applications -> Text to Speech

Ќастройка модул€ TTS в FreePBX 13
  • Name - дайте им€ дл€ TTS механизма
  • Text - укажите произносимый системой набор слов
  • Choose an Engine - выберите движок дл€ воспроизведени€. ѕо умолчанию, единственным доступным €вл€етс€ filte
  • Destination - куда будет отправлен звонок, после проговаривани€ фразы указанной в поле Text

Ќа этом этапе система произнесет набор слов по-английски. ѕисать методом транслитерации Ц плоха€ иде€. ƒвижок конечно произнесет указанные слова, но это вр€д ли можно будет отправить в Ђпродакшнї. »так, как же бесплатно настроить русскоговор€щий TTS в FreePBX? Ћегко, с помощью системы синтеза речи festival


–усский €зык FreePBX Festival

”становку будем производить на примере последней сборки FreePBX Distro на базе CentOS 6. ѕереходим к установке. —качиваем исходные файлы

cd /usr/src
wget http://www.cstr.ed.ac.uk/downloads/festival/2.1/speech_tools-2.1-release.tar.gz
wget http://www.cstr.ed.ac.uk/downloads/festival/2.1/festival-2.1-release.tar.gz

–аспаковываем архивы и инсталлируем необходимые файлы

tar zxvf festival-2.1-release.tar.gz
tar zxvf speech_tools-2.1-release.tar.gz
cd speech_tools
./configure
make
make install
cd ..
cd festival
./configure
 make
make install
—истема может потребовать установить пакет ncurses-devel. —делайте это с помощью команды yum install ncurses-devel

—оздаем переменную PATH, котора€ описывает путь до исполн€емых файлов в директории festival/bin/

export PATH=$PATH:/usr/src/festival/bin/

—оздадим директорию дл€ хранени€ русско€зычных файлов. ƒл€ этого, последовательно в директории festival/lib/ создадим папки /voices и /russian:

mkdir /usr/src/festival/lib/voices/
mkdir /usr/src/festival/lib/voices/russian/

—качиваем русско€зычный бандл:

wget http://sourceforge.net/projects/festlang.berlios/files/msu_ru_nsh_clunits-0.5.tar.bz2

ƒалее, распаковываем скачанный архив в созданную директорию:

tar xjf msu_ru_nsh_clunits-0.5.tar.bz2 -C ./festival/lib/voices/russian

ќткрываем через редактор vim файл /usr/src/festival/lib/languages.scm

vim /usr/src/festival/lib/languages.scm

¬ самом начале файла вставл€ем следующие строки:

(define (language_russian)
 "(language_russian)
  Set up language parameters for Russian."
  (set! male1 voice_msu_ru_nsh_clunits)
  (male1)
  (Parameter.set 'Language 'russian)
) 

¬ файле находим строки указанные ниже:

(language_british_english))
  ((equal? language 'british_english)

ѕосле указанных выше строк, добавл€ем следующее:

(language_russian))
    ((equal? language 'russian)

ƒалее открываем файл /usr/src/festival/lib/siteinit.scm и в самый конец добавл€ем строку ниже:

(set! voice_default 'voice_msu_ru_nsh_clunits)

—оздаем кэш Ц директорию. ƒл€ этого, скопируйте команду ниже:

mkdir /var/lib/asterisk/festivalcache/ && chown asterisk:asterisk /var/lib/asterisk/festivalcache/

ќткрываем файл /etc/asterisk/festival.conf и добавл€ем следующие строки:

[main]
host=localhost
port=1314
usecache=yes
cachedir=/var/lib/asterisk/festivalcache/  \\созданный выше файл
festivalcommand=(tts_textasterisk "%s" 'file)(quit)\n

«апускаем сервер festival

festival --server

≈сли все успешно, то вы увидите строки ниже:

 [pbx@localhost ~]#festival --server
server    Fri Aug 12 13:00:32 2016 : Festival server started on port 1314

ѕриступаем к тестам. ќткрываем файл /etc/asterisk/extensions_custom.conf и создаем тестовый диал Ц план как указано ниже:

[festival]
exten => s,1,Answer
exten => s,n,Festival('ѕривет. ¬се. работает.')
exten => s,n,Hangup

—охран€ем изменени€. ƒл€ того, чтобы настроить воспроизведение из графического интерфейса FreePBX мы воспользуемс€ модулем Custom Destinations. ƒл€ его настройки перейдите во вкладку Admin -> Custom Destinations . Ќажимаем на кнопку Add Destination

Custom Destionations в FreePBX 13

–азберем каждую из опций:

  • Target - укажите здесь festival,s,1, согласно созданному ранее диал-плану. —интаксис заполнени€ следующий - [им€_контекста],[экстеншен],[приоритет]
  • Description - описание создаваемого правила
  • Notes - заметки. ≈сли вы создаете много подобных правил, советуем создавать подробные заметки, чтобы избежать дальнейшей путаницы.
  • Return - если ваш контекст заканчиваетс€ командой Return (команда возвращает вызов в родительский контекст), то в поле Destination укажите назначение дл€ вызова после отработки TTS.

ѕо окончанию настроек нажмите Submit и затем Apply Config.

“еперь необходимо настроить маршрутизацию на кастомный контекст, который мы только что создали в FreePBX. Ќапример, можно настроить маршрутизацию из IVR меню по нажатию цифры 5 на телефоне, как указано ниже:.

ћаршрутизаци€ на Text to Speech FreePBX 13

«воним на IVR и нажимаем 5 и слышим синтезированный голос. ѕараллельно смотрим на запущенный через CLI сервер Festival:

client(1) Fri Aug 12 13:00:54 2016 : accepted from localhost
client(1) Fri Aug 12 13:01:04 2016 : disconnected
client(2) Fri Aug 12 13:01:20 2016 : accepted from localhost
client(2) Fri Aug 12 13:01:20 2016 : disconnected

Google TTS в FreePBX

≈ще пару лет назад можно было бы легко воспользоватьс€ Google TTS дл€ синтеза речи. ƒл€ этого надо было добавить движок во вкладке Settings -> Text To Speech Engines и отредактировать файл /var/lib/asterisk/agi-bin/propolys-tts.agi. Ќо, к сожалению, Google начал использовать капчу, чем перекрыл автоматизированный и бесплатный доступ к своему сервису.

ƒополнительно про настройку TTS от Festival вы можете прочитать здесь.


ѕолезна ли ¬ам эта стать€?

–аз в неделю мы отправл€ем дайджест с самыми интересными стать€ми.

P.S. ≈сли укажите свою дату рождени€, то мы об€зательно ¬ас поздравим и подарим небольшой подарок :)

Ќажима€ на кнопку "ѕодписатьс€", вы даете согласие на обработку своих персональных данных