Text to Speech mit Asterisk und googletts.agi

Dezember 27th, 2014 | Posted by in UNIX

Hat man einen Asterisk-Server mit Verbindung zum Internet bietet es sich an in der Anrufverarbeitung dem Anrufer Text-to-Speech Ansagen mit der Google-Api (googletts.agi) vorzulesen.

Ebenso ist es möglich aufgezeichnete Mailbox-Nachrichten in eine Text-Mail zu schreiben, allerdings habe ich hierfür keine Bedarf gesehen, da man einer Mail auch eine Audio-Datei anhängen kann, aber es gibt bestimmt jmd der hier Möglichkeiten sieht (Nennen einer Kundennummer, suchen der Nummer in einer Datenbank und generieren eines entsprechenden Pop-Ups).

Zunächst brauch man die googletts.agi, die man in der Asterisk an der Schnittstelle AGI-Schnittstelle (Asterisk Gateway Interface) einbindet.

Diesem Script übergibt man dann das, was es als Ansage dann vorspielen soll.

Der Aufruf erfolgt dann über die extensions.conf:

exten => _nummer,n,Answer
exten => _nummer,n,Playback(2SecStille)
exten => _nummer,n,agi(getname.sh, ${CALLERID(num)})
exten => _nummer,n,agi(googletts.agi,“${ANRUFERBEGRUESSUNG}“,de)
exten => _nummer,n,Playback(Ansagenfile)
exten => _nummer,n,Dial(SIP/12345&SIP/12346&SIP/3001,60,Tm)

Hier wird dann im Dialplan an das Shell-Script getname.sh die Rufnummer übergeben.

Das Script liefert an StandardOut die Anruferbegrüssung, was dann als Variable wieder an googletts.agi übergeben wird. Das „de“ steht dann für deutsch.

Update 26.08.2015

Google hat nun zur Nutzung der TTS Captchas eingeführt. Dies kann man umgehen, indem man an den Aufruf im googletts.agi  Script

&client=t

anfügt (bei mir im Script in Zeile 228).

googletts aenderung

 

 

Jetzt mit Captcha:
http://translate.google.com/translate_tts?ie=UTF-8&q=This%20is%20Ravishanker&tl=en-us
So läuft es wieder:
http://translate.google.com/translate_tts?ie=UTF-8&q=This%20is%20Ravishanker&tl=en-us&client=t

You can follow any responses to this entry through the RSS 2.0 Both comments and pings are currently closed.