Подключаем google tts к FreePBX (Asterisk)

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

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

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

 

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

1

yum install ffmpeg -y

 

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

Заменяем:

1

2

3

4

5

6

7

8

9

10

11

12

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:

}

На:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

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»  

 

 

 

Если не получается установить утилиту ffрmpeg, воспользуйтесь вот этой мини инструкцией!

 

Как быстро установить ffmpeg в Centos 7:

1. wget ftp://rpmfind.net/linux/centos/6.5/os/x86_64/Packages/libdc1394-2.1.2-3.4.el6.x86_64.rpm
2. yum -y localinstall libdc1394-2.1.2-3.4.el6.x86_64.rpm
3. rpm -ivh http://dl.atrpms.net/el7-x86_64/atrpms/stable/atrpms-repo-7-7.el7.x86_64.rpm
4. yum -y install ffmpeg

Back to top