EA2012-Serveux Vocaux

=Présentation= Enseignants : Georges-Pierre Bonneau, Didier Donsez

Auteur : Xiao Lu

Diapositives :

=Abstract= Interactive voice response is actually an automatic proxy of operation. It navigates customers by prerecord voice or speech synthesis technique, then acquire the response of customers by speech recognition technique or keystroke recognition technique, thus implement-ting the Human-Computer interaction.

In my presentation, I’ll introduce you briefly about all the technique required for composing interactive voice response system.

=Résumé= Le serveur vocal est le serveur qui donne vocalement des services aux clients. Il navigue clients en parlant et reçoit réponses soit par les touches de téléphone soit par les paroles de client. Ainsi, cela réalise l’interaction homme-machine. Dans cette présentation, je vais vous montrer les techniques nécessaires pour construire un serveur vocal.

=Mot clé= Serveur vocal, code DTMF, reconnaissance vocale, synthèse vocale

=Synthèse=

Introduction du serveur vocal
Le serveur vocal destiné à donner vocalement des services aux clients qui permet aux utilisateurs d’y accéder au moyen d’un téléphone fixe, mobile ou d'un softphone (Skype, gtalk…).Il est aussi connu sous le nom du système de dialogue.

Selon les statistiques, les réponses de la plupart de questions posées par l’utilisateur peuvent être énumérées en avance.Cela fait penser les gens à remplacer l’homme par la machine.

Les intérêts d’utiliser la machine sont les suivants :

1. Ne se tromper quasiment pas: comparé avec l’homme, la machine ne se fatigue pas et ne se trompe quasiment pas si le code était bien écrit.

2. Réduire le coût de service: une machine peut facilement travailler 24h/24 et remplacer centaine d’opérateurs.

3. Étendre facile:puisque c’est un logiciel, le système doit être extensible s’il était bien conçu. Lors des changements d'exigence, au lieu de faire une formation du personnel, il ne faudra qu’une petite mise à jour sur la machine.

Du serveur à l'utilisateur
Il y a deux genres de techniques pour qu'une machine puisse parler.

Soit par des annonces enregistrées: on enregistre d'avance des annonces dans le serveur vocal. Lors de l'arrivé d'un appel, l'utilisateur entendra l'annonce correspondante.

Les pros:


 * Les annonces seront naturel, claire
 * C'est facile à effectuer.

Les cons:


 * Les annonces sont statiques. Dès qu'il y a des changements, il coûtera cher.

Soit par des annonces en synthèse vocale: on écrit du texte à lire pour le système et l’enregistre dans le serveur vocal. Lors de l'arrivé d'un appel, l'utilisateur entendra l'annonce générée par la machine.

La synthèse vocale est une technique informatique qui permet de créer de la parole artificielle selon un texte. Il transcrit le texte demandé, en une séquence de phonèmes, qui représentent exactement les sons qui doivent être prononcés. Les pros:


 * Les annonces sont dynamiques. S'il y a des changements dessus, il ne faudra que changer de texte.

Les cons:


 * Pour l'instant, les annonces en synthèse vocale ne sont pas assez naturel. L'utilisateur a parfois des difficultés à comprendre.

De l'utilisateur au serveur
Il y a deux genres de techniques qui permettent aux utilisateurs de répondre au serveur vocale.

Soit par code DTMF (Dual-tone multi-frequency signaling): l'utilisateur tapant une touche de téléphone, l'autre côté de téléphone le saura.

Un code DTMF est une combinaison de fréquences. Selon le tableau dessous, chaque touche est lié avec deux fréquences: une haute et une basse. lors qu'une touche est appuyée, le téléphone va envoyer une fréquence combinant les deux fréquences associées. Côté serveur, il va pouvoir distinguer la touche en décodant la fréquence.



Soit par reconnaissance vocale: l'utilisateur parlant, l'autre côté de téléphone le comprendra.

La reconnaissance vocale est aussi connu sous le nom de "reconnaissance automatique de la parole". C'est une technique informatique qui permet d'analyser la parole captée pour la transcrire sous la forme d'un texte.Le principe de base est


 * Traiter le signal acoustique: découper en tranche de 20 à 30ms de signal et les numériser et paramétrer par une technique d'analyse fréquentielle utilisant la transformée de Fourier


 * Réaliser une association entre les segments élémentaires de la parole et les éléments lexicaux.


 * Concaténer les mots précédemment obtenus pour reconstituer le discours le plus probable.

Applications


La structure d'une application vocale est montré sur le diagramme à droit, on peut constater que le serveur joue plutôt le rôle contrôleur. Il transcrit la demande de l'utilisateur pour le serveur d'application et à la fois transcrit la réponse du serveur d'application en signale acoustique pour l'utilisateur. Si une demande de l'utilisateur ne correspondent aucune information attendue, il va la filtrer et redemander une nouvelle.

Dans le domaine d'application vocale, le serveur vocale le plus usé est le serveur qui fonctionne en interprétant un fichier VoiceXML.

VoiceXML est un dialecte XML. Créé par AT&T, Lucent, Motorola et IBM, il a été reconnu par le W3C. VoiceXML sert à définir le comportement d'un serveur vocale.

Fondé sur XML, ses grammaires ne sont pas difficiles. Je vous montre les typiques pour en avoir une image:

Dans l'entête de VoiceXML, il faut définir la langue pour que le système puisse prononcer correctement. Sinon, il prononce par défaut les mots en anglais. 

Le tag prompt sert à définir des phrases que nous voulons faire lire le serveur. Bienvenue sur démonstration

Dans le prompt, nous pouvons poser une question au choix à l'utilisateur. Il est demandé de répondre la question en tapant la touche de téléphone. appuyez  pour 

Les réponses attendues sont définit par le tag Choice, le champ "next" définit le nom d'un autre morceau de code où va l'utilisateur s'il l'a choisi: mathématique

Le tag noinput définit le parole si l'utilisateur ne répond pas Réveillez-vous, répondez-moi Le tag nomatch définit le parole si la réponse de l'utilisateur ne correspond aucune. Allez, vous ne comprenez pas fran?ais

A part VoiceXML, il y encore des techniques basées sur XML qui assistent VoiceXML à être plus puissant.


 * CCXML (Call control XML) permet de transférer un appel depuis un serveur vers un autre
 * SRGS (Speech Recognition Grammar Specification) permet au serveur de comprendre le parole de l'utilisateur
 * SSML (Speech Synthesis Markup Language) permet au serveur de prononcer correctement les mots dans la phrase mélangée avec plusieurs langues.

=Démostraction= Le site https://evolution.voxeo.com/ nous fournit gratuitement un serveur vocale pour tester fichier VoiceXML. Après que les fichiers VoiceXML sont déployés, le site nous donnera des numéro de téléphone associer à notre application pour tester.

J'ai écrit une démonstration à 3 fichiers XML, c'était un petit quiz. Je l'ai déployé sur le site voxeo. La configuration est ci-dessous:



Le site m'a donné des numéro de téléphone pour tester:



Ainsi, en appelant l'un des numéro dessus, vous entendrez la démonstration.

=Référence=


 * http://fr.wikipedia.org/wiki/Code_DTMF
 * http://fr.wikipedia.org/wiki/Reconnaissance_automatique_de_la_parole
 * http://www.vxml.org/frame.jsp?page=t_1.htm
 * http://www.ibm.com/developerworks/cn/education/xml/x-ccxml/section4.html
 * http://fr.wikipedia.org/wiki/Synth%C3%A8se_vocale
 * http://fr.wikipedia.org/wiki/VoiceXML