Expliquez-moi...
 
17/07/2007

VoiceXML

Dans le cadre de la nouvelle version VoiceXML 2.1, retour sur l'utilité et les caractéristiques de ce langage pour la communication téléphonique homme/machine.
  Envoyer Imprimer  

 
En savoir plus
 
 
 

VoiceXML (Voice eXtensible Markup Language ou langage de balisage extensible vocal) est un langage de programmation pour applications vocales. Il permet le dialogue entre un utilisateur et un serveur.

Comme son nom l'indique, il est fondé sur XML et a été reconnu comme étant un standard par le W3C ; ce qui fait que le langage est portable sur n'importe quel navigateur vocal respectant le standard. L'objectif du langage est de permettre aux personnes disposant d'un téléphone d'accéder sous forme vocale aux contenus et services du Web ainsi qu'aux systèmes d'information des entreprises.

VoiceXML est très similaire au HTML dans le sens où tous deux créent du contenu à partir de données sur serveur via un navigateur. Pour VoiceXML, le navigateur est un " Voice Browser " ou navigateur vocal et a pour rôle de formater le contenu présenté sur le téléphone de la même façon qu'un document HTML est interprété par un "Web Browser".

VoiceXML réutilise l'architecture du Web basée sur les protocoles TCP-IP et HTTP ainsi que le standard XML : le navigateur vocal émet des requêtes HTTP à destination du serveur et le serveur HTTP répond à ces requêtes par un flux VoiceXML qui est alors interprété sur le navigateur vocal pour interagir avec l'utilisateur.

Le langage VoiceXML permet la création d'applications vocales. Ces applications conçoivent la communication de l'utilisateur vers le système soit par des codes DTMF (Dual-tone multi-frequency) à l'aide des touches du clavier téléphonique, soit par reconnaissance vocale. Elles permettent aussi la communication du système vers l'utilisateur soit par des annonces enregistrées, soit par des annonces en synthèse vocale.

VoiceXML 2.1 les nouveautés

La popularité de VoiceXML 2.0 a donné de l'impulsion au développement de nombreux navigateurs vocaux. VoiceXML 2.0 a réussi prodigieusement en permettant le déploiement rapide d'applications vocales gérant des millions d'appels téléphoniques quotidiennement.

Ce succès a encouragé le développement de caractéristiques additionnelles et innovantes qui aident les développeurs à construire des services activés par la voix toujours plus puissants.

Comme il était trop tard pour incorporer ces caractéristiques additionnelles à VoiceXML 2.0, VoiceXML 2.1 a eu pour but de spécifier officiellement les caractéristiques les plus communes pour assurer leur portabilité entre plate-formes tout en maintenant une complète compatibilité avec VoiceXML 2.0.

Voici sur quoi portent les 8 nouvelles caractéristiques.

 
Nouvelles caractéristiques de VoiceXml 2.1
  Elément Sujet Etat  
  <data> Va chercher des données XML arbitraires depuis un serveur de documents Nouveau  
  <disconnect> Déconnecte une session Amélioré  
  <grammar> Fait référence à la reconnaissance vocale ou à la grammaire DTMF Amélioré  
  <foreach> Répète pendant un array ACMAScript Nouveau  
  <mark> Déclare un signet dans une séquence de prompts Amélioré  
  <property> Contrôle l'état de la plate-forme Amélioré  
  <script> Fait référence à document contenant de l'ECMAScript coté client Amélioré  
  <transfer> Transfert l'utilisateur vers une autre application. Amélioré  
 
Source : W3C / 2007

Exemple <data>

L'élément permet à une application VoiceXML de chercher (rapporter) des données XML arbitraires d'un serveur de document sans faire de transition par un nouveau document VoiceXML. Les données XML trouvées par l'élément sont liées à ECMAScript par la variable nommée dévoilant seulement une partie du Document Object Model (DOM) du W3C.

Dans l'exemple suivant, tiré des spécifications VoiceXML 2.1 du W3C, le document XML cherché par l'élément est dans le format suivant :

<?xml version="1.0" encoding="UTF-8"?>
<quote xmlns="http://www.example.org">
  <ticker>F</ticker>
  <name>Ford Motor Company</name>
  <change>1.00</change>
  <last>30.00</last>
</quote>

 

L'exemple suivant assigne la valeur de l'élément "last" à la variable ECMAScript "price" :

<data name="quote" src="quote.xml"/> 
<script>
 <![CDATA[
  var price = quote.documentElement.getElementsByTagNameNS
   ("http://www.example.org", 
   "last").item(0).firstChild.data;
 ]]>
</script>      

JDN Développeur Envoyer Imprimer Haut de page

Sondage

Adobe parviendra-t-il à percer avec sa nouvelle suite de création Web Edge ?

Tous les sondages