PDA

Voir la version complète : Changer le syntetiseur vocale par defaut



ja86
25/09/2013, 21h59
Bonjour,
Je voudrais savoir comment fonction le fichier mis en pièce jointe. En effet dans mon fichier extensions_custom.conf on peux lire ce qui suit. J'ai modifier la ligne en rouge pour que asterisk me parle en français. Mais après il fait appel a un script agi que j'ai mis en pj, mais la je ne vois pas comment le modifier pour que le système vocale soit googletts au lieu de flite. Car googletts est configurer en français et cela serais plus pratique de le faire parler. J'ai d'autre scripte agi sur le même fonctionnement alors si je pouvais avoir de l'aide pour lui j'appliquerais la même procédure pour les autres. Merci d'avance de votre aide apporté.
Cordialement, JA86.


;# // BEGIN nv-callwho
exten => 411,1,Answer
exten => 411,2,Wait(1)
exten => 411,3,Set(TIMEOUT(digit)=7)
exten => 411,4,Set(TIMEOUT(response)=10)
exten => 411,5,GotoIf($[${STAT(e,/usr/bin/swift)}]?8)
exten => 411,6,agi(googletts.agi,"Après le bip: Prononcez le nom du contact que vous souhaitez appeler. Ensuite appuyez sur #")
exten => 411,7(record),agi(speech-recog.agi,fr-FR)
exten => 411,8,Noop(= Script returned: ${status} , ${id} , ${confidence} , ${utterance} =)
exten => 411,9,AGI(nv-callwho.php,${utterance})
exten => 411,10,NoOp(Number to call: ${NUM2CALL})
exten => 411,11,GotoIf($["foo${NUM2CALL}" = "foo0"]?15)
exten => 411,12,Goto(outbound-allroutes,${NUM2CALL},1)
exten => 411,13,Wait(1)
exten => 411,14,Hangup
;# // END nv-callwho

fastm3
25/09/2013, 23h53
Le plus simple, remplacer les occurences de

execute_agi("exec $tts $msg") ;
par

execute_agi("googletts.agi $msg") ;

Fastm3.

jean
26/09/2013, 15h41
sans rapport avec ton pbm... désolé...

ne mets pas de numéro de priorité en dur, utilise n, et pour définir un label ou se brancher avec goto, n(label)

exten => 411,n,Verbose(Hello)
exten => 411,n(label),Verbose(World)

ja86
28/09/2013, 10h36
Bonjour Fastm3,

merci de ta réponse. J'ai essayé ce que tu me conseil mais cela ne fonction pas mieux.
mais au début du script il y a des valeur qui sont définies :
#!/usr/bin/php -q
<?
ob_implicit_flush(false);
error_reporting(0);
set_time_limit(300);
$ttsengine[0] = "flite" ;
$ttsengine[1] = "swift" ;

on ne peux pas les remplacer par googletts ?
Enfin j'en sais rien c'est une piste car je n'y connais vraiment rien dans la programmation en php et encore moins dans les script agi.
d’ailleurs aurais tu un lien a me conseillé pour que je me document la dessus.
Cordialement, JA86.

fastm3
28/09/2013, 12h30
L'appel d'un agi et d'une commande cli ( flite ) ne se fait pas de la meme maniere.
Regarde pour faire des agi tres simples en php d'abord mais si tu ne connais pas php, ca va pas etre simple.
Essaie deja avec un langage que tu connais et tu pourras ensuite debogguer facilement le script que tu as joins une fois que tu maitriseras les agi et le php.
Tu as juste a remplacer les appels de flite par ceux de google. Mais l'un est commande cli, l'autre un agi. Il n'y a que quelques appels dans le script.
Pas le temps de t'en dire plus ou creuser, essaie de commencer par maitriser un peu le dialplan, puis les agi, puis l'interface manager ce qui va t'amener peut etre a connaitre les sockets et un langage de programmation.
Tu peux essayer de bruler les etapes mais tu vas perdre en fait beaucoup de temps. Recherche sur ce site, les points de documentation principaux asterisk sont indiques dans un post.
Google t'aidera aussi si tu veux te documenter sur php pour lequel il existe des miliers de tutoriels pour demarrer.
Fastm3.