EA2012-Serveux Vocaux: Difference between revisions

From air
Jump to navigation Jump to search
 
(52 intermediate revisions by the same user not shown)
Line 29: Line 29:
2. Réduire le coût de service: une machine peut facilement travailler 24h/24 et remplacer centaine d’opérateurs.
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 étendu s’il est bien conçu. Au lieu de faire une formation du personnel, il ne faut qu’une petite mise à jour sur la machine.
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.


==Techniques de base==
==Techniques de base==
Line 36: Line 36:


Il y a deux genres de techniques pour qu'une machine puisse parler.
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.
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.
Line 50: Line 49:
* Les annonces sont statiques. Dès qu'il y a des changements, il coûtera cher.
* 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.

Soit par '''des annonces en synthèse vocale''': on écrit le 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.
Les pros:
Les pros:


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


Les cons:
Les cons:
Line 65: Line 64:


Il y a deux genres de techniques qui permettent aux utilisateurs de répondre au serveur vocale.
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.
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.
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.



[[File:Picture2.jpg]]
[[File:Picture2.jpg]]




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


==Applications==
==Applications==
[[File:Flowchartdapplication.jpg‎|thumb|right|Diagramme d'une application vocale]]


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.
=Démo=

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.
<vxml version="2.0" xmlns="http://www.w3.org/2001/vxml" xml:lang="fr-FR">

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

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.
<enumerate>appuyez <value expr="_dtmf"/> pour <value expr="_prompt"/></enumerate>

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:
<choice next="#debut">mathématique</choice>

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

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:

[[File:Démo_configuration.jpg]]

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

[[File:Démo_telephone.jpg]]

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


=Référence=
=Référence=


* http://fr.wikipedia.org/wiki/Code_DTMF
* http://fr.wikipedia.org/wiki/Code_DTMF

* http://fr.wikipedia.org/wiki/Reconnaissance_automatique_de_la_parole
* 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

Latest revision as of 19:41, 24 December 2012

Présentation

Enseignants : Georges-Pierre Bonneau, Didier Donsez

Auteur : Xiao Lu

Diapositives : File:Serveur vocal présentation.pdf

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.

Techniques de base

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.

Picture2.jpg

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

Diagramme d'une application vocale

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.

<vxml version="2.0" xmlns="http://www.w3.org/2001/vxml" xml:lang="fr-FR">

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

<prompt>Bienvenue sur démonstration</prompt>

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.

<enumerate>appuyez <value expr="_dtmf"/> pour <value expr="_prompt"/></enumerate>

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:

<choice next="#debut">mathématique</choice>

Le tag noinput définit le parole si l'utilisateur ne répond pas

<noinput> Réveillez-vous, répondez-moi <reprompt/></noinput>

Le tag nomatch définit le parole si la réponse de l'utilisateur ne correspond aucune.

<nomatch> Allez, vous ne comprenez pas fran?ais  <reprompt/> </nomatch>

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:

Démo configuration.jpg

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

Démo telephone.jpg

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

Référence