Тема для меня очень интересная, как оказалось festival читает довольно неплохо по-русски, а по английски так вообще хорошо. На дебиане такая штука завелась с пол тычка, поэтому установку для этой системы описывать не буду, а буду ставить на Centos 5(для Elastix так же). Как оказалось, дело это довольно геморное, но с этой инструкцией у вас получится поднять сервис за 5 минут)
Самая большая засада — это то что в репах Centos 5 валяется festival v1.95, а поддержка русского появилась в 1.96) Это мне стоило около двух часов работы. Но Вы — умный человек, учитесь на чужих ошибках, поэтому за два часа вы сможете поднять сервис ну и за оставшиеся два часа минус пять минут вдоволь наиграться с этой штукой.
Итак,
Выкачиваем исходники:
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
|
Перед компиляцией у меня потребовалось установить ncurses-devel, ну а так же в системе должны присутствовать gcc и gcc-g++
yum install ncurses-devel
|
Далее распаковываем, компилируем
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
|
Далее добавляем в PACH путь до бинарников
export PATH=$PATH:/usr/src/festival/bin/
|
Далее скачиваем русский язык:
cd /usr/src
wget http://sourceforge.net/projects/festlang.berlios/files/msu_ru_nsh_clunits-0.5.tar.bz2
|
Теперь нужно создать директорию для голоса и озвучки
mkdir ./festival/lib/voices/
mkdir ./festival/lib/voices/russian
|
Распаковываем туда нашу озвучку
tar xjf msu_ru_nsh_clunits-0.5.tar.bz2 -C ./festival/lib/voices/russian
|
Должно получиться вот-так
ls /usr/src/festival/voices/russian/msu_ru_nsh_clunits/
COPYING dict etc festival festvox lab lib mcep README wav
|
Далее добавляем в начало файла ./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 'americanenglish)
|
Добавим
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
((equal? language 'russian)
(language_russian))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
Также делаем дефолтным русский язык:
(set! voice_default 'voice_msu_ru_nsh_clunits)
|
Отредактируем конф файл фестиваля для астериска
nano /etc/asterisk/festival.conf
|
.............
; Use cache (yes, no - defaults to no)
;
usecache=yes
;
cachedir=/var/lib/asterisk/festivalcache/
;
festivalcommand=(tts_textasterisk "%s" 'file)(quit)\n
;
;
|
Создаем директорию кэша. Стоит отметить, что она сама не очищается
mkdir /var/lib/asterisk/festivalcache/ && chown asterisk:asterisk /var/lib/asterisk/festivalcache/
|
Ну а теперь загружаем модуль app_festival в астериске, если не загружен
asterisk -r
sip4*CLI> module load app_festival.so
|
Стартуем фестиваль
festival -b '(voice_msu_ru_nsh_clunits)' --server &>/dev/null
|
Все, создаем диалплан, слушаем в трубке голос диктора
[fest]
exten = 1111,1,Answer
exten = 1111,n,Festival('Первое слово. Второе слово. Третье слово.')
exten = 1111,n,Hangup
|
Дополнительная информация на http://www.voip-info.org/wiki/view/Asterisk+festival+installation
Источник: http://blog.itradius.ru/?p=180 |