SpeechRecognition
=================

**Экспериментальная возможность:** **Это экспериментальная технология**  
Так как спецификация этой технологии ещё не стабилизировалась, смотрите таблицу совместимости по поводу использования в различных браузерах. Также заметьте, что синтаксис и поведение экспериментальной технологии может измениться в будущих версиях браузеров, вслед за изменениями спецификации.

Интерфейс **Распознавание голоса** Web Speech API является интерфейсом контроллера для сервиса распознавания; который так же перехватывает событие `SpeechRecognitionEvent` (en-US), отправленное сервисом распознавания.

Конструктор
-----------

`SpeechRecognition.SpeechRecognition()` (en-US)

Создаёт новый объект `SpeechRecognition` .

Свойства
--------

*`SpeechRecognition` наследует свойства от своего родительского интерфейса, `EventTarget`.*

`SpeechRecognition.grammars` (en-US)

Возвращает и устанавливает коллекцию объектов `SpeechGrammar` грамматики которые будут понятны текущему `SpeechRecognition`.

`SpeechRecognition.lang` (en-US)

Задаёт и возвращает язык текущего `SpeechRecognition`. Если данное свойство не указано по умолчанию, то используется из HTML кода значение атрибута `lang` , или настройки языка агента текущего пользователя.

`SpeechRecognition.continuous` (en-US)

Проверяет возвращается ли непрерывные результаты или вернулся только один. По умолчанию для одиночного значение (`false`.)

`SpeechRecognition.interimResults` (en-US)

Контроллирует, следует ли возвращать промежуточные результаты (`true`) или нет (`false`.) Промежуточные результаты это результаты которые ещё не завершены ( например `SpeechRecognitionResult.isFinal` (en-US) свойство ложно.)

`SpeechRecognition.maxAlternatives` (en-US)

Устанавливает максимальное количество предоставленных результатов `SpeechRecognitionAlternative` (en-US). По умолчанию значение 1.

`SpeechRecognition.serviceURI`

Определяет местоположение службы распознавания речи, используемой текущим SpeechRecognition, для обработки фактического распознавания. По умолчанию используется речевая служба агента пользователя.

### Обработчики событий

`SpeechRecognition.onaudiostart` (en-US)

Вызывается когда пользовательский агент начал захват аудио.

`SpeechRecognition.onaudioend` (en-US)

Вызывается когда пользовательский агент закончил захват аудио.

`SpeechRecognition.onend` (en-US)

Вызывается когда служба распознавания речи отключилась.

`SpeechRecognition.onerror` (en-US)

Вызывается когда произошла ошибка распознавания речи.

`SpeechRecognition.onnomatch` (en-US)

Вызывается, когда служба распознавания речи возвращает окончательный результат без существенного распознавания. Это может включать определённую степень признания `confidence` (en-US) которая не соответствует пороговому значению или превышает его.

`SpeechRecognition.onresult` (en-US)

Вызывается когда возвращает результат — слово или фраза были распознаны положительно, и это было передано обратно в приложение.

`SpeechRecognition.onsoundstart` (en-US)

Вызывается при обнаружении любого звука - не важно, распознана речь или нет.

`SpeechRecognition.onsoundend` (en-US)

Вызывается когда любой звук — распознаваемая речь или нет — перестала распознаваться.

`SpeechRecognition.onspeechstart` (en-US)

Вызывается, когда обнаружен звук, распознаваемый службой распознавания речи как речевой сигнал.

`SpeechRecognition.onspeechend` (en-US)

Вызывается, когда прекращается обнаружение речи, распознанной службой распознавания речи.

`SpeechRecognition.onstart` (en-US)

Вызывается, когда служба распознавания речи начинает обрабатывать входящий звук с намерением распознать грамматики, связанные с текущим распознаванием речи.

Методы
------

*Распознавание речи также наследует методы от своего родительского интерфейса, `EventTarget`.*

`SpeechRecognition.abort()` (en-US)

Останавливает обработку входящего аудио службой распознавания речи и не пытается вернуть `SpeechRecognitionResult` (en-US).

`SpeechRecognition.start()` (en-US)

Запускает службу распознавания речи, прослушивая входящее аудио с целью распознавания грамматик, связанных с текущим распознаванием речи.

`SpeechRecognition.stop()` (en-US)

Останавливает обработку входящего аудио службой распознавания речи и пытается вернуть `SpeechRecognitionResult` (en-US) Используя уже записанный звук.

Примеры
-------

В нашем простом примере Speech color changer , мы создаём новый объект экземпляра `SpeechRecognition` используя этот конструктор `SpeechRecognition()` (en-US) , создание нового `SpeechGrammarList` (en-US), И установить его в качестве грамматики, которая будет распознаваться экземпляром распознавание речи с использованием свойства `SpeechRecognition.grammars` (en-US).

После определения некоторых других значений мы затем устанавливаем их так, чтобы служба распознавания началась когда произошло событие по клику ( `SpeechRecognition.start()` (en-US).) Когда результат был успешно распознан, the `SpeechRecognition.onresult` (en-US) обработчик извлекаем цвет, который был произнесён из события, а затем меняем цвет фона на данный цвет `<html>`.


```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;
};
```

Спецификации
------------

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

Совместимость с браузерами
--------------------------

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

Смотрите также
--------------

* Web Speech API