Загружается...
 
Команда Festival

Команда Festival()

Назначение

Произносит заданный тест абоненту

Описание:

Festival(text,intkeys)

Команда использует систему синтеза речи Festival (которую Вам необходимо инсталлировать) для синтеза речи по заданному тексту text. Параметр intkeys необязателен. Если он задан, то определяет кнопку, которую пользователь может набрать для останова проигрывания синтезированной речи, и команда Festival вернет значение нажатой кнопки. Если вы определите параметр intkeys в значение "any", тогда функция Festival закончит работу, если будет нажата любая кнопка, вне зависимости какая из них.

Параметр text должен быть заключен в кавычки, если он содержит в себе символы пробела.

Пример

exten => 003,1,Answer
exten => 003,2,Festival('Hello asterisk user, how are you today?')
; Обратите внимание, что должны присутствовать кавычки ...

exclaim Не забудьте перевести канал в отвеченное состояние, командой Answer, перед использованием функции Festival.

Альтернативное решение

Вы можете достичь лучшего результата, используя функцию System, для вызова команды Festival: text2wave, которая сгенерирует необходимый .WAV файл, который можно воспроизвести абоненту командами Background или Playback, вместо того, чтоб использовать Asterisk команду Festival.

%> text2wave -o myfile.ulaw -otype ulaw -

Получает текст из stdin и создает звуковой файл с синтезированным текстом в формате ulaw. Вы можете использовать команду Playback(myfile) для простого воспроизведения этого файла в asterisk.
Если у вас появляются проблемы с командой Festival, когда она пропускает часть Вашего текста, то этот метод может Вам помочь. А также, если у Вас сервер Asterisk сильно загружен, то, таким образом Вы можете разделить процессы, запустив синтез речи в фоне, и, через некоторое время, проиграть сгенерированные инструкции Вашему пользователю. Например:
exten => s, 1, System(do_stuff &)
exten => s, 2, Playback(introduction-instructions)
exten => s, 3, Playback(my_new_sound)

*****   do_stuff *****
#!/usr/bin/php
<?php
// Take care of all your processing.
$data = "A lot of text or something here.";
system("echo $data | text2wave -o my_new_sound.ulaw -otype ulaw -");
?>

Что-то вроде этого позволит Вам генерировать большое количество файлов с синтезированной речью, притом не заставляя пользователя много ждать.


Ссылки по теме:


---
Asterisk | Файлы конфигурации | План набора: extensions.conf | Список команд
Создано admin. Последнее изменение: понедельник 03 / октябрь, 2005 14:04:58 MSD автор admin.