L'API Web Speech
================

**Expérimental:** **Cette fonction est expérimentale**  
Puisque cette fonction est toujours en développement dans certains navigateurs, veuillez consulter le tableau de compatibilité pour les préfixes à utiliser selon les navigateurs.  
Il convient de noter qu'une fonctionnalité expérimentale peut voir sa syntaxe ou son comportement modifié dans le futur en fonction des évolutions de la spécification.

L'API *Web Speech* permet d'intégrer des données liées à la voix dans des applications web. L'API *Web Speech* se compose de deux parties : *SpeechSynthesis* (synthèse vocale) et *SpeechRecognition* (reconnaissance vocale asynchrone).

Concepts et usages de l'API Web Speech
--------------------------------------

L'API *Web Speech* rend les applications web capables de manipuler des données liées à la voix. Cette API se compose de deux parties :

* La reconnaissance vocale (
 *Speech recognition*
 ) est accessible via l'interface `SpeechRecognition` qui fournit la capacité de reconnaitre la voix dans une source audio (normalement grâce à l'outil par défaut de reconnaissance vocale de l'appareil) et de réagir de façon pertinente. En général, on utilisera le constructeur de l'interface pour créer un nouvel objet `SpeechRecognition` qui a un nombre de gestionnaires d'événements disponibles pour détecter lorsque de la parole arrive dans le micro de l'appareil. L'interface `SpeechGrammar` (en-US) représente un conteneur pour une série de règles de grammaire que votre application devrait reconnaître. La grammaire est définie en utilisant JSpeech Grammar Format (**JSGF**).
* La synthèse vocale (
 *Speech synthesis*
 ) est disponible via l'interface `SpeechSynthesis` (en-US), un composant qui permet aux programmes de vocaliser leur contenu textuel (normalement grâce au synthétiseur vocal par défaut de l'appareil). Differents types de voix sont disponibles dans les objets `SpeechSynthesisVoice` (en-US), et les différentes parties de texte à vocaliser sont interprétés par les objets `SpeechSynthesisUtterance`. On peut les faire vocaliser en les passant à la méthode `SpeechSynthesis.speak()` (en-US).

Pour plus de détails concernant ces fonctionnalités, voir Using the Web Speech API.

Les interfaces de l'API Web Speech
----------------------------------

### Le reconnaissance vocale

`SpeechRecognition`

L'interface de contrôle de l'outil de reconnaissance; elle traite aussi le `SpeechRecognitionEvent` (en-US) reçu de l'outil de reconnaissance.

`SpeechRecognitionAlternative` (en-US)

Représente un mot unique qui a été reconnu par l'outil de reconnaissane vocale.

`SpeechRecognitionError` (en-US)

Répresente les messages d'erreur de l'outil de reconnaissance vocale.

`SpeechRecognitionEvent` (en-US)

L'objet événement pour les événements `result` (en-US) et `nomatch` (en-US), et contient toutes les données associées avec un résultat de reconnaissance vocale intermédiaire ou définitif.

`SpeechGrammar` (en-US)

Les mots ou schémas de mots que l'on demande à l'outil de reconnaissance vocale de reconnaître.

`SpeechGrammarList` (en-US)

Répresente une liste des objets `SpeechGrammar` (en-US).

`SpeechRecognitionResult` (en-US)

Répresente une unique reconnaissance réussie, qui peut contenir plusieurs objets `SpeechRecognitionAlternative` (en-US).

`SpeechRecognitionResultList` (en-US)

Répresente une liste d'objets `SpeechRecognitionResult` (en-US), ou bien un seul si les résultats sont récupérés en mode `continuous` (en-US).

### La synthèse vocale

`SpeechSynthesis` (en-US)

L'interface de contrôle de l'outil de vocalisation; elle peut être utiliser pour rechercher des informations concernant les voix de synthèse disponible dans l'appareil, le démarrage et l'interruption de la vocalisation, et les commandes complémentaires.

`SpeechSynthesisErrorEvent` (en-US)

Contient les informations concernant toutes les erreurs qui se produisent pendant le traitement des objets `SpeechSynthesisUtterance` dans l'outil de synthèse vocale.

`SpeechSynthesisEvent` (en-US)

Contient les informations concernant l'état actuel des objets `SpeechSynthesisUtterance` qui ont été traités par l'outil de synthèse vocale.

`SpeechSynthesisUtterance`

Répresente une requête de synthèse vocale. Il contient le contenu que l'outil de synthèse vocale devrait vocaliser et les informations sur comment le vocaliser (e.g. langue, ton et volume).


`SpeechSynthesisVoice` (en-US)

Représente une voix qui est supportée par le système. Chaque `SpeechSynthesisVoice` a son propre outil de synthèse vocale incluant les informations concernant la langue, le nom et l'URI.

`Window.speechSynthesis` (en-US)

Spécifiée comme une partie de l'interface `[NoInterfaceObject]` intitulée `SpeechSynthesisGetter`, et implémentée par l'objet `Window`, la propriété `speechSynthesis` fournit l'accès au controleur `SpeechSynthesis` (en-US), et de ce fait un point d'entrée à la fonctionnalité de synthèse vocale.

Exemples
--------

Le Web Speech API repo sur GitHub contient des démos qui illustrent la reconnaissance vocale et la synthèse vocale.

Spécifications
--------------

| Specification |
| --- |
| Web Speech API # speechreco-section |
| Web Speech API # tts-section |

Compatibilité des navigateurs
-----------------------------

### api.SpeechRecognition

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

### api.SpeechSynthesis

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* Using the Web Speech API
* Article sur le site SitePoint
* Article HTML5Rocks
* Demo [aurelio.audero.it]