Google TTS et Google Translate

IVR Multi Langue
Google TTS (Text To Speech) et Google Translate V2


 

asterisk tts translate

 

 

1. Présentation

Nous allons voir dans ce tuto comment réaliser un SVI multilingue, sans avoir à enregistrer de fichier son ni à gérer leurs traduction..

Nous allons utiliser 2 agi de google pour ce faire :

  • Google TTS (Text To Speech) est un système informatique permettant de transformer un texte écrit en un texte parlé.
  • Google Translate V2 permet de traduire un texte dans la langue demandé, et de ressortir le resultat dans une variable.

 

2. Pré requis

Pour utiliser le service translate, il faut disposer d’une clé API

https://console.developers.google.com/apis/library/translate.googleapis.com

 

L’API nécessite un accès internet pour fonctionner.

 

3. Installation

Installation des dépendances :

yum -y install perl perl-libwww-perl sox cpan mpg123 perl-IO-Socket-SSL perl-JSON

Vérifier l’emplacement du répertoire agi bin et adapter les chemins ci besoin :

cat /etc/asterisk/asterisk.conf  | grep astagidir

Installation des AGI

mkdir -p /var/lib/asterisk/agi-bin
cd /var/lib/asterisk/agi-bin
wget https://raw.github.com/zaf/asterisk-googletts/master/googletts.agi
wget https://raw.githubusercontent.com/zaf/asterisk-googletranslate/master/googletranslate.agi
chmod +x googletts.agi googletranslate.agi

Saisissez votre clé API dans /var/lib/asterisk/agi-bin/googletranslate.agi

my $appid = "votre clé API";

 

4. Utilisation

a. Google TTS (Text To Speech)

agi (googletts.agi, text, [langue], [intkey])

Ceci appelle le moteur Google TTS, restitue la chaîne de texte à la voix et la restitue à l'utilisateur.

b. Google Translate V2

agi(googletranslate.agi,"text",[target language],[source language])

La chaîne de texte sera envoyée à google translate pour être traduite dans la langue cible.

Le texte traduit sera stocké sous la forme d'une variable de canal nommée 'gtranslation' .

 

5. Exemples

Modifier le fichier: extensions_custom.conf

Sous [from-internal-custom] ajouter:

exten => 2345,1,Goto(ivr-tts,s,1)

Et à la fin du fichier ajouter l'un des exemple ci dessous

a. Exemple 1

[ivr-tts]
exten = s,1,Answer()
exten = s,n,NoOp(#### SVI Multi langue ###)
exten = s,n,agi(googletts.agi,"choisissez votre langue",fr)
exten = s,n,agi(googletts.agi,"1 for English",en)
exten = s,n,agi(googletts.agi,"2 pour le français ",fr)
exten = s,n,agi(googletts.agi,"3 para español",es
exten = s,n,agi(googletts.agi,"日本語のための4",ja)
exten = s,n,set(hello="Hello and welcome to Calexium")
exten = s,n,WaitExten(10)

;Lecture via google tts exten = 1,1,agi(googletts.agi,${Hello},en)

; Traduction en français via google translate exten = 2,1,agi(googletranslate.agi,${hello},fr,en) exten = 2,n,agi(googletts.agi,${gtranslation},fr)

Traduction en espagnol via google translate exten = 3,1,agi(googletranslate.agi,${hello},es,en) exten = 3,n,agi(googletts.agi,${gtranslation},es)

Traduction en Japonais via google translate exten = 4,1,agi(googletranslate.agi,${hello},ja,en) exten = 4,n,agi(googletts.agi,${gtranslation},ja)

exten => t,1,Goto(ivr-tts,s,1)

a. Exemple 2

Il est également possible de gérer la langue via une variable, rendant la suite bien plus simple à gérer.

[ivr-tts]
exten = s,1,Answer()
exten = s,n,NoOp(#### SVI Choix langue ###)
exten = s,n,agi(googletts.agi,"choisissez votre langue",fr)
exten = s,n,agi(googletts.agi,"1 for English",en)
exten = s,n,agi(googletts.agi,"2 pour le français ",fr)
exten = s,n,agi(googletts.agi,"3 para español",es
exten = s,n,agi(googletts.agi,"日本語のための4",ja)

exten = s,n,WaitExten(10)

;Définition de la vatriable de langue cible exten = 1,1,set(language="en") exten = 1,n,Goto(ivr-translate,s,1)

exten = 2,1,set(language="fr") exten = 2,n,Goto(ivr-translate,s,1)

exten = 3,1,set(language="es") exten = 3,n,Goto(ivr-translate,s,1)

exten = 4,1,set(language="ja") exten = 4,n,Goto(ivr-translate,s,1))

exten => t,1,Goto(ivr-choix-language,s,1)

[ivr-translate] exten = s,1,NoOp(#### SVI Traduit dans la langue choisie ###) exten = s,n,agi(googletranslate.agi,"Hello and welcome to Calexium",${language},en) exten = s,n,agi(googletts.agi,${gtranslation},${language})

 

6. Langues supportées

La traduction est possible entre deux de ces langues:

  • af
  • ar
  • be
  • bg
  • ca
  • cs
  • cy
  • da
  • de
  • el
  • en
  • eo
  • es
  • et
  • fa
  • fi
  • fr
  • ga
  • gl
  • hi
  • hr
  • ht
  • hu
  • id
  • is
  • it
  • iw
  • ja
  • ko
  • lt
  • lv
  • mk
  • ms
  • mt
  • nl
  • no
  • pl
  • pt
  • ro
  • ru
  • sk
  • sl
  • sq
  • sr
  • sv
  • sw
  • th
  • tl
  • tr
  • uk
  • vi
  • yi
  • zh
  • zh-TW

7. Licence

Le script googletranslate pour asterisk est distribué sous License GNU General Public License v2.

 


 

 
Formation VoIP - Démarrer ou développer une activité VoIP le 6 Décembre 2017 et le 10 Janvier 2018 9h - 18h à Avon - 590€ H.T/personne
10% de réduction pour 2 personnes, 15% pour 3 personnes, 20% pour 4 personnes, bon d'achat d'un montant de 150€ à partir de deux formations différentes payée avant le 31 Décembre * offre cumulable
 

Possibilité de prise en charge par votre OPCA ou dans le cadre d'un DIF. 
Consultez le programme détaillé

Inscrivez-vous
Pour plus de renseignements contactez-nous au  01 84 18 10 10
Cette adresse email est protégée contre les robots des spammeurs, vous devez activer Javascript pour la voir.