Speech Recognition API : Démo HTML5
Mise à jour : 2017-01-22
The SpeechRecognition Interface
- SpeechRecognition :
- Attributs :
- continuous : booléen indiquant une mode de reconnaissance vocale en continu (faux par défaut).
- grammars : grammaire du language à reconnaitre.
- interimResults : booléen indiquant si on récupère des résultats provisoires (faux par défaut).
- lang : langue au format BCP 47 (ex. fr-FR).
- maxAlternatives : nombre maximum de résultats possibles (1 par défaut)
- serviceURI : URI du service de reconnaissance vocale, si non spécifié celui du navigateur.
- Méthodes :
- abort :arrête la reconnaissance vocale, sans retourner de résultat.
- start : démarre la reconnaissance vocale.
- stop : arrête la reconnaissance vocale, en retournant un résultat.
- Évènements :
- audioend : envoyé lorsque la capture audio se termine.
- audiostart : envoyé lorsque la capture audio démarre.
- end : envoyé lorsque la reconnaissance vocale s'arrête, quelque soit la raison.
- error : envoyé lorsqu'une erreur survient.
- Attributs :
- aborted : arrêt de la reconnaissance vocale.
- audio-capture : échec de la capture audio.
- bad-grammar : erreur de grammaire.
- language-not-supported : langue non reconnue.
- network : erreur réseau
- no-speech : aucune parole détectée.
- not-allowed : reconnaissance vocale non autorisée.
- service-not-allowed :
- Attributs :
- nomatch : envoyé lorsqu'aucn résultat valide n'est disponible.
- result : envoyé lorsqu'un résultat est retourné.
- soundend : envoyé lorsqu'aucun son n'est plus détecté.
- soundstart : envoyé dès qu'un son est enregistré.
- speechend : envoyé lorsque le discours est terminé.
- speechstart : envoyé dès qu'une parole est identifiée.
- start : envoyé lorsque la reconnaissance vocale démarre.
- Attributs :
- SpeechRecognitionAlternative :
- confidence : pourcentage de confiance du résultat de la reconnaissance vocale.
- transcript : résulat de la reconnaissance vocale, sous forme d'une chaîne de caractère.
- SpeechRecognitionEvent :
- emma : résulat au format EMMA.
- interpretation : sémantique du résultat.
- resultIndex : plus petit index d'un résultat ayant changé.
- results : tableau de tous les résultats de la reconnaissance vocale.
- ...
Notes sur le tuto
- Limitation :
- L'utilisation du microphone requiert l'autorisation de l'utilisateur.
- Une connexion réseau est indispensable (ne fonctionne pas en mode déconnecté).
- La page doit être hébergée sur un serveur Web, même local sur votre machine (une simple page HTML dans un répertoire ne fonctionne pas).
- Démos :
- Articles détaillés :
- Librairie pour contrôler votre site Web à la voix : Annyang
- Voir aussi : Speech Synthesis API
Exemple de code HTML5
Parlez distinctement devant votre micro, pour voir la transcription apparaître ci-dessous : <button onclick="recognition.start()">Start</button> <button onclick="recognition.stop()">Stop</button><br> <textarea id="textarea" rows=10 cols=100></textarea><br> Taux de confiance de la reconnaissance vocale : <span id="span">...</span><br> <script> var SpeechRecognition = SpeechRecognition || webkitSpeechRecognition recognition = new SpeechRecognition() recognition.continuous = true recognition.lang = "fr-FR" recognition.onresult = function (event) { for (i = event.resultIndex; i < event.results.length; i++) { textarea.value += event.results[i][0].transcript + "\n" document.getElementById("span").innerHTML = Math.round(event.results[i][0].confidence * 100) + " %" } } recognition.start() </script>
Démonstration du résultat HTML5
Parlez distinctement devant votre micro, pour voir la transcription apparaître ci-dessous :
Taux de confiance de la reconnaissance vocale : ...
Détection automatique du support HTML5
Librairie JavaScript de détection automatique (attention, comporte quelques faux positifs et faux négatifs)<script src="_html5detect.js"></script> <script> isItemSupported("window.SpeechRecognition") isItemSupported("window.webkitSpeechRecognition") </script>