Asterisk. Команда Festival.

Festival() - Использует механизм речевого воспроизведения текста Festival  для чтения текста вызывающему абоненту.

Festival(текст[,кнопкипрерывания])

Подключается к выполняемому локально серверу Festival, посылает ему текст и воспроизводит результирующий звуковой файл абоненту.
Это приложение позволяет вызывающему абоненту нажимать определенную кнопку (задается параметром кнопкипрерывания), для немедленного прекращения воспроизведения и возвращения значения кнопкипрерывания.

Если для параметра кнопкипрерывания задано значение any (любой), Festival() передает управление каналом добавочному номеру, который вводится пользователем.
Более подробная информация об использовании Festival  можно найти  в файле README.festival, находящемся в подпапке contrib/ папки исходного кода Asterisk.

Сервер Festival должен быть запущен до запуска Asterisk, и, прежде чем вызывать Festival(), необходимо ответить каналу, используя приложение Answer().

Пример:

exten => 123,1,Answer()
exten => 123,2,Festival('This is sample speech from Festival',#)