--- title: SpeechRecognition slug: Web/API/SpeechRecognition translation_of: Web/API/SpeechRecognition ---
{{APIRef("Web Speech API")}}{{SeeCompatTable}}
Интерфейс Распознавание голоса Web Speech API является интерфейсом контроллера для сервиса распознавания; который так же перехватывает событие {{domxref("SpeechRecognitionEvent")}}, отправленное сервисом распознавания.
SpeechRecognition
.SpeechRecognition
наследует свойства от своего родительского интерфейса, {{domxref("EventTarget")}}.
SpeechRecognition
.SpeechRecognition
. Если данное свойство не указано по умолчанию, то используется из HTML кода значение атрибута {{htmlattrxref("lang","html")}} , или настройки языка агента текущего пользователя.false
.)true
) или нет (false
.) Промежуточные результаты это результаты которые ещё не завершены ( например {{domxref("SpeechRecognitionResult.isFinal")}} свойство ложно.)Распознавание речи также наследует методы от своего родительского интерфейса, {{domxref("EventTarget")}}.
В нашем простом примере Speech color changer , мы создаём новый объект экземпляра SpeechRecognition
используя этот конструктор {{domxref("SpeechRecognition.SpeechRecognition", "SpeechRecognition()")}} , создание нового {{domxref("SpeechGrammarList")}}, И установить его в качестве грамматики, которая будет распознаваться экземпляром распознавание речи с использованием свойства {{domxref("SpeechRecognition.grammars")}}.
После определения некоторых других значений мы затем устанавливаем их так, чтобы служба распознавания началась когда произошло событие по клику ( {{domxref("SpeechRecognition.start()")}}.) Когда результат был успешно распознан, the {{domxref("SpeechRecognition.onresult")}} обработчик извлекаем цвет, который был произнесён из события, а затем меняем цвет фона на данный цвет {{htmlelement("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; }
Спецификация | Статус | Комментарии |
---|---|---|
{{SpecName('Web Speech API', '#speechreco-section', 'SpeechRecognition')}} | {{Spec2('Web Speech API')}} |
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] | Совместимость неизвестна | Не совместима | Не совместима | Не совместима | Не совместима |
media.webspeech.recognition.enable
флаг в about:config на телефоне. Не реализовано вообще на рабочем столе Firefox - см.{{bug(1248897)}}.Чтобы использовать распознавание речи в приложении, вам необходимо указать следующие разрешения в своём manifest:
"permissions": { "audio-capture" : { "description" : "Audio capture" }, "speech-recognition" : { "description" : "Speech recognition" } }
Вам также нужно привилегированное приложение, поэтому вам необходимо также включить его:
"type": "privileged"