blob: 02dc3bd9e6315cf0512ef24498a59218f2e49cef (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
|
---
title: SpeechSynthesisUtterance
slug: Web/API/SpeechSynthesisUtterance
translation_of: Web/API/SpeechSynthesisUtterance
---
{{APIRef("Web Speech API")}}{{SeeCompatTable}}
L'interface **`SpeechSynthesisUtterance`** de l'[API Web Speech](/en-US/docs/Web/API/Web_Speech_API) représente une requète de synthèse vocale. Elle contient le contenu du service permettant de définir la façon dont elle sera lu (langue, hauteur et volume).
## Constructor
- {{domxref("SpeechSynthesisUtterance.SpeechSynthesisUtterance()")}}
- : Retourne une nouvelle instance de l'objet `SpeechSynthesisUtterance`.
## Properties
_`SpeechSynthesisUtterance` hérite également des propriétés de son interface parente, {{domxref("EventTarget")}}._
- {{domxref("SpeechSynthesisUtterance.lang")}}
- : Gets and sets the language of the utterance.
- {{domxref("SpeechSynthesisUtterance.pitch")}}
- : Gets and sets the pitch at which the utterance will be spoken at.
- {{domxref("SpeechSynthesisUtterance.rate")}}
- : Gets and sets the speed at which the utterance will be spoken at.
- {{domxref("SpeechSynthesisUtterance.text")}}
- : Gets and sets the text that will be synthesised when the utterance is spoken.
- {{domxref("SpeechSynthesisUtterance.voice")}}
- : Gets and sets the voice that will be used to speak the utterance.
- {{domxref("SpeechSynthesisUtterance.volume")}}
- : Gets and sets the volume that the utterance will be spoken at.
### Event handlers
- {{domxref("SpeechSynthesisUtterance.onboundary")}}
- : Fired when the spoken utterance reaches a word or sentence boundary.
- {{domxref("SpeechSynthesisUtterance.onend")}}
- : Fired when the utterance has finished being spoken.
- {{domxref("SpeechSynthesisUtterance.onerror")}}
- : Fired when an error occurs that prevents the utterance from being succesfully spoken.
- {{domxref("SpeechSynthesisUtterance.onmark")}}
- : Fired when the spoken utterance reaches a named SSML "mark" tag.
- {{domxref("SpeechSynthesisUtterance.onpause")}}
- : Fired when the utterance is paused part way through.
- {{domxref("SpeechSynthesisUtterance.onresume")}}
- : Fired when a paused utterance is resumed.
- {{domxref("SpeechSynthesisUtterance.onstart")}}
- : Fired when the utterance has begun to be spoken.
## Examples
Dans notre exemple basique de [démonstration de synthèse vocale](https://github.com/mdn/web-speech-api/tree/master/speak-easy-synthesis), nous commençons par récupérer une référence du controller SpeechSynthesis en utilisant `window.speechSynthesis`.
Après avoir définit les variables nécessaires, nous récupérons une liste des voix disponibles en utilisant {{domxref("SpeechSynthesis.getVoices()")}} puis nous alimentons un menu avec celle-ci.
L'utilisateur pourra ensuite choisir la voix qu'il souhaite.
À l'intérieur du handler `inputForm.onsubmit` :
- Nous stoppons la soumission du formulaire avec [preventDefault()](/en-US/docs/Web/API/Event/preventDefault);
- Nous utilisons le constructeur {{domxref("SpeechSynthesisUtterance.SpeechSynthesisUtterance()", "constructor")}} pour créer une nouvelle instance contenant le texte de l'{{htmlelement("input")}};
- Nous positionnons {{domxref("SpeechSynthesisUtterance.voice","voice")}} sur la voix sélectionnée dans le {{htmlelement("select")}};
- Nous démarrons la synthèse vocale via la méthode {{domxref("SpeechSynthesis.speak()")}}
```js
var synth = window.speechSynthesis;
var inputForm = document.querySelector('form');
var inputTxt = document.querySelector('input');
var voiceSelect = document.querySelector('select');
var voices = synth.getVoices();
for(i = 0; i < voices.length ; i++) {
var option = document.createElement('option');
option.textContent = voices[i].name + ' (' + voices[i].lang + ')';
option.setAttribute('data-lang', voices[i].lang);
option.setAttribute('data-name', voices[i].name);
voiceSelect.appendChild(option);
}
inputForm.onsubmit = function(event) {
event.preventDefault();
var utterThis = new SpeechSynthesisUtterance(inputTxt.value);
var selectedOption = voiceSelect.selectedOptions[0].getAttribute('data-name');
for(i = 0; i < voices.length ; i++) {
if(voices[i].name === selectedOption) {
utterThis.voice = voices[i];
}
}
synth.speak(utterThis);
inputTxt.blur();
}
```
## Spécifications
| Spécification | Statut | Commentaire |
| ---------------------------------------------------------------------------------------------------------------- | ------------------------------------ | ----------- |
| {{SpecName('Web Speech API', '#utterance-attributes', 'SpeechSynthesisUtterance')}} | {{Spec2('Web Speech API')}} | |
## Compatibilité des navigateurs
{{Compat("api.SpeechSynthesisUtterance")}}
## Voir aussi
- [Web Speech API](/fr/docs/Web/API/Web_Speech_API)
|