VoiceXML : Comment ça marche !

VoiceXML : le langage et l'architecture

Par Philippe Simon

Le contexte

Les architectures de serveurs vocaux propriétaires proposées jusqu'à présent par les équipementiers et hébergeurs sont contraignantes pour les clients de ces plate-formes vocales.

En effet , le développement de services vocaux est réalisé sur ces plate-formes à l’aide d’outils et langages propriétaires spécifiques. Ceci a pour conséquence :

  • l’application vocale est dépendante da la plate-forme sur laquelle elle s’exécute. La portabilité des applications d’une plate-forme vocale à une autre est impossible.
  • la mise en concurrence des fourniseurs de plate-forme et développeurs d’applications vocales est limitée voire inexistante dès qu’une première version de l’application a été développée. Le fournisseur initial de l’application vocale a un avantage concurrentiel décisif pour les évolutions suivantes de l'application..
  • le couplage entre l’hébergeur et le client est important lorsque l’architecture nécessite une connexion avec le système d’information de l’entreprise. De plus ce couplage est généralement implémenté par des protocoles de communication propriétaire ce qui a pour effet de renforcer la dépendance du client vis-à-vis de l'hébergeur.
  • le développement n'est maitrisé que par un petit nombr de développéurs. Le "Time to Market" de ces applications s'en trouve affecté.

Pour répondre aux attentes des clients, les industriels sous la pression des grands utilisateurs ont développé le langage VoiceXML à la fin des années 90. IBM, AT&T, Lucent Technologies et Motorola ont ainsi uni leurs efforts en 1999 pour lancer le VoiceXML Forum, promoteur du langage VoiceXML.

Cette initiative a été reprise par le groupe Voice du W3C, organisme en charge de la standardisation des technologies de l’internet (html, http, …), afin de finaliser le processus de standardisation du langage VoiceXML.

Présentation de VoiceXML

Html et VoiceXML sont des langages à balise (‘Markup Language’). Mais quand un document Html est interprété par un "Web Browser" (Internet Explorer, Firefox, …) pour formater le contenu présenté sur votre ordinateur, VoiceXML est lui interprété par un "Voice Brower" pour formater le contenu présenté sur votre téléphone.

L’objectif initial du langage VoiceXML est de permettre aux personnes disposant d’un simple téléphone d’accéder sous forme vocale aux contenus et services du Web ainsi qu’aux systèmes d’informations des entreprises. Les utilisateurs potentiels des services développés via cette technologie sont donc les 2 milliards d’abonnés aux services de téléphonie des opérateurs télécom fixe et mobile.

VoiceXML est un langage de programmation des interactions vocales homme-machine s'appuyant sur l'architecture et les applications du Web. Les principales fonctionnalités de ce langage sont :

  • la diffusion de fichiers audio,
  • la diffusion de parole synthétisée (synthèse vocale),
  • la détection de codes DTMF générés par les touches du clavier du téléphone
  • la détection de mots ou expressions prononcés par l'utilisateur (reconnaissance vocale),
  • l’enregistrement de la parole de l’utilisateur,
  • le contrôle de l’appel téléphonique (transfert de l’appel, déconnexion de l’appel),

Le processus de standardisation

Les premiers travaux sur un langage à balise destiné à la programmation des interactions vocales homme-machine ont débuté en 1995 au sein des Bell Labs d’AT&T. Il s’agissait du langage PML (Phone Markup Language.) Une variante Voxml a également été développée chez Motorola à la fin des années 1990.

Pour unifier leurs travaux et proposer un langage commun, IBM, AT&T, Lucent Technologies et Motorola ont créé le VoiceXML Forum en 1999. Le but était de promouvoir le langage VoiceXML auprès des clients, opérateurs et équipementiers du monde des technologies vocales. La version 1.0 du langage VocieXML a donc été publiée par le VoiceXML Forum en mars 2000.

Le VoiceXML Forum a ensuite cédé la gestion des évolutions du langage au groupe Voice du W3C organisme ayant en charge l’évolution des standards de l’internet (Html, Http, XML, …).

Aujourd’hui, Le VoiceXML Forum compte environ 600 membres (entreprises et organisations). Il a actuellement les trois objectifs suivant :

Le goupe Voice du W3C a en charge depuis mai 2000, la standardisation d'une suite de langages regroupés sous le terme "W3C Speech Interface Framework". Ce « framework » offre une évolutivité naturelle des applications vocales vers des technologies de type Synthèse Vocale, Reconnaissance vocale ou Traitement des appels.

