Я хочу, чтобы мой результат был одним словом и только из grammar
, но он дает результат из всего словаря.
Этот фрагмент кода взят из здесь . Чтобы узнать больше о грамматике веб-речевого API, вы можете проверить эту ссылку .
var SpeechRecognition = SpeechRecognition || webkitSpeechRecognition
var SpeechGrammarList = SpeechGrammarList || webkitSpeechGrammarList
var SpeechRecognitionEvent = SpeechRecognitionEvent || webkitSpeechRecognitionEvent
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
recognition.onresult = (event) => console.log('result => ', event.results[0][0].transcript)
recognition.onspeechend = () => recognition.stop()
recognition.onnomatch = () => console.log('No match')
recognition.onerror = (error) => console.error(error)
recognition.start()
Если вы тестируете этот код на своей локальной машине, не забудьте дать микрофонсначала разрешение.