Персональный сайт Федоренко Александра Суббота, 18.05.2024, 20:01
Приветствую Вас Гость | RSS
Меню сайта

Категории раздела
CentOS [5]
Asterisk [16]
Elastix [4]
Виртуализация [3]
Raspberry Pi [5]
Статьи по настройке и использованию Raspberry Pi

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Форма входа

Главная » Статьи » LINUX » Asterisk

Синтез речи в телефонной трубке or asterisk+festival

Тема для меня очень интересная, как оказалось 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))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

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

nano ~/.festivalrc
 (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
Категория: Asterisk | Добавил: AFed (21.03.2016)
Просмотров: 2045 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *:
Поиск

Copyright MyCorp © 2024Создать бесплатный сайт с uCoz