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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
|
---
title: SpeechRecognition
slug: Web/API/SpeechRecognition
translation_of: Web/API/SpeechRecognition
---
<p>{{APIRef("Web Speech API")}}{{SeeCompatTable}}</p>
<p><font face="consolas, Liberation Mono, courier, monospace">Интерфейс<strong> Распознавание голоса</strong></font> <a href="/en-US/docs/Web/API/Web_Speech_API">Web Speech API</a> является интерфейсом контроллера для сервиса распознавания; который так же перехватывает событие {{domxref("SpeechRecognitionEvent")}}, отправленное сервисом распознавания.</p>
<h2 id="Конструктор">Конструктор</h2>
<dl>
<dt>{{domxref("SpeechRecognition.SpeechRecognition()")}}</dt>
<dd>Создаёт новый <font face="consolas, Liberation Mono, courier, monospace">объект </font><code>SpeechRecognition</code> .</dd>
</dl>
<h2 id="Свойства">Свойства</h2>
<p><em><code>SpeechRecognition</code> наследует свойства от своего родительского интерфейса, {{domxref("EventTarget")}}.</em></p>
<dl>
<dt>{{domxref("SpeechRecognition.grammars")}}</dt>
<dd>Возвращает и устанавливает коллекцию объектов {{domxref("SpeechGrammar")}} грамматики которые будут понятны текущему <code>SpeechRecognition</code>.</dd>
<dt>{{domxref("SpeechRecognition.lang")}}</dt>
<dd>Задаёт и возвращает язык текущего <code>SpeechRecognition</code>. Если данное свойство не указано по умолчанию, то используется из HTML кода значение атрибута {{htmlattrxref("lang","html")}} , или настройки языка агента текущего пользователя.</dd>
<dt>{{domxref("SpeechRecognition.continuous")}}</dt>
<dd>Проверяет возвращается ли непрерывные результаты или вернулся только один. По умолчанию для одиночного значение (<code>false</code>.)</dd>
<dt>{{domxref("SpeechRecognition.interimResults")}}</dt>
<dd>Контроллирует, следует ли возвращать промежуточные результаты (<code>true</code>) или нет (<code>false</code>.) Промежуточные результаты это результаты которые ещё не завершены ( например {{domxref("SpeechRecognitionResult.isFinal")}} свойство <font face="consolas, Liberation Mono, courier, monospace">ложно</font>.)</dd>
<dt>{{domxref("SpeechRecognition.maxAlternatives")}}</dt>
<dd>Устанавливает максимальное количество предоставленных результатов {{domxref("SpeechRecognitionAlternative")}}. По умолчанию значение 1.</dd>
<dt>{{domxref("SpeechRecognition.serviceURI")}}</dt>
<dd>Определяет местоположение службы распознавания речи, используемой текущим SpeechRecognition, для обработки фактического распознавания. По умолчанию используется речевая служба агента пользователя.</dd>
</dl>
<h3 id="Обработчики_событий">Обработчики событий</h3>
<dl>
<dt>{{domxref("SpeechRecognition.onaudiostart")}}</dt>
<dd>Вызывается когда пользовательский агент начал захват аудио.</dd>
<dt>{{domxref("SpeechRecognition.onaudioend")}}</dt>
<dd>Вызывается когда пользовательский агент закончил захват аудио.</dd>
<dt>{{domxref("SpeechRecognition.onend")}}</dt>
<dd>Вызывается когда служба распознавания речи отключилась.</dd>
<dt>{{domxref("SpeechRecognition.onerror")}}</dt>
<dd>Вызывается когда произошла ошибка распознавания речи.</dd>
<dt>{{domxref("SpeechRecognition.onnomatch")}}</dt>
<dd>Вызывается, когда служба распознавания речи возвращает окончательный результат без существенного распознавания. Это может включать определённую степень признания {{domxref("SpeechRecognitionAlternative.confidence","confidence")}} которая не соответствует пороговому значению или превышает его.</dd>
<dt>{{domxref("SpeechRecognition.onresult")}}</dt>
<dd>Вызывается когда возвращает результат — слово или фраза были распознаны положительно, и это было передано обратно в приложение.</dd>
<dt>{{domxref("SpeechRecognition.onsoundstart")}}</dt>
<dd>Вызывается при обнаружении любого звука - не важно, распознана речь или нет.</dd>
<dt>{{domxref("SpeechRecognition.onsoundend")}}</dt>
<dd>Вызывается когда любой звук — распознаваемая речь или нет — перестала распознаваться.</dd>
<dt>{{domxref("SpeechRecognition.onspeechstart")}}</dt>
<dd>Вызывается, когда обнаружен звук, распознаваемый службой распознавания речи как речевой сигнал.</dd>
<dt>{{domxref("SpeechRecognition.onspeechend")}}</dt>
<dd>Вызывается, когда прекращается обнаружение речи, распознанной службой распознавания речи.</dd>
<dt>{{domxref("SpeechRecognition.onstart")}}</dt>
<dd>Вызывается, когда служба распознавания речи начинает обрабатывать входящий звук с намерением распознать грамматики, связанные с текущим распознаванием речи.</dd>
</dl>
<h2 id="Методы">Методы</h2>
<p><em><font face="consolas, Liberation Mono, courier, monospace">Распознавание речи также наследует методы от своего родительского интерфейса</font>, {{domxref("EventTarget")}}.</em></p>
<dl>
<dt>{{domxref("SpeechRecognition.abort()")}}</dt>
<dd>Останавливает обработку входящего аудио службой распознавания речи и не пытается вернуть {{domxref("SpeechRecognitionResult")}}.</dd>
<dt>{{domxref("SpeechRecognition.start()")}}</dt>
<dd>Запускает службу распознавания речи, прослушивая входящее аудио с целью распознавания грамматик, связанных с текущим распознаванием речи.</dd>
<dt>{{domxref("SpeechRecognition.stop()")}}</dt>
<dd>Останавливает обработку входящего аудио службой распознавания речи и пытается вернуть {{domxref("SpeechRecognitionResult")}} Используя уже записанный звук.</dd>
</dl>
<h2 id="Примеры">Примеры</h2>
<p>В нашем простом примере <a href="https://github.com/mdn/web-speech-api/tree/master/speech-color-changer">Speech color changer</a> , мы создаём новый объект экземпляра <code>SpeechRecognition</code> используя этот конструктор {{domxref("SpeechRecognition.SpeechRecognition", "SpeechRecognition()")}} , создание нового {{domxref("SpeechGrammarList")}}, И установить его в качестве грамматики, которая будет распознаваться экземпляром распознавание речи с использованием свойства {{domxref("SpeechRecognition.grammars")}}.</p>
<p>После определения некоторых других значений мы затем устанавливаем их так, чтобы служба распознавания началась когда произошло событие по клику ( {{domxref("SpeechRecognition.start()")}}.) Когда результат был успешно распознан, the {{domxref("SpeechRecognition.onresult")}} обработчик извлекаем цвет, который был произнесён из события, а затем меняем цвет фона на данный цвет {{htmlelement("html")}}.</p>
<pre class="brush: js">var grammar = '#JSGF V1.0; grammar colors; public <color> = aqua | azure | beige | bisque | black | blue | brown | chocolate | coral | crimson | cyan | fuchsia | ghostwhite | gold | goldenrod | gray | green | indigo | ivory | khaki | lavender | lime | linen | magenta | maroon | moccasin | navy | olive | orange | orchid | peru | pink | plum | purple | red | salmon | sienna | silver | snow | tan | teal | thistle | tomato | turquoise | violet | white | yellow ;'
var recognition = new SpeechRecognition();
var speechRecognitionList = new SpeechGrammarList();
speechRecognitionList.addFromString(grammar, 1);
recognition.grammars = speechRecognitionList;
//recognition.continuous = false;
recognition.lang = 'en-US';
recognition.interimResults = false;
recognition.maxAlternatives = 1;
var diagnostic = document.querySelector('.output');
var bg = document.querySelector('html');
document.body.onclick = function() {
recognition.start();
console.log('Ready to receive a color command.');
}
recognition.onresult = function(event) {
var color = event.results[0][0].transcript;
diagnostic.textContent = 'Result received: ' + color;
bg.style.backgroundColor = color;
}</pre>
<h2 id="Specifications">Specifications</h2>
<table class="standard-table">
<tbody>
<tr>
<th scope="col">Спецификация</th>
<th scope="col">Статус</th>
<th scope="col">Комментарии</th>
</tr>
<tr>
<td>{{SpecName('Web Speech API', '#speechreco-section', 'SpeechRecognition')}}</td>
<td>{{Spec2('Web Speech API')}}</td>
<td> </td>
</tr>
</tbody>
</table>
<h2 id="Совместимость_браузеров">Совместимость браузеров</h2>
<div>Таблица совместимостей</div>
<div id="compat-desktop">
<table class="compat-table">
<tbody>
<tr>
<th>Feature</th>
<th>Chrome</th>
<th>Firefox (Gecko)</th>
<th>Internet Explorer</th>
<th>Opera</th>
<th>Safari (WebKit)</th>
</tr>
<tr>
<td>Базовая поддержка</td>
<td>CompatChrome(33)}}property_prefix("webkit")<sup>[1]</sup></td>
<td>Не совместима<sup>[2]</sup></td>
<td>Не совместима</td>
<td>Не совместима</td>
<td>Не совместима</td>
</tr>
<tr>
<td><code>постоянная</code></td>
<td>CompatChrome(33) <sup>[1]</sup></td>
<td>Не совместима</td>
<td>Не совместима</td>
<td>Не совместима</td>
<td>Не совместима</td>
</tr>
</tbody>
</table>
</div>
<div id="compat-mobile">
<table class="compat-table">
<tbody>
<tr>
<th>Feature</th>
<th>Android</th>
<th>Chrome</th>
<th>Firefox Mobile (Gecko)</th>
<th>Firefox OS</th>
<th>IE Phone</th>
<th>Opera Mobile</th>
<th>Safari Mobile</th>
</tr>
<tr>
<td>Basic support</td>
<td>Неизвестно</td>
<td>Неизвестная совместимая версия [1]</td>
<td>Совместим с GeckoMobile(44)</td>
<td>2.5</td>
<td>Не совместима</td>
<td>Не совместима</td>
<td>Не совместима</td>
</tr>
<tr>
<td><code>continuous</code></td>
<td>Неизвестно</td>
<td>Неизвестная совместимая версия[1]</td>
<td>Совместимость неизвестна</td>
<td>Не совместима</td>
<td>Не совместима</td>
<td>Не совместима</td>
<td>Не совместима</td>
</tr>
</tbody>
</table>
</div>
<ul>
<li>[1] Интерфейсы распознавания речи в настоящее время префиксные в Chrome, поэтому вам нужно указать имена интерфейсов, например, префикс. WebkitSpeechRecognition; Вы также должны будете обслуживать свой код через веб-сервер для распознавания работы</li>
<li>[2] Может быть активирована через <code>media.webspeech.recognition.enable</code> флаг в <a>about:config</a> на телефоне. Не реализовано вообще на рабочем столе Firefox - см.{{bug(1248897)}}.</li>
</ul>
<h3 id="Firefox_OS_разрешения">Firefox OS разрешения</h3>
<p>Чтобы использовать распознавание речи в приложении, вам необходимо указать следующие разрешения в своём <a href="/en-US/docs/Web/Apps/Build/Manifest">manifest</a>:</p>
<pre class="brush: json">"permissions": {
"audio-capture" : {
"description" : "Audio capture"
},
"speech-recognition" : {
"description" : "Speech recognition"
}
}</pre>
<p>Вам также нужно привилегированное приложение, поэтому вам необходимо также включить его:</p>
<pre class="brush: json"> "type": "privileged"</pre>
<h2 id="Смотрите_также">Смотрите также</h2>
<ul>
<li><a href="/en-US/docs/Web/API/Web_Speech_API">Web Speech API</a></li>
</ul>
|