Вход/Регистрация
Asterisk™: будущее телефонии Второе издание
вернуться

Меггелен Джим Ван

Шрифт:

Настройка и подготовка Festival к работе с Asterisk

В настоящее время существует два способа использования Festival с Asterisk. Первый (самый простой) метод, без доработки и повторной компиляции Festival, - загрузить в конфигурационный файл Festival следующий текст (festival.scm обычно располагается в папке /etc/ или /usr/share/festival/):

(define (tts_textasterisk string mode) "(tts_textasterisk STRING MODE)

Apply tts to STRING. This function is specifically designed for use in server mode so a single function call may synthesize the string. This function name may be added to the server safe functions." [130]

130

Применяем tts к STRING. Эта функция специально разработана для использования в режиме сервера, чтобы можно было синтезировать строку одним вызовом функции. Это имя функции может быть добавлено в список безопасных функций сервера.
– Примеч. перев.

(let ((wholeutt (utt.synth (eval (list 'Utterance 'Text string))))) (utt.wave.resample wholeutt 8000) (utt.wave.rescale wholeutt 5) (utt.send.wave.client wholeutt)))

Этот текст можно поместить в любом месте файла, но только так, чтобы он не попал в другие круглые скобки.

Второй (и более традиционный) способ - скомпилировать Festival со специальным патчем для Asterisk (располагающимся в подпапке contrib/ папки исходного кода Asterisk).

Информация по обоим методам имеется в файле README.festival, который находится в подпапке contrib/ папки исходного кода Asterisk. Для любого метода вам придется изменить список доступа Festival в файле festival.scm. Просто выполните поиск по слову localhost и замените его полным доменным именем своего сервера.

Оба метода настраивают Festival так, чтобы он мог правильно взаимодействовать с Asterisk. Настроив Festival, необходимо запустить сервер Festival. После этого можно вызывать приложение Festival из диалплана.

Конфигурация Asterisk для работы с Festival

Конфигурационный файл Asterisk, обеспечивающий настройки для работы с Festival, называется festival.conf, что вполне логично. В этом файле задаются имя хоста и порт используемого сервера Festival, а также некоторые настройки для кэширвания речи, генерируемой Festival. Для большинства установок (если вы собираетесь запускать Festival на своем сервере Asterisk) прекрасно подходят настройки по умолчанию.

Запуск сервера Festival

Чтобы запустить сервер Festival для отладки, просто выполните команду festival с аргументом --server: [root@asterisk ~]# festival --server Убедившись в том, что сервер Festival работает и не отклоняет ваших соединений, можно запустить Festival, введя следующее: [root@asterisk ~]# festival_server 2>&1 >/dev/null &

Вызов Festival из диалплана

Теперь, когда Festival сконфигурирован и сервер Festival запущен, организуем его вызов в простом диалплане:

exten => 123,1,Answer

exten => 123,2,Festival(Asterisk and Festival are working together)

Перед вызовом Festival всегда должно быть вызвано приложение Answer, чтобы гарантировать установление соединения по каналу.

Когда Asterisk соединяется с Festival, на терминале, с которого был запущен сервер Festival, должен появиться такой вывод:

[root@asterisk ~]# festival --server

server Sun May 1 18:38:51 2005 : Festival server started on port 1314
client(1) Sun May 1 18:39:20 2005 : accepted from asterisk.localdomain
client(1) Sun May 1 18:39:21 2005 : disconnected

Еще один способ использования Festival с Asterisk

Некоторые участники сообщества разработчиков Asterisk сообщают о том, что им удалось передать текст в утилиту Festival text2wave и воспроизвести в Asterisk результирующий WAV-файл. Например, это можно сделать так:

exten => 124,1,Answer

exten => 124,2,System(echo "Это проверка Festival" | /usr/bin/text2wave -scale 1.5 -F 8000 -o /tmp/festival.wav) exten => 124,3,Playback(/tmp/festival) exten => 124,4,System(rm /tmp/festival.wav) exten => 124,5,Hangup

Этот метод также позволяет вызывать другие механизмы речевого воспроизведения текста, такие как популярный речевой механизм производства компании Cepstral , который является недорогой коммерческой производной Festival с очень приятными голосами. Для этого примера будем считать, что Cepstral установлен в папку /usr/local/cepstral/: exten => 125,1,Answer

exten => 125,2,System(/usr/local/cepstral/bin/swift -o /tmp/swift.wav

"Это проверка Cepstral")

exten => 125,3,Playback(/tmp/swift)

exten => 125,4,System(rm /tmp/swift.wav)

exten => 125,5,Hangup

Появление следующего вывода означает, что в список доступа в файле festival.scm не был добавлен хост, вследствие чего соединение было отклонено:

[root@asterisk ~]# festival --server

server Sun May 1 18:30:52 2005 : Festival server started on port 1314 client(1) Sun May 1 18:32:32 2005 : rejected from asterisk.localdomain not in access list

Файлы вызовов

Файлы вызовов позволяют создавать вызовы в оболочке Linux. Эти мощные события запускаются путем размещения файла .call в папке /var/spool/asterisk/outgoing/. Фактически имя файла не имеет значения, но хорошей практикой является давать ему информативное имя и заканчивать его расширением .call.

  • Читать дальше
  • 1
  • ...
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: