SpeechRecognition
Experimental: Это экспериментальная технология
Так как спецификация этой технологии ещё не стабилизировалась, смотрите таблицу совместимости по поводу использования в различных браузерах. Также заметьте, что синтаксис и поведение экспериментальной технологии может измениться в будущих версиях браузеров, вслед за изменениями спецификации.
Интерфейс Распознавание голоса 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>
.
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;
}
Specifications
Спецификация | Статус | Комментарии |
---|---|---|
Web Speech API Определение 'SpeechRecognition' в этой спецификации. |
Черновик |
Совместимость браузеров
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|
Базовая поддержка | CompatChrome(33)}}property_prefix("webkit")[1] | Не совместима[2] | Не совместима | Не совместима | Не совместима |
постоянная |
CompatChrome(33) [1] | Не совместима | Не совместима | Не совместима | Не совместима |
Feature | Android | Chrome | Firefox Mobile (Gecko) | Firefox OS | IE Phone | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|---|
Basic support | Неизвестно | Неизвестная совместимая версия [1] | Совместим с GeckoMobile(44) | 2.5 | Не совместима | Не совместима | Не совместима |
continuous |
Неизвестно | Неизвестная совместимая версия[1] | Совместимость неизвестна | Не совместима | Не совместима | Не совместима | Не совместима |
- [1] Интерфейсы распознавания речи в настоящее время префиксные в Chrome, поэтому вам нужно указать имена интерфейсов, например, префикс. WebkitSpeechRecognition; вы также должны будете обслуживать свой код через веб-сервер для распознавания работы
- [2] Может быть активирована через
media.webspeech.recognition.enable
флаг в about:config на телефоне. Не реализовано вообще на рабочем столе Firefox - см.баг 1248897.
Firefox OS разрешения
Чтобы использовать распознавание речи в приложении, вам необходимо указать следующие разрешения в своём manifest:
"permissions": {
"audio-capture" : {
"description" : "Audio capture"
},
"speech-recognition" : {
"description" : "Speech recognition"
}
}
Вам также нужно привилегированное приложение, поэтому вам необходимо также включить его:
"type": "privileged"