Ce "Speech Interface Framework" est actuellement composé des langages suivants :

  • VoiceXML 2.0 : langage de programmation des interactions vocales homme-machine
  • VoiceXML 2.1 : compléments à la version 2.0 du langage VoiceXML
  • SSML 1.0 ( Speech Synthesis Markup Language ) : langage permettant de contrôler un moteur de synthèse de la parole.
  • SRGS 1.0 (Speech Recognition Grammar Specification) : langage de description de grammaires utilisé par un moteur de reconnaissance de la parole,
  • SISR 1.0 (Semantic Interpretation for Speech Recognition) : langage utilisé par le moteur de reconnaissance vocale pour décrire les mots et expressions reconnues,
  • CCXML 1.0 : (Call Control Markup Language) : langage de contrôle d'appel.

Le groupe Voice du W3C a ainsi finalisé et publié en 2004 les recommandations suivantes :

Architecture

VoiceXML réutilise l’architecture du Web basée sur les protocoles TCP-IP et HTTP ainsi que le standard XML et l’appliquant au monde des serveus vocaux.

Dans cette architecture, le client http, en l’occurrence le Voice Browser, émet des requêtes http à destination du serveur http. Le serveur http répond à ces requêtes par un flux VoiceXML. Ce code VoiceXML est alors interprété sur le Voice Browser pour interagir avec l’utilisateur.

Ce modèle d’architecture client-serveur a les propriétés suivantes :

  • un Voice Browser peut interpréter du code VocieXML généré par différentes applications vocales hébergées sur différents serveurs. Le Voice Browser associe généralement par configuration une application vocale à un numéro de téléphone appelé.
  • une application vocale peut générer du code VocieXML pour différents Voice Browser. Cette propriété favorise l’expansion géographique ; le déploiement à l’international s’en trouve facilité.

Le réseau supportant le protocole TCP-IP peut être un réseau de type Intranet ou l’Internet lui-même. Dans ce cas, les aspects Performance deviennent critiques. Les temps de réponse sur le réseau Internet n'étant pas assurés, l'architecture doit prendre en compte cette contrainte dès les phases amont du projet.

Performances

Le temps de réponse est une métrique cruciale pour les applications vocales. L’architecture VoiceXML basée sur les protocoles TCP-IP et http intègre des mécanismes spécifiques qui doivent être utilisés pour garantir des performances optimum.

Afin de satisfaire ces exigences de performance, l’ensemble des mécanismes de cache prévus dans le protocole http sont disponibles. De plus, le langage VoiceXML prévoit des mécanismes plus fins de contrôle du cache http ; ces mécanismes plus évolués permettent de spécifier des durées de cache différentes en fonction des ressources utilisées (fichiers audio, fichiers vxml). Ces mécanismes de cache sont utilisés de manière intensive pour optimiser les performances globales des applications vocales VoiceXML.

Pour des ressources (fichiers audio et fichiers statiques vxml) stables dans le temps, il est également possible de les charger sur le système de gestion de fichier des Voice Browsers.

Les points forts de VoiceXML

Les points majeurs qui font actuellement le succès de ce langage sont
  • la portabilité des applications vocales respectant le langage VocieXML 2.0. Une application vocale développée sur un Voice Browser respectant le standard VoiceXML 2.0 peut être déployée sur un autre Voice Browser à la seule condition qu'il respecte le standard 2.0.
  • les développements d'applications VoiceXML sont basés sur une réutilisation des composants logiciels des architecture Web (serveurs Http, serveurs d'applications, bibliothèques de composants logiciels, ...). La fiabilité de ces composants n'est plus à démontrer. Ils ont bénéficié de plusieurs années d'utilisation intensive dans le monde des applications Web classique en langage Html.
  • le nombre de développeur maitrisant ces technologies est de plus important. Qaund une centaine de développeurs maitrisent une technologie propriétaire, il y a déjà des milliers de développeurs qui utilisent le langage VoiceXML au quotidien. Le "Time To Market" des applications VoiceXML ne peut qu'en bénéficier.
  • l'évolution d'une application vocale écrite en VoiceXML 2.0 vers la Synthèse vocale et la Reconnaissance vocale est naturelle car le langage intègre nativement ces technologies,
  • enfin, le langage VoiceXML est stabilisé techniquement depuis le début de l'année 2003 et la recommandation finale du W3C a été publié le 16 mars 2004. De nombreuses implémentations respectant ce standard sont déjà disponibles ches les opérateurs et équipementiers télécom.