Nous
allons maintenant aborder d'autres balises fondamentales de VoiceXML,
au travers de petites applications simples.
<?xml version="1.0"
?>
<vxml version="2.0">
<menu accept="approximate">
<prompt bargein="true">
Bienvenue sur le Journal du
Net.
<enumerate> Pour
<value expr="_prompt"/>,
tapez <value expr="_dmtf"/>.
</enumerate>
</prompt>
<choice next="dev/index.vxml">Développeurs</choice>
<choice next="sol/index.vxml">Solutions</choice>
<choice next="tel/index.vxml">Téléchargement</choice>
</menu>
</vxml>
Résultat: "Bienvenue sur le Journal du Net. Pour Développeurs,
tapez 1. Pour Solutions, tapez 2. Pour Téléchargement,
tapez 3."
<menu>: défini un menu. Il permet
à l'utilisateur de choisir une "destination" parmi
plusieurs proposées.
<choice>: défini un élément
de menu. Il a plusieurs buts: définir les éléments
de grammaire vocale et/ou DMTF qui determinent quand un choix a
été fait, fournir le contenu à la balise <enumerate>,
et spécifier l'URI où aller une fois le choix fait.
<enumerate>: génère automatiquement
une sortie audio qui énumère les options d'un champ
ou d'un menu. Il peut être vide (<enumerate/>),
auquel cas l'énumération se fait directement. Il peut
aussi contenir la phrase d'énumération, comme ici,
a vec l'énumération spécifiée par <value
expr="_prompt">.
<value>: insère la valeur d'une expression
dans une sortie audio.
Exemple: <value expr="n*n"/>
est le carré de <value expr="n"/>.
<?xml version="1.0"
?>
<vxml version="2.0">
<form id="test">
<field name="couleur">
<prompt>Quelle est votre
couleur préférée ? </prompt>
<prompt count="2">Choisissez
une couleur plus courante.</prompt>
<grammar>[ rouge vert
jaune bleu orange ]</grammar>
<filled>
<prompt>Votre
couleur préférée est: <value expr="couleur"/>.</prompt>
</filled>
</field>
</form>
<noinput>
Désolé, ce choix est impossible.
<reprompt/>
</noinput>
</vxml>
Résultat:
Ordinateur: "Quelle est votre couleur préférée
?"
Utilisateur: "Grenat"
Ordinateur: "Désolé, ce choix est impossible.
Choisissez une couleur plus courante."
Utilisateur: "rouge"
fin du dialogue.
<grammar>: spécifie une certaine
grammaire de reconnaissance, c'est-à-dire les mots clés
qui seront reconnus comme étant valides. Il existe deux grammaires
définies par le W3C: ABNF et XML. Nous en parlerons plus
longuement dans un prochain article.
<noinput>: entre en action quand aucune entrée
de la part de l'utilisateur n'a été détectée.
<reprompt>: relance la synthèse vocal
et incrémente le compteur de <prompt> de 1
(ce qui permet de préciserla question si l'utilisateur ne
l'a pas comprise.
Voici enfin une petite application permettant d'enregistrer un
message vocale:
<?xml version="1.0"
?>
<vxml version="2.0">
<form id="enregistrement">
<record name="message" beep="true"
maxtime="10s" finalsilence="2000ms">
<prompt>
Donnez votre message
après le bip.
</prompt>
<noinput>
Je n'ai rien entendu.
<reprompt/>
</noinput>
</record>
<field name="confirm" type="boolean">
<prompt>
Voici votre message:
<value expr="message"/>.
Pour le conserver,
dites oui. Pour en faire un autre, dites non.
</prompt>
<filled>
<if cond="confirm">
<prompt>Votre
message est sauvegardé</prompt>
<submit
method="post" namelist="message" next="messages.jsp"/>
<else/>
<prompt>Nous
allons recommencer.</prompt>
<clear
namelist="greeting confirm"/>
</if>
</filled>
</field>
</form>
</vxml>
<record>: enregistre un son donné
par l'utilisateur. Dans notre exemple, le message est stocké
dans la variable de formulaire "message". Le début
de l'enregistrement est indiqué à l'utilisateur par
un bip, et la fin de l'enregistrement se fera au bout de
deux secondes de silence.
<submit>: envoi une valeur vers le serveur.
Ce ne sont là que quelques-unes des balises spécifiées
dans la norme VoiceXML: notre article est loin d'en donner une idée
exhaustive. Néanmoins, il vous permettra de vous faire une
idée plus précise des capacités et du fonctionnement
de VoiceXML.
Page 1
| 2
|