Авг 172013
 

googКак то стала необходимость подключения распознавания голоса на freepbx, но дефолтный flite меня не устроил, так как он не знает русского!   🙁

Решил я тогда подвязать goole tts и при этом не переделывать диалплан на кастомный.

Что ж, для начала создадим движок tts в самом freepbx. Идем в «Settings» — «Text to Speech Engines» и добавляем новый, где «Engine name» указываем «google». Потом сохраняем нажавши «Submit».

add_google_tts

Дальше нам понадобится научить freepbx работать с гуглом. Но перед этим нужно установить утилиту ffmpeg:

yum install ffmpeg -y

Теперь редактируем файл /var/lib/asterisk/agi-bin/propolys-tts.agi

Заменяем:

switch ($engine) {
case 'text2wave':
        exec($enginebin." -f 8000 -o $wavefile $voice $textfile");
        break;
case 'flite':
        exec($enginebin." -f $textfile -o $wavefile");
        break;
case 'swift':
        exec($enginebin." -p audio/channels=1,audio/sampling-rate=8000 -o $wavefile -f $textfile");
        break;
default:
}

На:

switch ($engine) {
case 'text2wave':
        exec($enginebin." -f 8000 -o $wavefile $voice $textfile");
        break;
case 'flite':
        exec($enginebin." -f $textfile -o $wavefile");
        break;
case 'swift':
        exec($enginebin." -p audio/channels=1,audio/sampling-rate=8000 -o $wavefile -f $textfile");
        break;
case 'google':
        $wget = 'wget -U "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5" ';
        $wget.= '"http://translate.google.com/translate_tts?q='.$text.'&tl=ru" -O '.$wavefile.'.mp3';
        $ffmpeg = 'ffmpeg -i '.$wavefile.'.mp3 -ar 8000 -ac 1 -ab 64 '.$wavefile;
        $exec = $wget.' && '.$ffmpeg.' && rm -Rf '.$wavefile.'.mp3';
        exec($exec);
        break;
default:
}

Все! Теперь можете открывать во freepbx «Applications» — «Text To Speech» и добавлять фразы для воспроизведения на русском, но не забываем при этом выбирать движок распознавания «google»  😎

  4 комментария to “Подключаем google tts к FreePBX”

  1. [root@localhost ~]# yum install ffmpeg -y
    Loaded plugins: fastestmirror, kmod
    Loading mirror speeds from cached hostfile
    Setting up Install Process
    No package ffmpeg available.
    Error: Nothing to do
    [root@localhost ~]#

    не хочет ставиться пакет!
    помогите как исправить?

  2. Помогите, пожалуйста! По данной процедуре установки подгружается пустой mp3 файл. в папке /var/lib/asterisk/sounds/tts появляютс 2 файла один текстовый с самим текстом, второй mp3 файл. Но он нулевой(пустой) ничего в нем нет. как это исправить? и возвожно ли поменять голос с женского на мужской?

    • Причина этого в том, что гугл натравил капчу на свой tts. Т.е. при использовании wget оно не генерирует файл, а показывает капчу. Так что теперь с этим есть проблемы. У себя я перешел на локальный синтезатор festival ибо это лучшее из оставшихся бесплатных.

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)