aboutsummaryrefslogtreecommitdiff
path: root/files/ru/web/api/speechrecognition/index.html
blob: 011774ea9aa1d76b100436d790977e1d25d1bb48 (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
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 &lt;color&gt; = 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>