SpeechRecognition
Ограниченная доступность
Эта функция не относится к Baseline, так как она не работает во всех широко используемых браузерах.
Интерфейс SpeechRecognition API речи веб-приложений — это интерфейс-контроллер для сервиса распознавания; он также обрабатывает событие SpeechRecognitionEvent, отправленное сервисом распознавания.
Примечание: В некоторых браузерах, например, Chrome, использование распознавания речи на веб-странице подразумевает использование серверного движка распознавания. Ваш аудиосигнал отправляется на веб-сервис для обработки распознавания, поэтому он не будет работать офлайн.
Конструктор
SpeechRecognition()-
Создаёт новый объект
SpeechRecognition.
Свойства экземпляра
SpeechRecognition также наследует свойства от родительского интерфейса, EventTarget.
SpeechRecognition.grammars-
Возвращает и задаёт коллекцию объектов
SpeechGrammar, представляющих грамматики, которые будет понимать текущийSpeechRecognition. SpeechRecognition.lang-
Возвращает и задаёт язык текущего
SpeechRecognition. Если не указан, по умолчанию используется значение атрибута HTMLlang, или язык пользователя, если он не задан. SpeechRecognition.continuous-
Управляет тем, возвращаются ли непрерывные результаты для каждого распознавания, или только один результат. По умолчанию — один (
false). SpeechRecognition.interimResults-
Управляет тем, должны ли возвращаться промежуточные результаты (
true) или нет (false). Промежуточные результаты — это результаты, которые ещё не окончательные (например, свойствоSpeechRecognitionResult.isFinalимеет значениеfalse). SpeechRecognition.maxAlternatives-
Задает максимальное количество
SpeechRecognitionAlternativeна результат. Значение по умолчанию — 1.
Методы экземпляра
SpeechRecognition также наследует методы от родительского интерфейса, EventTarget.
SpeechRecognition.abort()-
Останавливает службу распознавания речи от прослушивания входящего аудио, и не пытается вернуть
SpeechRecognitionResult. SpeechRecognition.start()-
Запускает службу распознавания речи, прослушивая входящий аудиосигнал с целью распознать грамматики, связанные с текущим
SpeechRecognition. SpeechRecognition.stop()-
Останавливает службу распознавания речи от прослушивания входящего аудио, и пытается вернуть
SpeechRecognitionResultс использованием захваченного аудио.
События
Подключайтесь к этим событиям с помощью addEventListener() или назначив обработчик событий свойству oneventname этого интерфейса.
audiostart-
Срабатывает, когда пользовательский агент начал захват аудио. Также доступно через свойство
onaudiostart. audioend-
Срабатывает, когда пользовательский агент завершил захват аудио. Также доступно через свойство
onaudioend. end-
Срабатывает, когда служба распознавания речи отключилась. Также доступно через свойство
onend. error-
Срабатывает при возникновении ошибки распознавания речи. Также доступно через свойство
onerror. nomatch-
Срабатывает, когда служба распознавания речи возвращает окончательный результат без значимого распознавания. Это может включать некоторую степень распознавания, которая не соответствует или не превышает порог
confidence. Также доступно через свойствоonnomatch. result-
Срабатывает, когда служба распознавания речи возвращает результат — слово или фраза были распознаны положительно, и это было сообщено приложению. Также доступно через свойство
onresult. soundstart-
Срабатывает, когда был обнаружен любой звук — распознаваемая речь или нет. Также доступно через свойство
onsoundstart. soundend-
Срабатывает, когда обнаружение любого звука — распознаваемой речи или нет — прекратилось. Также доступно через свойство
onsoundend. speechstart-
Срабатывает, когда звук, распознанный службой распознавания речи как речь, был обнаружен. Также доступно через свойство
onspeechstart. speechend-
Срабатывает, когда речь, распознанная службой распознавания речи, перестала обнаруживаться. Также доступно через свойство
onspeechend. start-
Срабатывает, когда служба распознавания речи начала прослушивать входящий аудиосигнал с целью распознать грамматики, связанные с текущим
SpeechRecognition. Также доступно через свойствоonstart.
Примеры
В нашем простом примере изменения цвета при речи мы создаём новый экземпляр объекта SpeechRecognition с помощью конструктора SpeechRecognition(), создаём новый SpeechGrammarList и устанавливаем его в качестве грамматики, которая будет распознаваться экземпляром SpeechRecognition с помощью свойства SpeechRecognition.grammars.
После определения других значений, мы устанавливаем распознавание так, чтобы оно запускалось при событии клика (см. SpeechRecognition.start()). Когда результат успешно распознан, срабатывает событие result, мы извлекаем цвет, который был произнесён из объекта события, а затем устанавливаем цвет фона элемента <html> на этот цвет.
const 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 ;";
const recognition = new SpeechRecognition();
const speechRecognitionList = new SpeechGrammarList();
speechRecognitionList.addFromString(grammar, 1);
recognition.grammars = speechRecognitionList;
recognition.continuous = false;
recognition.lang = "en-US";
recognition.interimResults = false;
recognition.maxAlternatives = 1;
const diagnostic = document.querySelector(".output");
const bg = document.querySelector("html");
document.body.onclick = () => {
recognition.start();
console.log("Ready to receive a color command.");
};
recognition.onresult = (event) => {
const color = event.results[0][0].transcript;
diagnostic.textContent = `Result received: ${color}`;
bg.style.backgroundColor = color;
};
Спецификации
| Спецификация |
|---|
| Web Speech API # speechreco-section |
Совместимость браузеров
| Настольные компьютеры | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
SpeechRecognition |
33 | 79 | No | No | 14.1 | 33 | No | No | 14.5 | 2.0 | 37 |
SpeechRecognition |
33Вам нужно будет разместить свой код на веб-сервере, чтобы распознавание работало. |
79Вам нужно будет разместить свой код на веб-сервере, чтобы распознавание работало. |
No | 20Вам нужно будет разместить свой код на веб-сервере, чтобы распознавание работало. |
14.1 | 33Вам нужно будет разместить свой код на веб-сервере, чтобы распознавание работало. |
No | 20Вам нужно будет разместить свой код на веб-сервере, чтобы распознавание работало. |
14.5 | 2.0Вам нужно будет разместить свой код на веб-сервере, чтобы распознавание работало. |
4.4.3Вам нужно будет разместить свой код на веб-сервере, чтобы распознавание работало. |
abort |
33 | 79 | No | 20 | 14.1 | 33 | No | 20 | 14.5 | 2.0 | 4.4.3 |
audioend_event |
33 | 79 | No | 20 | 14.1 | 33 | No | 20 | 14.5 | 2.0 | 4.4.3 |
audiostart_event |
33 | 79 | No | 20 | 14.1 | 33 | No | 20 | 14.5 | 2.0 | 4.4.3 |
continuous |
33 | 79 | No | 20 | 14.1 | 33 | No | 20 | 14.5 | 2.0 | 4.4.3 |
end_event |
33 | 79 | No | 20 | 14.1 | 33 | No | 20 | 14.5 | 2.0 | 4.4.3 |
error_event |
33 | 79 | No | 20 | 14.1 | 33 | No | 20 | 14.5 | 2.0 | 4.4.3 |
grammars |
33 | 79 | No | 20 | No | 33 | No | 20 | No | 2.0 | 4.4.3 |
interimResults |
33 | 79 | No | 20 | 14.1 | 33 | No | 20 | 14.5 | 2.0 | 4.4.3 |
lang |
33 | 79 | No | 20 | 14.1 | 33 | No | 20 | 14.5 | 2.0 | 4.4.3 |
maxAlternatives |
33 | 79 | No | 20 | 14.1 | 33 | No | 20 | 14.5 | 2.0 | 4.4.3 |
nomatch_event |
33 | 79 | No | 20 | 14.1 | 33 | No | 20 | 14.5 | 2.0 | 4.4.3 |
result_event |
33 | 79 | No | 20 | 14.1 | 33 | No | 20 | 14.5 | 2.0 | 4.4.3 |
soundend_event |
33 | 79 | No | 20 | 14.1 | 33 | No | 20 | 14.5 | 2.0 | 4.4.3 |
soundstart_event |
33 | 79 | No | 20 | 14.1 | 33 | No | 20 | 14.5 | 2.0 | 4.4.3 |
speechend_event |
33 | 79 | No | 20 | 14.1 | 33 | No | 20 | 14.5 | 2.0 | 4.4.3 |
speechstart_event |
33 | 79 | No | 20 | 14.1 | 33 | No | 20 | 14.5 | 2.0 | 4.4.3 |
start |
33 | 79 | No | 20 | 14.1 | 33 | No | 20 | 14.5 | 2.0 | 4.4.3 |
start_event |
33 | 79 | No | 20 | 14.1 | 33 | No | 20 | 14.5 | 2.0 | 4.4.3 |
stop |
33 | 79 | No | 20 | 14.1 | 33 | No | 20 | 14.5 | 2.0 | 4.4.3 |
См. также
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/SpeechRecognition