Voice XML

Transcription

Voice XML
VoiceXML
Voice eXtensible Markup Language
Vincent Maillard
12 juillet 2001
ETR6
Professeur responsable : S. Ventura
P r é s e n t a t i o n d e s e me s t r e
TABLE DES MATIÈRES
1.
INTRODUCTION ................................................................................................. 4
1.1. Tendances actuelles ........................................................................................................................................ 4
1.2. Technologies vocales....................................................................................................................................... 5
1.3. VoiceXML ....................................................................................................................................................... 6
1.4. Futurs services vocaux ................................................................................................................................... 7
2.
VOICEXML FORUM............................................................................................ 8
2.1. Présentation du Forum .................................................................................................................................. 8
2.2. Historique........................................................................................................................................................ 8
3.
CONCEPTS......................................................................................................... 9
3.1. Modèle architectural ...................................................................................................................................... 9
3.2. Documents VXML........................................................................................................................................ 10
3.3. Dialogues et sous-dialogues.......................................................................................................................... 11
3.4. Session ........................................................................................................................................................... 11
3.5. Applications .................................................................................................................................................. 11
3.6. Grammaires .................................................................................................................................................. 12
3.7. Evénements ................................................................................................................................................... 12
3.8. Liens............................................................................................................................................................... 12
4.
APERÇU DU LANGAGE .................................................................................. 13
4.1. Limitations .................................................................................................................................................... 13
4.2. Document ...................................................................................................................................................... 13
4.3. Eléments du language................................................................................................................................... 14
4.4. Hiérarchie des éléments ............................................................................................................................... 15
5.
EXEMPLES D’APPLICATIONS VOICEXML .................................................... 16
5.1. Hello World! ................................................................................................................................................. 16
5.2. Utilisation d'un menu ................................................................................................................................... 17
5.3. Application multi-documents ...................................................................................................................... 18
6.
OUTILS DE DÉVELOPPEMENT....................................................................... 19
6.1. Avertissement................................................................................................................................................ 19
6.2. Tellme Studio ................................................................................................................................................ 19
6.3. Freespeech HeyAnita.................................................................................................................................... 20
6.4. VoiceGenie .................................................................................................................................................... 21
6.5. JVoice API 1.0............................................................................................................................................... 21
6.6. OpenVXI ....................................................................................................................................................... 22
7.
ASPECTS NÉGATIFS....................................................................................... 24
7.1. Y'en a-t-il?..................................................................................................................................................... 24
7.2. Rapidité, disponibilité .................................................................................................................................. 24
7.3. Design des dialogues ..................................................................................................................................... 24
7.4. Trafic ............................................................................................................................................................. 24
7.5. Plates-formes multi-lingues ......................................................................................................................... 24
8.
CONCLUSION................................................................................................... 25
9.
RÉFÉRENCES .................................................................................................. 25
VOICEXML
Vincent Maillard
ETR6
1. Introduction
1.1. Tendances actuell e s
De toute évidence, les tendances vont à l’Internet mobile. Les PDA, le WAP ou l’i-mode en
sont de bons exemples. Le futur apportera encore plus d’équipements raccordés au réseau :
outre les baladeurs MP3 qui peuvent télécharger de la musique, on trouve les distributeurs
automatiques qui se réapprovisionnent automatiquement, les affiches publicitaires
dynamiques, les télévisions et bien d’autres.
Jusqu’à maintenant, l’accès au réseau des réseaux se fait par l’intermédiaire d’un écran, qu'il
s'agisse de celui d'un ordinateur, d'un assistant personnel ou d'un téléphone portable. En
d’autres termes, l’utilisateur n’utilise que la vue pour surfer. La consultation visuelle n’est pas
toujours adaptée au contexte et aux situations. Ainsi, depuis une voiture par exemple, il est
préférable de se connecter au Net de manière vocale pour demander un itinéraire ou des
informations de trafic routier.
La technologie vocale va donc devenir un moyen naturel et efficace pour de nombreux
équipements, qu’il soient connectés à un réseau ou autonomes. De plus, vu la taille de plus en
plus petite de nombreux appareils, l’intégration d’un micro et d’un haut-parleur permet de
supprimer un pavé numérique ou un clavier. Ainsi, il semble tout à fait probable que de
nombreux dispositifs posséderont un système de reconnaissance vocale embarqué (d’ailleurs,
les téléphones mobiles en ont déjà actuellement). Une autre approche serait que nous
posséderions un dispositif permettant de communiquer avec les appareils à notre proximité.
Rapport de fin de semestre
Page 4 sur 25
VOICEXML
Vincent Maillard
ETR6
Les analystes s'entendent pour dire que le marché de la technologie vocale est immense et que
chacun des segments qui le composent connaît une croissance rapide. Selon le modèle de
segmentation du marché de Dataquest, au moins 27 marchés distincts ont pu être identifiés
dans le domaine de la technologie vocale.
Estimation du marché des technologies vocales
Source: Estimations fondées sur une recherche Dataquest, Wainright, Frost et Sullivan, et sur le marché IDC.
Octobre 1999.
1.2. Technologies voca l e s
Lors de ces dernières années, les systèmes de reconnaissance vocale (ASR, Automated
Speech Recognition) sont passés du stade de prototypes au stade de produits
commercialisables. Grâce au développement d’algorithmes et de modèles acoustiques
meilleurs et à la puissance croissante des machines, un ordinateur bas de gamme est capable
d’effectuer ce traitement sans aucun problème.
La reconnaissance vocale peut fonctionner sans avoir à habituer le logiciel de sa voix par des
modules de grammaires qui indiquent comment un mot est sensé être prononcé. Pour des
environnements bruités, tels que l’utilisation d’un équipement mobile, la reconnaissance
vocale exige des grammaires plus fines et plus performantes.
On trouve actuellement une quantité d’utilisations commerciales de systèmes de
reconnaissance vocale dans une multitude de langues.
Rapport de fin de semestre
Page 5 sur 25
VOICEXML
Vincent Maillard
ETR6
Les avancées technologiques ont été aussi marquantes avec la synthèse vocale (TTS, Text-ToSpeech). La plupart des systèmes TTS produisent encore un son métallique, ressemblant plus
à un robot qu’à un être humain. La parole est néanmoins compréhensible et les systèmes à
concaténation devraient pallier à ce problème. Les résultats sont prometteurs…
1.3. VoiceXML
VoiceXML est un langage destiné à la création d'interfaces purement vocales : reconnaissance
vocale en entrée, audio préenregistré et/ou synthèse vocale en sortie. Les applications sont
multiples, tant pour le Web (navigation à la voix et aide aux malvoyants) que pour le
téléphone (fixe ou mobile).
VoiceXML utilise la téléphonie car elle est omniprésente, dans le monde entier (enfin
presque !). La téléphonie mobile est largement entrée dans les mœurs, les équipements sont
bon marchés et permet d’être mobile tout en étant raccordé à un réseau.
La voix est un moyen de communication puissant et maîtrisé, contrairement au WAP qui
apporte un service pratique mais avec des moyens inappropriés : l’écran est trop petit, la
navigation n’est pas intuitive. De plus, le WAP n’est pas utilisable au volant, contrairement au
téléphone (bien que pas toujours sans risque !). L’i-mode n’as pas toutes ces contraintes, mais
partage tout de même plusieurs de ces limitations. Les interfaces visuelles sont cependant
importantes, et les dispositifs multi-modaux qui sont capables de traiter du graphisme et/ou du
vocal ("dites le nom de la ville, ou choisissez-le à partir de la liste") seront les plus
prometteuse.
VoiceXML est aussi une technologie orientée WEB. Son langage est de haut-niveau et le
développement en est facilité. Les applications peuvent être développée à l’aide
d’applications web puissantes et bon marché. Elles sont portables et il est aisé de les installer
dans un serveur. L’utilisation d’un serveur web facilite la mise à jour et permet de structurer
l’information.
VoiceXML est aussi une spécification du VoiceXML Forum, un consortium d'industrie de
plus de 300 compagnies. Le forum est actif dans les tests de conformité, l’enseignement et le
marketing et a donné le contrôle du développement ultérieur de langage au consortium de
World Wide Web (W3C). Puisqu’il s’agit d’un spécification, les applications qui fonctionnent
sur une plate-forme devraient fonctionner aussi bien sur une autre.
Rapport de fin de semestre
Page 6 sur 25
VOICEXML
Vincent Maillard
ETR6
1.4. Futur s services vo c a ux
Les services vocaux actuels sont composés d’applications possédant du texte pré-enregistré, et
l’entrée d’information se résume bien souvent par les numéros du pavé numérique. Les futurs
services vocaux sont plus intelligents et veulent s'adapter à l'utilisateur, au lieu du contraire.
Ce sous-chapitre entend énumérer quelques exemples de services vocaux intelligents.
Une approche de VoiceXML se compose d’un système permettant de cibler ses intérêts par un
site web, puis de les consulter périodiquement par téléphone. Ces informations peuvent être la
météo, la bourse, l’actualité, le sport, le trafic ou des services plus spécifiques comme des
informations internes d’une entreprise.
Il peut arriver que l’application utilise intensivement la voix, comme dans un système de
navigation assistée. Une ville peut, par exemple, proposer un service de navigation urbaine.
Le conducteur fait appel à ce service pour trouver une adresse spécifique, et est guidé par le
service de navigation.
On peut aussi proposer des services spécifiques comme la météo où l’on peut demander les
prévisions d’un endroit donné.
Le commerce électronique est un domaine dont les possibilités sont énormes. Les applications
phares sont les services financiers, bancaires, boursiers, services après-vente ou vente par
correspondance. Dans le dernier cas, il faut toutefois noter que ce service est difficile à mettre
en œuvre car le client doit pouvoir fournir les éléments clés pouvant définir un produit sans
confusion.
Les services téléphoniques tels qu’une assistance à la numérotation, les numéros d’accès
rapide ou la création de téléconférence peuvent être mis en œuvre par VoiceXML. Il est
même fortement possible de voir apparaître des opérateurs vocaux capables de fournir des
services personnalisés (répertoires, agendas, etc.).
VoiceXML ouvre aussi la porte aux applications de messagerie, comme la lecture ou la
rédaction d’e-mails.
Il y a beaucoup d'autres applications où des services vocaux peuvent être utilisés, comme le
contrôle de sites électroniques d'enchères, les paiements de factures, et d'autres que nous ne
pouvons pas encore concevoir. Il est toutefois certains que pour certaines applications
l’absence de contact visuel peut être un handicap, mais les versions suivantes de VoiceXML
pourraient inclure ceci. D'autre part, il existe déjà actuellement des applications combinant
VoiceXML et WAP.
Rapport de fin de semestre
Page 7 sur 25
VOICEXML
Vincent Maillard
ETR6
2. VoiceXML Forum
2.1. Présentation d u Fo r u m
Le Forum VoiceXML promouvoit la technologie VoiceXML. Sa position actuelle est de
contribuer à promouvoir les applications vocales afin qu’elles deviennent une réalité à court
terme.
Ses objectifs sont au nombre de quatre :
• Développer une spécification ouverte de VoiceXML et la soumettre pour sa
standardisation.
• Eduquer l'industrie sur le besoin d'un langage standardisé sur la voix (markup language).
• Attirer le support et la participation de l'industrie dans le Forum VoiceXML.
• Promouvoir dans l'industrie l'utilisation du nouveau standard pour une création
innovatrice d'applications et de services.
Le Forum compte actuellement quelques 500 membres.
2.2. Historique
VoiceXML provient de discussions informelles entre Dave Ladd, Chris Ramming, Ken Rehor
et Curt Tuckey, tous chercheurs de l’équipe de recherche d’AT&T en 1995. Ces personnes
cherchent comment Internet peut entrer dans une application de téléphonie. Une idée effleure
leurs esprits : un gateway équipé d’un browser vocal qui interprète un langage balisé de
dialogue vocal pourrait délivrer le contenu de pages et de services web à un téléphone
ordinaire. Ainsi commence le projet «Phone Web». Lorsque AT&T set défait de Lucent,
Chris reste chez AT&T, Ken suit Lucent et Dave et Curt partent chez Motorola. Le projet ne
meurt pas pour autant, chacun continue de développer le projet dans son entreprise respective.
Dans les début 1999, le langage PML (Phone Markup Language) souffre d’incompatibilités
entre AT&T et Lucent ; Motorola développe « VoxML » et d’autres compagnies ont aussi
créé leur propre langage, en particulier IBM avec SpeechML. Un standard s’impose pour
développer le marché du web vocal. Ce sont les créateurs du projet Phone Web, AT&T,
Lucent et Motorola, qui créent alors le Forum VoiceXML. IBM les rejoints très vite et est
aussi considéré comme membre fondateur. Le forum crée un nouveau langage, VoiceXML
0.9, qui combine les meilleures idées des langages précédants et qui comporte quelques
nouveautés, comme la gestion des touches à tonalités (DTMF). Le Forum connaît alors une
forte croissance de nouveaux membres et améliore encore son langage. La spécification de
VoiceXML 1.0 sort en mars 2000 et connaît actuellement une grande quantité
d’implémentations.
Afin de réaliser une meilleure pénétration du langage, le forum le soumet au World-Wide
Web Consortium (W3C) en avril 2000. Un mois plus tard, celui-ci l’accepte et VoiceXML
apparaît dans les médias.
Rapport de fin de semestre
Page 8 sur 25
VOICEXML
Vincent Maillard
ETR6
W3C travaille actuellement sur la prochaine révision, VoiceXML 2.0 annoncé pour janvier
2001, mais pas encore diffusé. Toutefois, cette nouvelle mouture est une petite évolution,
clarifiant le comportement de la version 1.0 et corrigeant quelques erreurs. W3C recommande
donc d’utiliser la version 1.0 et garantit que la mutation vers la version 2.0 sera réalisable
avec facilité.
3. Concepts
3.1. Modèle ar chitectu r al
Le modèle architectural de VoiceXml présente la structure suivante:
Ce schéma est un modèle. Dans les implémentations, on trouve les noms de browser et de
gateway plutôt qu' interpreter et interpreter context.
Rapport de fin de semestre
Page 9 sur 25
VOICEXML
Vincent Maillard
ETR6
On trouve actuellement plusieurs implémentations web de ce type, destinées au commerce
et/ou aux développeurs. Ceux-ci peuvent élaborer entièrement gratuitement des applications
vxml en utilisant un gateway. Celui-ci intègre le browser et établit une passerelle avec le
réseau téléphonique. Le développeur n'a donc besoin que d'une station de travail (pour
développer) et d'un téléphone (pour essayer).
Intégration de la technologie VoiceXML dans Internet
3.2. Documents VXML
Un document VoiceXML représente une machine conversationnelle à états finis. L’utilisateur
ne peut être que dans un seul état conversationnel (dialogue) à la fois. Les transitions sont
indiquées en utilisant des URIs (Uniform Resource Indicator), qui définissent le prochain
document / dialogue à utiliser.
Dialogue 1
Transition (URI)
Dialogue 2
…
Document VXML
Rapport de fin de semestre
Page 10 sur 25
VOICEXML
Vincent Maillard
ETR6
3.3. Dialogues et sous-d i alog ues
Les documents VoiceXML sont basés sur cette idée de dialogue. Un document est un
ensemble de dialogues. Chaque dialogue interagit avec l'utilisateur et possède un lien vers un
dialogue suivant. Dans certains cas, les données du client sont acheminées (par HTTP) vers
un serveur web qui les traitera et générera un nouveau dialogue. Une conversation (session) se
termine quand un dialogue n’a plus de successeur ou quand un dialogue demande
explicitement la terminaison.
VoiceXML supporte deux types de dialogues: les dialogues simples et les dialogues mixtes.
Avec les dialogues mixtes, l'utilisateur peut à tout moment prononcer des mots qui vont lui
permettre de changer de dialogues (on utilise pour cela un set de grammaires).
Il y a deux genre de dialogues : les formulaires (forms) et les menus (menus).
Les formulaires permettent de collecter des valeurs dans des variables appartenant à un
élément de formulaire. Chaque élément de formulaire peut indiquer une grammaire qui définit
les entrées permises pour cette zone.
Un menu présente à l'utilisateur une liste de choix et effectue la transitions au dialogue choisi.
Un sous-dialogue ressemble à la notion de fonction dans le sens où il permet d'appeler un
dialogue et de revenir automatiquement au formulaire initial. Le sous-formulaires peuvent
être employés dans une multitudes d'applications qui font toutes référence à une bibliothèque
de sous-dialogue commune.
3.4. Session
Une session débute lorsque l'utilisateur commence à utiliser le gateway VoiceXML
(interpretor context), dure tout le temps où l'utilisateur interagit avec le browser et prend fin à
la demande de l'utilisateur, d'un document ou du gateway.
3.5. Applications
Une application est un set de documents qui partagent le même document racine. Le
document racine peut définir des variables et grammaires globales.
Rapport de fin de semestre
Page 11 sur 25
VOICEXML
Vincent Maillard
ETR6
Transitions entre les documents Dn partageant un document commun (root)
3.6. Grammair es
Tout dialogue a des grammaires voix ou DTMF (touches du téléphone) associées. Dans les
dialogues simples (dirigés par l’ordinateur), les grammaires sont actives seulement quand
l’utilisateur se trouve dans ce dialogue.
Dans les dialogues mixtes, les grammaires de certains dialogues sont actives même quand
l’utilisateur se trouve dans un autre dialogue. Ces dialogues peuvent activer d’autres
dialogues si les grammaires de ceux-ci détectent des éléments-clé dans les phrases de
l’utilisateur.
3.7. Evénements
Les événements peuvent survenir lors d'une multitude de circonstances, comme :
• des erreurs dans le document VXML
• l’utilisateur ne parle pas
• l’utilisateur demande de l’aide
• l’application ne comprend pas l’utilisateur.
Ces événements sont générés par le browser et le document VXML est tenu de les traiter.
3.8. Liens
Les liens supportent les dialogues mixtes. Il spécifie une grammaire qui reste active tant que
l'utilisateur est dans la portée du lien. Si l'utilisateur prononce le lien, le browser sautera au
document spécifié dans celui-ci. Les liens peuvent aussi jeter des événements.
Rapport de fin de semestre
Page 12 sur 25
VOICEXML
Vincent Maillard
ETR6
4. Aperçu du langage
4.1. Limitations
Ce sous-chapitre ne vise pas à apprendre au lecteur comment programmer en VoiceXML,
mais à lui donner une idée des possibilités offertes et de la syntaxe utilisée. Le chapitre 5
propose des exemples basiques illustrant les concepts décrits dans ce chapitre. La liste des
éléments du langage (4.3) et leur hiérarchie (4.4) peuvent aider à cette compréhension. On
peut aussi se référer à la spécification VoiceXML qui décrit complètement le langage. De
plus, il existe d'excellents exemples dans une multitudes de sites destinés aux développeurs
VXML.
4.2. Document
Une application VXML consiste en un ou plusieurs fichiers appelés documents. Ces fichiers
portent l’extension .vxml et contiennent les directives de dialogue de l’application. Il est
fortement recommandé de commencer le fichier par le tag xml de la version :
< ?xml version="1.0"?>
Les instructions du fichier doivent être entourée du tag vxml avec un attribut précisant la
version utilisée :
< vxml version="1.0">
A l’intérieur du tag <vxml>, le document est séparé en plusieurs éléments de dialogue
(formulaires ou menus).
Un document "somedoc.vxml" possédant un seul formulaire
Rapport de fin de semestre
Page 13 sur 25
VOICEXML
Vincent Maillard
ETR6
4.3. Eléments du langu a g e
<assign>
<audio>
<block>
<break>
<catch>
<clear>
<choice>
<disconnect>
<div>
<dtmf>
<enumerate>
<exit>
<else>
<elseif>
<form>
<field>
<filled>
<goto>
<grammar>
<help>
<if>
<initial>
<link>
<menu>
<meta>
<nomatch>
<noinput>
<object>
<prompt>
<pros>
<record>
<reprompt>
<sayas>
<throw>
<transfer>
<value>
<var>
<vxml>
Attribue une valeur à une variable
Joue un clip audio
Un conteneur de code exécutable non-interactif
Elément JSML pour insérer une pause
Attrape un événement
Réinitialise une ou plusieurs variables d ’un formlaire
Définit un élément d’un menu
Termine une session
Elément SABLE pour classifier une région de texte
Spécifie une grammaire de touches du téléphone
Raccourci pour énumérer les choix d’un menu
Sort d’un document ou d’une application
Utilisé dans les structure <if>
Utilisé dans les structure <if>
Dialogue pour présenter de l’information et saisir des données
Déclare un champ d’entrée dans un formulaire
Action à exécuter quand les champs sont remplis
Va à un autre dialogue dans le même ou un autre document
Spécifie une grammaire de reconnaissance vocale
Attrape un événement d’aide
Logique simple conditionnelle
Déclare la logique initiale dans un formulaire
Spécifie une transition commune à tous les dialogues
Dialogue pour choisir entre plusieurs destinations
Définit un meta-data comme une paire nom/valeur
Attrape un événement nomatch
Attrape un événement ‘noinput’
Interagit avec une extension (par ex. un objet voix)
Achemine des sorties TTS et audio vers l’utilisateur
Elément JSML pour changer la prosodie de la voix
Enregistre un morceau audio
Demande de rejouer un <prompt> si le champ n est visité à nouveau
Elément JSML qui modifie la prononciation
Génère un événement
Transfère l’appelant à une autre destination
Insère la valeur d’une variable dans un <prompt>
Déclare une variable
Elément racine de tout document VoiceXML
Rapport de fin de semestre
Page 14 sur 25
VOICEXML
Vincent Maillard
ETR6
4.4. Hiér archie des élé m e nts
Rapport de fin de semestre
Page 15 sur 25
VOICEXML
Vincent Maillard
ETR6
5. Exemples d’applications VoiceXML
5.1. Hello W orld!
L'inévitable Hello World! en VoiceXML s'écrit ainsi:
<?xml version="1.0"?>
<vxml version="1.0">
<form>
<block>
Hello World!
</block>
</form>
</vxml>
Cet exemple définit un formulaire contenant un bloc non interactif où figure le "Hello
World!".
On peut utiliser le même exemple pour montrer l'utilisation d'une variable:
<?xml version="1.0"?>
<vxml version="1.0">
<var name="hi" expr="'Hello World!'"/>
<form>
<block>
<value expr="hi"/>
</block>
</form>
</vxml>
La variable "hi" est visible sur toute la portée du document.
On peut utiliser plusieurs formulaires dans le même document:
<?xml version="1.0"?>
<vxml version="1.0">
<form>
<block>
Hello World!
<goto next="#say_goodbye"/>
</block>
</form>
<form id="say_goodbye">
<block>
Goodbye!
</block>
</form>
</vxml>
Rapport de fin de semestre
Page 16 sur 25
VOICEXML
Vincent Maillard
ETR6
5.2. Utilisation d'un me n u
On rencontre des menus dans quasi toutes les applications VoiceXML. Le menu proposé
permet de diriger l'utilisateur vers l'un des trois sujets proposés (Sport, Weather ou Stargazer
astrophysics news).
<?xml version="1.0"?>
<vxml version="1.0">
<menu>
<prompt>Welcome home. Say one of: <enumerate/></prompt>
<choice next="http://www.sports.example/vxml/start.vxml">
Sports </choice>
<choice next="http://www.weather.example/intro.vxml">
Weather </choice>
<choice next="http://www.stargazer.example/voice/astronews.vxml">
Stargazer astrophysics news </choice>
<noinput>Please say one of <enumerate/></noinput>
</menu>
</vxml>
Voici un exemple du dialogue qui se présenterait avec une telle application:
Browser: "Welcome home. Say one of: sports; weather; stargazer astrophysics news."
Humain: "Astrology."
Browser: "I did not understand what you said." (message par défaut de la plate-forme)
Browser: "Welcome home. Say one of: sports; weather; stargazer astrophysics news."
Humain: sports.
Browser: exécute le document http://www.sports.example/vxml/start.vxml
Il est possible de faire usage des touches DTMF pour naviguer dans un menu:
<menu>
<property name="inputmodes" value="dtmf"/>
<prompt>
For sports press 1, For weather press 2, For stargazer astrophysics press 3.
</prompt>
<choice dtmf="1" next="http://www.sports.example/vxml/start.vxml"/>
<choice dtmf="2" next="http://www.weather.example/intro.vxml"/>
<choice dtmf="3" next="http://www.stargazer.example/voice/astronews.vxml"/>
</menu>
Rapport de fin de semestre
Page 17 sur 25
VOICEXML
Vincent Maillard
ETR6
5.3. Application multi-d o c uments
Une application contient en général plus d'un document. Il faut alors définir un document
"root" qui va servir de point de référence à l'application. Ce document reste chargé en
mémoire tant que l'application est en cours d'exécution.
Il y a deux avantages à l'utilisation d'applications multi-documents:
• les variables déclarées dans le root peuvent être utilisées dans les autres documents et
permettent de partager des informations entre les formulaires.
• Les grammaires chargées dans le root restent actives pendant tout le déroulement de
l'application. Ainsi, l'utilisateur peut à tout moment intervenir pour revenir vers un menu
ou un formulaire initial.
L'exemple ci-dessous montre comment une application peut utiliser une grammaire du
document root pour sortir l'utilisateur d'une impasse.
Fichier app-root.vxml:
<?xml version="1.0"?>
<vxml version="1.0">
<var name="bye" expr="'Ciao'"/>
<link next="operator_xfer.vxml"> <grammar> operator </grammar> </link>
</vxml>
Fichier main.vxml:
<?xml version="1.0"?>
<vxml version="1.0" application="app-root.vxml">
<form id="say_goodbye">
<field name="answer" type="boolean">
<prompt>Shall we say <value expr="application.bye"/>?</prompt>
<filled>
<if cond="answer">
<exit/>
</if>
<clear namelist="answer"/>
</filled>
</field>
</form>
</vxml>
L'application commence par le document main.vxml qui possède un formulaire où l'utilisateur
est sensé répondre à une question. Le document root possède une grammaire, operator, qui
effectue un lien vers un autre document. L'utilisateur peut donc, à tout moment, prononcer le
mot "operator" et être redirigé vers ce document:
Browser: "Shall we say Ciao?"
Humain: "Oui."
Browser: "I did not understand what you said." (message par défaut de la plate-forme)
Humain: "Ciao."
Browser: "I did not understand what you said."
Humain: "Operator."
Browser: exécute le document operator_xfer.vxml qui transférera l'appel à un opérateur humain.
Rapport de fin de semestre
Page 18 sur 25
VOICEXML
Vincent Maillard
ETR6
6. Outils de développement
6.1. Aver tissement
Il existe une multitude d'outils de développement pour VoiceXML. Ce chapitre ne prétend pas
les énumérer, mais en décrire quelques uns que j'ai testés ou qui ont retenu mon attention.
La plupart des sites de développement d'applications vxml sont créés par des entreprises qui
offrent des services dans ce domaine. L'intérêt est certainement de prouver la qualité de leurs
produits ou services et de faciliter la venue de nouveaux clients.
6.2. Tellme S tudio
URL : http://www.studio.tellme.com
Tellme Studio est une suite d'outils de développement et de ressources VoiceXML.
L'application est entièrement basée web (HTML, JavaScript, CGI) et permet de créer, de
tester et de publier ses propres applications vocales. Tellme implémente donc un browser
VXML. Le service est d'ailleurs entièrement gratuit.
Rapport de fin de semestre
Page 19 sur 25
VOICEXML
Vincent Maillard
ETR6
Pour créer une application, il faut disposer d'un serveur web où les documents VXML seront
stockés. Le développeur n'a qu'à donner l'URL de son application à Tellme. Il est aussi
possible de stocker l'application dans le site de Tellme, mais l'espace disponible est restreint à
un seul fichier vxml.
Pour tester son application, le développeur doit téléphoner au browser de Tellme et une
application VoiceXML s'occupera de lui demander le numéro d'accès de sa propre
application.
6.3. Freespeech HeyAn i t a
URL : http://freespeech.heyanita.com
Cette plateforme offre les mêmes possibilités que Tellme Studio. Elle permet par contre de
stocker 2Mbytes de fichiers VXML. La documentation est très complète et claire mais le
browser vocal souffre d'une lenteur presque dérangeante.
Rapport de fin de semestre
Page 20 sur 25
VOICEXML
Vincent Maillard
ETR6
6.4. VoiceGenie
URL : http://www.voicegenie.com
Cette entreprise propose un vaste éventail de solutions pour les applications VoiceXML. Le
site est très agréable à visiter, la documentation est très complète, si ce n'est pas la plus
complète. Le produit phare est un gateway VoiceXML, puissant, extensible et capable de
s'intégrer dans des applications CTI. Exemplaire !
Je n'ai pas pu tester la plate-forme de développement en raison du numéro de téléphone, le
Canada étant difficile à atteindre gratuitement.
6.5. JVoice API 1.0
URL : http://www.digitalanywhere.com/projects/jvoice/
Développé par un new-yorkais, Jon Baer, ces classes Java servent à créer une application
VoiceXML avec le langage Java. Pas encore disponibles, ces classes devraient l'être bientôt.
Un exemple est illustré ci-dessous:
package org.jvoice.example;
import org.jvoice.vxml.*;
import org.jvoice.vxml.output.*;
import java.io.IOException;
public class HelloWorldTest {
public static void main(String[] args) {
// Construct a Tellme VXML Document
TellmeDocument doc = new TellmeDocument();
// Create a form element
FormElement form = new FormElement("main");
Rapport de fin de semestre
Page 21 sur 25
VOICEXML
Vincent Maillard
ETR6
// Create a block element
BlockElement block = new BlockElement();
// Create an audio element
AudioElement audio = new
AudioElement("http://server.com/wav/hello.wav",
"Hello World");
// Add audio to block
block.add(audio);
// Add a disconnect to the block
block.add(new DisconnectElement());
// Add block to form
form.add(block);
// Add form to document
doc.add(form);
// Printout to System.out
VXMLWriter writer = new VXMLWriter();
try {
writer.output(doc, System.out);
} catch (IOException ioe) {
System.err.println(ioe);
}
}
}
Ce code génère le fichier vxml suivant:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE vxml PUBLIC "-//Tellme Networks//Voice Markup Language 1.0//EN"
"http://resources.tellme.com/toolbox/vxml-tellme.dtd">
<vxml application="http://resources.tellme.com/lib/universals.vxml">
<form id="main">
<block>
<audio src="http://server.com/wav/hello.wav">Hello World</audio>
<disconnect />
</block>
</form>
</vxml>
6.6. OpenV XI
URL : http://fife.speech.cs.cmu.edu/openvxi/index.html
Open VXI est une implémentation complète de la spécification VoiceXML 1.0, en open
source. Il ne s'agit toutefois pas d'un browser, et encore moins d'une plate-forme VoiceXML.
En effet, le browser ne fait pas qu'interpréter le VXML, comme on peut le voir sur la figure
ci-dessous:
Rapport de fin de semestre
Page 22 sur 25
VOICEXML
Vincent Maillard
ETR6
Le module Open VXI apparaît dans le browser, tout à gauche.
L'intégration de VXI dans une plate-forme vocale requiert l'implémentation des modules
susivants:
• Un analyseur syntaxique XML
• Un interpréteur de scripts
• Une reconnaissance vocale (+ DTMF)
• Un synthétiseur vocal
• Des interfaces téléphoniques
• Des interfaces objets (pour l'ajout de plug-ins)
Open VXI est un projet sourceforge: http://sourceforge.net/projects/openvxi
Rapport de fin de semestre
Page 23 sur 25
VOICEXML
Vincent Maillard
ETR6
7. Aspects négatifs
7.1. Y'en a-t-il?
Il est clair qu'un site qui propose des services ou des produits VoiceXML ne va pas publier les
points faibles de cette technologie. Il est par conséquent difficile de dire avec précision quels
sont les points qui poseront problèmes. Toutefois, on peut déjà mentionner quelques
remarques suggestives.
7.2. Rapidité, disponib i lité
La rapidité et la disponibilité d'un service est un sujet préoccupant. L'utilisation d'un service
trop lent décourage l'utilisateur qui risque de perdre patience. De l'autre côté, le browser
utilise des moyens qui demande une forte utilisation du CPU (reconnaissance vocale, synthèse
vocale), tout cela en temps réel et en multi-utilisateurs. Il est aussi nécessaire de prévoir assez
de lignes téléphoniques d'accès et de suivre l'évolution de la demande. Tout ces paramètres
impliquent une bonne étude de marché, un bon dimensionnement et par conséquent un fort
investissement.
7.3. Desig n des dialogu e s
Les dialogues homme-machine n'en sont qu'à leur balbutiements! Une erreur de design peut
générer beaucoup de frustration pour l'utilisateur. Exemple : une application propose un menu
où des mots clés sont énumérés. L'utilisateur en prononce un et obtient en réponse un message
du style "Cette option n'est pas encore disponible, désolé". L'utilisateur ne sera pas vraiment
ravi mais, de plus, ne saura pas si le browser a réellement bien compris sa requête (il peut y
avoir des mots qui se ressemble). Il n'est donc pas trivial de créer une application où les
dialogues sont naturels.
7.4. Trafic
La concurrence de services peut générer du trafic très dynamique qui peut s'avérer dangereux
pour les équipements (surtout le gateway). Il convient donc de ne pas attaquer le marché d'une
manière trop agressive.
7.5. Plates-formes mul t i-ling ues
On oublie vite que le monde ne parle pas que l'anglais! Un service vocal en Europe se doit
d'être multilingue, d'autant plus en Suisse. La spécification de VoiceXML ne fait aucune
référence à cette possibilité, mais le problème n'est pas là. En effet, les systèmes de
reconnaissance / synthèse vocale sont mono-linguistiques. Pour implémenter un système
multi-lingue, il faut donc autant de système ASR/TTS qu'il y a de langues à disposition. Le
coût de ces installations devraient donc être forcément plus cher qu'un système américain.
Rapport de fin de semestre
Page 24 sur 25
VOICEXML
Vincent Maillard
ETR6
8. Conclusion
VoiceXML est aujourd'hui prêt à s'étendre au grand jour. Le langage est simple à
l'apprentissage, flexible et permet de créer des applications complexes basées sur le web. Les
entreprises qui ont désiré s'investir dans ce domaine possèdent des gateways fonctionnels,
bien que la plupart n'implémente pas complètement la spécification VoiceXML 1.0.
Les plates-formes de développement permettent de tester son application sur un système avant
de l'acheter. C'est une technique avantageuse qui met au concours les différents systèmes et
qui permet d'acheter un équipement avec lequel l'application a déjà été testée. Le seul
inconvénient est que le passage d'une plate-forme à une autre risque de provoquer des
problèmes (peu de plates-formes implémentent la spécification VoiceXML 1.0 dans sa
totalité).
Bien que les applications VoiceXML semblent jouir d'un futur grand succès, je pense qu'il
sera difficile de les déployer sans problème. Le design des dialogue et leur intelligence face à
un être humain est un point important. Ce savoir faire ne va pas s'apprendre en trois mois. Je
pense toutefois que VoiceXML est promu à un bel avenir.
9. Références
http://www.vxml.org
Le site du Forum VoiceXML
http://www.w3.org/TR/voicexml
La spécification VoiceXML 1.0
http://www.w3.org/Voice
W3C travaille dans l'élaboration de browser vocaux.
Le chapitre 6 (Outils de développement) contient les URL des sites de développement. Ceuxci possèdent beaucoup de documentation.
Rapport de fin de semestre
Page 25 sur 25

Documents pareils

Moteur VoiceXML

Moteur VoiceXML Créer une structure de données à partir document analysé. Chaque structure de donnée correspondant à un document VXML devra être conservé en mémoire. Une cache devra être gérer par le moteur VXML e...

Plus en détail

Conseil et Ingénierie VoiceXML – Expert

Conseil et Ingénierie VoiceXML – Expert Les travaux pratiques réalisés lors des sessions de formation nécessitent au moins un ordinateur pour 2 stagiaires. Chaque poste de travail doit disposer des éléments suivants : § Une connexion à I...

Plus en détail

La standardisation des applications vocales

La standardisation des applications vocales ▫ Conception d‟une application vocale ▫ Les industriels du secteur ▫ Les outils open-source

Plus en détail