Table des matières

VoiceXML

Le VoiceXML (Voice eXtensible Markup Language) est un langage normalisé par le W3C, il permet la programmation d'applications vocales. Ce type d'application vise à permettre à une personne de converser (aussi naturellement que possible) avec un serveur vocal interactif en utilisant un téléphone. Ce langage offre aussi la possibilité que l'interaction avec l'utilisateur puisse se faire à l'aide des touches du téléphone; en dual-tone multi-frequency (DTMF).

Si vous souhaitez avoir un panorama de cette technologie, je vous invite à vous reporter aux transparents d'un séminaire que j'ai réalisé : La standardisation des applications vocales

Si vous souhaitez développer des applications VoiceXML, je vous invite à utiliser VoiceXML Application Builder. Il s'agit d'un projet open-source que j'ai initié, et dont l'objectif est de proposer un environnement de développement intégré permettant la création rapide d'applications vocales interactives. Les applications générées répondent à la norme VoiceXML.

VoiceXML : principes de fonctionnement

Le VoiceXML (Voice eXtensible Markup Language) est un langage de la famille XML normalisé par le W3C, il permet la programmation d'applications vocales. Ce type d'application vise à permettre à une personne de converser (aussi naturellement que possible) avec un serveur vocal interactif (SVI) en utilisant un téléphone. Ce langage offre aussi la possibilité que l'interaction avec l'utilisateur puisse se faire à l'aide des touches du téléphone; en dual-tone multi-frequency (DTMF).

L'application vocale

Le VoiceXML a été conçu afin de faciliter le déploiement de serveurs vocaux interactifs (SVI); il permet de décomposer les problèmes liés au dialogue homme-machine. Un élément important de cette décomposition consiste à séparer le problème de la reconnaissance de la parole de celui de l'application ciblée. Pour plus d'information : La standardisation des applications vocales.

Dans ce cadre, une application vocale vise à la réalisation d'un dialogue homme-machine et nécessite pour cela une ou plusieurs ressources. Celles-ci sont des documents aux formats VoiceXML, SRGS, SSML, etc.

Architecture

Le W3C a conçu une architecture orientée service web où la plateforme VoiceXML n'est qu'une interface entre l'utilisateur et des serveurs web. Cette approche est illustrée dans : La standardisation des applications vocales (pp11-12).

Session

Dans un cadre applicatif, la réalisation d'un dialogue homme-machine prend place au sein d'une session. Celle-ci débute lorsqu'un utilisateur entre en relation avec le serveur vocal interactif (SVI). Elle dure tant que l'utilisateur interagit avec le navigateur VoiceXML et se clos à la demande de l'utilisateur, d'une ressource ou de la passerelle.

Le SVI initie une session auprès de la passerelle VoiceXML. Alors, le navigateur VoiceXML débute le flot d'exécution de l'application par un document racine (au format VoiceXML). Il permet la définition de variables et de grammaires globales. Chaque fichier VoiceXML représente un ensemble de situations de dialogue : des sous-dialogues.

Dialogues et sous-dialogues

Bien qu'un fichier XML décrive un ensemble de données arborescent, une application VoiceXML peut être décrite comme une machine à états finie. Cette description quasi-implicite auparavant est devenue explicite avec l'apparition du langage SCXML (State-Chart eXtensible Markup Language) qui vise à distinguer sous-dialogue et flot d'exécution.

Un dialogue entre l'utilisateur et le SVI consiste alors à parcourir différents états de la machine à états finie en fonction des différentes actions de l'utilisateur. Durant ce parcours, on considère que l'utilisateur ne peut se trouver que dans un seul état de dialogue à la fois.

Un état de dialogue est accessible par son adresse au format URI (Uniform Resource Indicator). Il peut être défini par :

Cette approche permet de définir aisément les flots de dialogue d'une application vocale à partir de sous-dialogues. En effet, chaque état décrit une situation de dialogue devant aboutir à une interaction particulière. Les différentes interactions pouvant donner lieu à des transitions différentes.

Implémentation

Pour aller plus loin dans l'implémentation, on peut se reporter à la page suivante : VoiceXML : éléments d'implémentation

Liens utiles

Si vous êtes à la recherche d'autres informations sur le VoiceXML, je vous invite à consulter ces liens utiles.