Установка и настройка Festival в Asterisk 16

Установка и настройка Festival в Asterisk 16

В данной статье мы поделимся опытом установки и настройки с нуля Festival TTS (Text-to-Speech) в Asterisk 16 на ОС Debian 10. TTS технология преобразовывает текстовую информацию в голосовую. В IP-телефонии данная технология позволяет сократить затраты на человеческие ресурсы в обработке запросов. Например, информирование абонентов о балансе, о статусе заявки и проигрывание любых других информационных сообщений. Также полезна функция интернет-магазинам, которые в автоматическом режиме могут сообщать клиентам информацию по заказам.

Festival – мультиязычная система синтеза речи, разработанная CSTR (The Centre for Speech Technology Research) в университете Эдинбурга. Festival предлагает полную систему синтеза речи с различными API, а также окружение для разработки и исследования техник синтеза речи. Она написана на C++ и имеет основанный на Scheme интерпретатор команд для общего контроля. Помимо исследования синтеза речи, Festival полезна в качестве самостоятельной программы синтеза речи. Основная особенность Festival – это работа в режиме офлайн, без использования подключения по API к сторонним сервисам через сеть Интернет.

Что имеем:

  • Debian 10.2
  • Asterisk 16.5.0

Устанавливаем пакеты Festival и руссификацию из репозитория:

apt-get install -y festival festvox-ru

Активируем и делаем по умолчанию русский язык. Для этого редактируем файл /etc/festival.scm:

;; Set russian voices
(language_russian)
(set! voice_default 'voice_msu_ru_nsh_clunits)

Настраиваем Asterisk для работы с Festival, для этого редактируем файл /etc/asterisk/festival.conf:

[general]
host=localhost
port=1314
usecache=yes
cachedir=/var/lib/asterisk/festivalcache/
festivalcommand=(tts_textasterisk "%s" 'file)(quit)\n

Устанавливаем права на каталог:

chown -R asterisk:asterisk /var/lib/asterisk/festivalcache/
chmod -R u=rwX,g=rX,o=rX /var/lib/asterisk/festivalcache/

Делаем русский язык по умолчанию, изменив в конце файла /usr/share/festival/languages.scm:

(defvar language_default 'english)

на

(defvar language_default 'russian)

и в файле /usr/share/festival/siteinit.scm перед:

(provide 'siteinit)

добавляем:

(set! voice_default 'voice_msu_ru_nsh_clunits)

Теперь можно запустить сервер Festival:

festival --server &

И проверить работу, добавив маршрутизацию в файл /etc/asterisk/extensions.conf:

[festival]
exten => 1234,1,Answer
exten => 1234,n,Festival('-. Белеет парус одинокой в тумане моря голубом!')
exten => 1234,n,Hangup

 


Любое использование материалов сайта возможно только с разрешения автора и с обязательным указанием источника.