Da qualche giorno, lavorando ad un progetto nella ditta per la quale lavoro, ho ripreso a “giocare” con asterisk, il centralino telefonico VoIP open source di Digium.

In particolare sto studiando e imparando a creare un vero e proprio IVR (Interactive Voice Response) con connessioni ad un database mysql per ottenere risultati dinamici in tempo reale.

Per fare questo è necessario utilizzare, spesso, un software di sintesi vocale ma i vari festival e mbrola, presenti da anni sui sistemi linux, hanno la famosa voce del caro vecchio servizio 12 della SIP!!

Tanto per cambiare vi viene in soccorso Google e un plugin, chiamato googletts, installabile sul nostro asterisk.

Il software googletts.agi è scaricabile dal sito di riferimento gratuitamente e si integra facilmente nei dialplan di asterisk. Naturalmente per farlo funzionare è necessario che il centralino asterisk sia connesso ad internet per accedere a google.

Basterà installare i vari software da cui dipende il funzionamento di googletts con semplici comandi apt-get (vedi sotto) e copiare il file googletts.agi nella cartella /var/lib/asterisk/agi-bin/ o nella cartella che viene menzionata nel file /etc/asterisk/asterisk.conf alla voce astagidir. Nel caso di una installazione fatta in Ubuntu 12.10, la cartella agi-bin, potrete trovarla in /usr/share/asterisk/agi-bin/.

Per installare le dipendenze eseguire, da terminale, il seguente comando:

sudo apt-get install perl mpg123 sox

Il suo utilizzo è poi molto semplice, come scrivere una frase in italiano. Nel file /etc/asterisk/extensions.conf, che altro non è che il dialplan del nostro IVR, inserire delle righe di questo tipo:

exten => 9999,1,Answer()
exten => 9999,n,agi(googletts.agi, “Buon giorno utente. Questo messaggio viene letto dal sistema di sintesi vocale di google da una voce femminile in italiano.”, it)
exten => 9999,n,Hangup()

Chiamando dal nostro apparecchio VoIP il numero telefonico interno 9999 si sentirà  la voce sintetizzata di Google rispondere al telefono e riattaccare dopo aver letto il messaggio.

Questo sistema è ottimo, anche se la voce non è ancora perfettamente riprodotta, se il nostro IVR necessita di risposte personalizzate. In maniera alternativa è possibile registrare la propria voce, tramite telefono VoIP o tramite un’attrezzatura professionale, ed utilizzare poi le registrazioni come sorgente di riproduzione vocale. In questo caso il risultato sarà sicuramente molto più umano ma meno personalizzabile.

A tal proposito annuncio che ho iniziato ad organizzarmi per creare un set di voci asterisk standard in italiano  realizzando in proprio le registrazioni con attrezzature professionali. Appena saranno pronti i primi files li renderò disponibili online.