Passer au contenu

Expérimentez le langage VoiceXML

Naviguer à la voix depuis un téléphone portable ? C’est désormais possible grâce à VoiceXML. Voici comment s’initier à cette solution qui devrait se répandre rapidement.

Le langage WML nécessite un téléphone mobile compatible Wap. VoiceXML, au contraire, fait accéder à des sites internet à partir d’un simple téléphone. Nous allons mettre en place une plate-forme d’évaluation de cette technologie, notamment utilisée par WebSphere Voice Server d’IBM. Pour tester VoiceXML, vous devez disposer d’un environnement de développement Java pour créer, modifier et exécuter vos propres servlets ; de ViaVoice, le logiciel de dictée automatique d’IBM utilisé ici comme simple moteur de reconnaissance vocale compatible JSAPI (Java Speech API) ; des fichiers de démonstration VoiceXML d’IBM disponibles sur internet qui comprennent un navigateur vocal, un mini-serveur d’application Java et des exemples de pages VoiceXML. L’installation de l’ensemble ne pose pas de problème particulier sur une machine multimédia supportant ViaVoice. Si vous êtes familiarisé avec la programmation des servlets, vous pourrez passer directement à l’étape 2.

1. Mettez en place les outils Java

Téléchargez le Java Sun JDK/JRE 1.2 ( http://java.sun.com/j2se/) et installez-le. Téléchargez ensuite le Sun JavaServer Web Development Kit (JWDK), disponible à l’adresse http://java.sun.com/products/jsp/download.html. Il s’agit d’une archive Zip (“jswdk1_0_1-win.zip”) dont on extrait les fichiers en respectant l’arborescence par défaut. Ouvrez enfin l’icône “Système” du panneau de configuration de Windows NT et ajoutez dans l’onglet “Environnement”, à la variable système “CLASSPATH”, le chemin d’accès aux librairies du JWDK sans oublier le point- virgule de séparation (typiquement, “;c:jswdk-1.0.1libservlet.jar”).

2. Installez ViaVoice

Le système de dictée automatique IBM ViaVoice s’achète chez tout revendeur informatique (la version de base coûte moins de 400 F [61 ?]). Suivez la procédure d’installation fournie avec le logiciel. Nous vous conseillons de procéder à l’apprentissage initial de votre voix.

3. Installez la démonstration VoiceXML

Téléchargez la démonstration de VoiceXML à l’adresse alphaworks.ibm.com/ aw.nsf/techs/voicexml. L’accès au fichier archive Zip auto-extractible, (“vxml000417win.exe”) nécessite de saisir au préalable un formulaire d’enregistrement. Les fichiers, après extraction, sont rangés par défaut dans le sous-répertoire “c:vxml”. Sauf mention contraire, tous les fichiers que vous manipulerez se trouvent dans le sous-répertoire “c:vxmlexamples”. Ouvrez l’icône “Système” du panneau de configuration. Dans l’onglet “Environnement”, ajoutez à la variable système “CLASSPATH” le chemin d’accès aux librairies VoiceXML (typiquement “c:vxml lib”). Modifiez le fichier “servlet.bat” pour que le serveur HTTP livré avec la démonstration trouve bien les servlets dans le répertoire des exemples (point 1 de l’encadré Code, page suivante).

4. Vérifiez l’installation

Pour s’assurer que votre plate-forme d’évaluation est bien opérationnelle, ouvrez une fenêtre MS-Dos, placez-vous dans le répertoire où figurent les exemples VoiceXML (“c:vxmlexam-ples”) et saisissez la commande “live ex_1_1”. Vous devriez entendre, après quelques secondes, le synthétiseur prononcer en anglais “Hello World”. En principe, les exemples fournis ne sont disponibles qu’en anglais, mais il est très facile de les franciser à condition de coder avec Unicode les caractères accentués dans les pages VoiceXML.

5. Localisez en français “Hello World “

Ouvrez le fichier “ex_1_1.vxml” dans un éditeur de texte gérant Unicode (Ultra-Edit, Notepad 4.0, etc.). Modifiez le texte entre les balises et pour qu’il contienne un message en français avec des caractères accentués (par exemple “N’hésitez pas à parler”) et sauvegardez le fichier au format Unicode. Relancez la démonstration en tapant la commande “live ex_1_1”.

6. Mettez en ?”uvre la reconnaissance vocale

Maintenant, vous allez modifier un autre exemple qui propose une boisson à l’utilisateur. Ceci va vous obliger à traduire toutes les expressions du dialogue (l’équivalent en VoiceXML d’un formulaire HTML), d’une part, et à forcer l’emploi du format Unicode par la servlet qui traitera la réponse, d’autre part. Modifiez le fichier “ex_1_2.vxml” (point 2 de l’encadré Code) et sauvegardez le résultat au format Unicode. Traduisez les mots du fichier “ex_ 1_2.gram” (“café”, “thé”, etc.), et enregistrez le résultat sans conversion Unicode. Modifiez le fichier “ex_1_2.java” au niveau de l’appel de la méthode setContentType() et du texte renvoyée par la servlet (point 3 de l’encadré Code), puis enregistrez le résultat sans conversion Unicode. Compilez la servlet avec la commande “javac ex_ 1_2.java” et lancez la démonstration en tapant la commande “live ex_1_2”.

7. Améliorez l’ergonomie du dialogue

Pour l’instant, l’ordinateur ne comprend que des mots simples : “café”, “thé”, etc. Modifiez la grammaire pour reconnaître des phrases en langage naturel comme : “J’aimerais bien du lait”, “Plutôt un café, s’il vous plaît” ou encore “Je veux du thé”. Pour cela, ouvrez le fichier “ex_1_2.gram” et modifiez-le comme il est expliqué au point 4 de l’encadré Code, après quoi vous pouvez relancer la démonstration. La syntaxe d’une grammaire VoiceXML est identique à celle de l’interface Java Speech de Sun, appelée JSGF (Java Speech Grammar Form). Chaque règle de cette grammaire définit les différentes expressions (utterance) prononçables par l’utilisateur. Une expression peut être optionnelle (entre crochets), répétée (astérisque) ou faire référence à une autre règle. Les balises entre accolades codifient la réponse de l’utilisateur. La portée d’une grammaire dépend de l’endroit où elle est appelée dans la page VoiceXML. Elle peut être limitée à un champ, comme au point 2 de l’encadré Code, à un dialogue, ou étendue à toute l’application vocale. Ainsi, l’utilisateur peut changer d’avis et demander un autre service à tout instant.

8. VoiceXML et ECMAScript

Notre exemple comporte une erreur de logique car le choix “rien” ne peut pas être une boisson et vous devez en tenir compte. Une première solution est d’intervenir côté serveur en modifiant la servlet. Comme VoiceXML respecte le standard ECMAScript, l’autre approche consiste à tester la réponse par un script côté client, grâce à de nouvelles modifications (point 5 de l’encadré Code).

9. Les autres possibilités de VoiceXML

Ce bref survol du langage VoiceXML est loin de couvrir toutes ses capacités. Mais vous en savez assez pour créer vos propres dialogues et vous familiariser avec une technologie qui devrait rapidement prendre de l’ampleur.

🔴 Pour ne manquer aucune actualité de 01net, suivez-nous sur Google Actualités et WhatsApp.


Denis Rebaud