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
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étailConseil 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étailLa standardisation des applications vocales
▫ Conception d‟une application vocale ▫ Les industriels du secteur ▫ Les outils open-source
Plus en détail