Introduction
VoiceXML
répond à une attente très spécifique:
permettre l'accès à Internet via le téléphone,
mobile ou fixe, en utilisant uniquement la voix. Le marché
de la téléphonie présente une opportunité
énorme pour les éditeurs de contenu, sachant que le
nombre d'abonnés au téléphone est de loin supérieur
au nombre de possesseurs d'ordinateurs, et par extension au nombre
d'abonnés à Internet. Ajoutons à cela que tout
le monde est en mesure d'utiliser un téléphone tandis
que bon nombre de gens sont encore rebutés par la complexité
d'utilisation d'un ordinateur, et l'on comprend facilement la potentiel
offert par cette population à qui l'accès à
Internet est "interdit". Enfin, il faut citer la grande
facilité d'accès qui serait offert aux non-voyants
via cette technologie...
Une application VoiceXML peut donc parler à un utilisateur
via des sons pré-enregistrés ou de la synthèse
de la parole. Dans l'autre sens, elle peut recevoir des commandes
par reconnaissance vocale ou saisie de codes DTMF (Dual Tone
Multi Frequency) sur les touches du téléphone.
Le navigateur vocal (voice browser) vient chercher la page
VoiceXML sur le serveur HTTP de la même manière qu'un
navigateur classique va chercher une page HTML.
Application
Présenté le 24 avril dernier, le dernier document
de travail du VoiceXML 2.0 spécife une certaine grammaire
et une certaine forme pour l'écriture de fichiers correspondants.
A titre d'exemple, un dialogue de base prendrait cette forme:
<?xml
version="1.0"?>
<vxml version="2.0">
<menu>
<prompt>
Choisissez une section: <enumerate/>
</prompt>
<choice next="http://www.le-site.com/sports.vxml">
Sports
</choice>
<choice next="http://www.le-site.com/meteo.vxml">
Météo
</choice>
<choice next="http://www.le-site.com/actus.vxml">
Actualités
</choice>
<noinput>Faites un choix parmi les
sections proposées: <enumerate/></noinput>
</menu>
</vxml>
Le dialogue serait rendu comme suit, à l'aide d'un téléphone:
- Ordinateur: "Choisissez une section: Sports; Météo;
Actualités."
- Utilisateur: "Astrologie."
- Ordinateur: message spécifique à la plateforme,
de la forme "Je n'ai pas compris ce que vous avez dit",
puis "Faites un choix parmi les sections proposées:
Sports; Météo; Actualités."
- Utilisateur: "Actualités."
- Ordinateur: charge la page http://www.le-site.com/actus.vxml
Parce que la reconnaissance vocale n'est
jamais parfaite, VoiceXML permet aussi de gérer les dialogues
si le logiciel ne parvient pas à rattacher une réponse
à un des éléments de sa base:
<?xml version="1.0"
encoding="ISO-8859-1"?>
<vxml version="2.0" lang="fr">
<form>
<field name="ville">
<prompt>Où voulez-vous
aller?</prompt>
<option>Lyon</option>
<option>Marseille</option>
<option>Brest</option>
<option>Strasbourg</option>
<option>Bordeaux</option>
<filled>
<if cond="ville$.confidence
< 0. 3">
<prompt>Je
suis désolé mais je n'ai pas bien compris</prompt>
<clear
namelist="ville"/>
<elseif cond="ville$.confidence
< 0.7"/>
<assign
name="reponse" expr="ville$.utterance"/>
<goto
nextitem="confirmerVille"/>
</if>
</filled>
</field>
<subdialog name="confirmerVille"
src="#ynconfirm" cond="false">
<param name="user_input"
expr="reponse"/>
<filled>
<if cond="confirmerVille.result=='false'">
<clear
namelist="ville"/>
</if>
</filled>
</subdialog>
</form>
...
Ici, si la certitude du logiciel de reconnaissance vocale est inférieure
à 0.3, l'utilisateur recevra le message "Désolé,
mais je n'ai pas bien compris". Si elle est inférieure
à 0.7, le sous-dialogue de confirmation est invoqué.
L'élément param est utilisé pour passer
des données au sous-dialogue...
VoiceXML étant un extension de XML, les régles d'écriture
de XML s'appliquent: toutes les balises doivent être fermées,
tous les documents doivent avoir un élement racine (pour
VoiceXML, il s'agit de <vxml ...>), tous les attributs doivent
être en guillemets... Enfin, depuis sa version 2.0, le VoiceXML
se doit de suivre une grammaire spécifique.
Nous allons commencer par étudier plus précisément
le balisage de VoiceXML, puis nous aborderons cette grammaire de
reconnaissance vocale dans un deuxième temps. La suite dans
de prochains articles.
|