martedì 22 aprile 2014

freepbx: abilitare motore di sintesi vocale googleTTS

-scaricare il file perl da http://zaf.github.io/asterisk-googletts/ decomprimerlo e copiare il file googletts.cli. pl in /var/lib/asterisk/agi-bin
-entrare in ssh, dare chmod 777 e chown asterisk:asterisk al file e poi lanciarlo: se da errori di moduli perl mancanti, installare gli stessi da yum
-dare ilcomando di test per vedere se ci sono errori perl ./googletts-cli.pl -t "test sintesi" -o test.wav
-se la console da come errore un errore su HTTPS "Crypt::SSLeay or IO::Socket::SSL not installed"
dare i seguenti comandi
perl -MCPAN -e shell
install IO::Socket::SSL
rispondere si alle domande e terminare la configurazione di perl

-editare il file propolys-tts.agi modificando la sezione switch come segue

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 'googleTTS':
                exec($enginebin." -l it -f $textfile -r 8000 -o $wavefile");
                break;
        default:
        }

-aprire freepbx e andare in settings -> text to speech engines, cliccare su "add engine" dare come nome al  motore googleTTS e mettere /var/lib/asterisk/agi-bin/googletts-cli.pl come percorso poi salvare

-andare in application -> text to speech e scegliere nella tendina choose an engine il motore google appena aggiunto. se la tendina è vuota si deve disinstallare e reinstallare il modulo text to speech da admin -> module admin.
nel campo text scrivere il testo che si vuole sia letto: FONDAMENTALE SCRIVERE IL TESTO SENZA PREMERE INVIO, IN CASO CONTRARIO LA SINTESI NON FUNZIONERA'.

la linea di codice  exec($enginebin." -l it -f $textfile -r 8000 -o $wavefile"); comprende il parametro della lingua. pertanto inserendo piu volte il motore con nomi diversi e aggiungendo case ulteriori con diverse lingue è possibile realizzare annunci multilingua 


Nessun commento:

Posta un commento

Post in evidenza

RISOLVERE PROBLEMA DISCONNESSIONE UNITA DI RETE

- lato server disattivare il timeout delle condivisioni dando da cmd il seguente comando net config server /autodisconnect:-1 - portare...