J'utilise vxml alimenté par un moteur similaire à TellMe. J'ajoute la reconnaissance vocale aux invites téléphoniques pour un système de messagerie vocale. Le nouveau menu demandera d'abord à l'utilisateur d'entrer des informations vocales, et si aucune correspondance n'est trouvée, ou si aucune entrée n'est donnée, l'utilisateur est à nouveau invité avec des options de tonalité.vxml: Puis-je basculer entre l'invite vocale et les invites d'énumération?
Les menus originaux ressemblent à ceci:
<menu id="msgedit">
<prompt><enumerate><value expr="_prompt"/>press <value expr="_dtmf"/>.</enumerate></prompt>
<choice dtmf="9" next="#checkurgent">To deliver your message </choice>
<choice dtmf="7" next="#playmsg">To play your message </choice>
<choice dtmf="3" next="#rerecord">To discard your message and record over </choice>
<choice dtmf="2" next="#addtomsg">To add to your message </choice>
<choice dtmf="6" next="#testnumber">To enter a phone number where you may be reached </choice>
<choice dtmf="1" next="#cancel">To cancel making a message </choice>
<!-- handle no input/no match -->
</menu>
Le nouveau menu ressemble à ceci:
<form id="msgedit">
<field name="choice">
<prompt>
<if count == 0">
Please choose one of the following.
deliver, play back, rerecord, add to,
enter a callback number, or cancel.
<else/>
Please choose one of the following.
To deliver your message, press 9.
To play back your message, press 7.
To discard your message and rerecord, press 3.
To add to your message, press 2.
To enter a callback number, press 6.
To cancel your message, press 1.
</if>
</prompt>
</field>
<filled>
<if cond="choice == 'deliver' || choice == '9'">
<goto next="#checkurgent"/>
<elseif cond="choice == 'play' || choice == '7'"/>
<goto next="#playmsg"/>
<elseif cond="choice == 'rerecord' || choice == '3'"/>
<goto next="#rerecord"/>
<elseif cond="choice == 'add' || choice == 'add to' || choice == '2'"/>
<goto next="#addtomsg"/>
<elseif cond="choice == 'enter callback number' || choice == 'callback number' || choice =='6'"/>
<goto next="#testnumber"/>
<elseif cond="choice == 'cancel' || choice =='1'"/>
<goto next="#cancel"/>
<else/>
<throw event="nomatch"/>
</if>
</filled>
<!-- handle no input/no match -->
</form>
Cependant, je veux utiliser le comportement <enumerate>
et <choice>
dans le menu original reprompt à la place du texte long (qui est trop long et provoque une erreur).
VOICI LA QUESTION: existe-t-il un moyen d'utiliser le premier style d'invite dans le second style d'invite? puis-je mettre et à l'intérieur d'un champ? et comment ferais-je cela?
Donc, je peux utiliser '
Selon la DTD VoiceXML (http://www.w3.org/TR/voicexml20/vxml.dtd), le seul élément autorisé dans un choix est une grammaire. Par conséquent, vous ne pouvez pas le faire dans un élément de choix. Vous pouvez dans un formulaire. Pour la meilleure expérience utilisateur, je recommande un clip sonore pour chaque chemin et utilise le srcexpr de l'élément audio avec votre drapeau pour sélectionner le clip correct. –
Merci. J'ai trouvé quelque chose d'un peu différent, mais vous m'avez mis sur la bonne voie. :) – mtmurdock