Sintesi vocale: integrazione Asterisk/Cepstral Voice
Come ha avuto occasione di sperimentare chi vi si è cimentato (vedi qui), l'adozione di una soluzione puramente opensource di TTS da integrare con Asterisk o CallWeaver non offre, specialmente nel caso di lingue differenti dall'Inglese (Italiano in primis), una qualità espressiva della voce tale da renderla accettabile per un sistema IVR professionale.
In questa circostanza occorre quindi rivolgersi a soluzioni commerciali, che offrono in genere solo la possibilità di generare in ambiente Windows, dei messaggi vocali da utilizzare successivamente tramite le applicazioni Background() e PlayBack(), senza però che vi sia una vera integrazione col nostro PBX.
Una eccezione a questo comportamento è rappresentata da Cepstral Voice, che mette a disposizione una applicazione Linux, trial ma pienamente funzionante, e con una gradevole voce femminile italiana.
Il file da scaricare è: http://downloads/cepstral.com/cepstral/i386-linux/i386-linux/Cepstral_Vittoria_4.2.1.tar.gz
L'installazione è elementare:
Dopo aver scompattato il file in una directory di propria scelta, dopo essersi posizionati nella root del tree generato, basta impartire:
# ./install.sh
che effettivamente installerà l'applicazione sotto /opt
In particolare verrà installato l'eseguibile /opt/swift/bin/swift con un link in /usr/local/bin/swift, in modo da non dover specificare l'intero pathname per richiamarne l'esecuzione.
L'eseguibile swift ha diverse opzioni disponibili. Ad esempio:
# swift -o /tmp/output.wav -p audio/sampling-rate=8000,
audio/channels=1 "Questa è una prova."
genera un messaggio sonoro dalla stringa specificata nel file /tmp/output.wav, di qualità telefonica (8000 Hz, mono):
L'inconveniente della versione trial è che ogni messaggio vocale generato contiene, in testa al file, un invito ad acquistare la licenza.
Considerato che l'avvertimento dura 8.9 secondi e ferma restando l'intenzione di regolarizzarci in seguito, diventa possibile l'integrazione in tempo reale con Asterisk, senza l'utilizzo di files sonori statici, in questo modo:
exten => 222,1,Answer
exten => 222,2,System(/usr/local/bin/swift -o /tmp/output.wav -p audio/sampling-rate=8000,
audio/channels=1 "Benvenuti! Questa è una prova.")
exten => 222,3,System(/usr/bin/sox /tmp/output.wav /tmp/welcome.wav trim 8.9
exten => 222,4,PlayBack(/tmp/welcome.wav)
|