网络语音API语法



有人能告诉我这个是什么吗

const grammar = '#JSGF V1.0; grammar colors; public <color> = aqua | azure | beige | bisque | black | blue | brown | chocolate | coral | crimson | cyan | fuchsia | ghost | white | 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 grammar = '#JSGF V1.0; grammar colors; public <color> = aqua | azure | beige | bisque | black | blue | brown | chocolate | coral | crimson | cyan | fuchsia | ghost | white | 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

如果我想合并我自己的语法,我需要对这一行做什么修改?

该行是遵循JSGF规范的一组规则的字符串。有一个更";用户友好的";MDN对此主题的解释。

基本上,在这种情况下,我们可以将其分解为:

  • #JSGF V1.0;是规范中的一个标头,总是需要知道它应该使用哪个版本。不应该为你改变
  • grammar colors;是语法的(自定义(名称
  • public <color> =创建了一个名为color的公共可访问规则"公开可访问";意味着你的语法可以由其他人导入,并且他们可以访问此规则。color是规则名称。当从另一个规则引用时,这是必要的(稍后的示例(
  • aqua | azure | ...是与此匹配的选项。CCD_ 7表示";或";。因此,当它识别出aquaazure...中的一个时,它匹配该<color>规则

引用的一个更复杂的例子是:#JSGF V1.0; grammar greeting; <greet> = hello | welcome; <name> = Alice | Bob; public <statement> = <greet> <name>;

但现在说到实用性:我已经玩过MDN语音识别演示了一段时间,我认为浏览器还没有真正使用语法。如果你仔细查看它的源代码,它永远不会调用recognition.onnomatch函数,这让语法对我来说有点无用。它也不会出现在结果中,最终你只会检索到口语文本的转录本——至少在Chrome中是这样。

我的结论(2020年年中(是,你现在并不真正需要它。也许它在未来会有所帮助,但作为我能用的。。。桌子(仍然(看起来很红,我怀疑这将是演讲的最后方式。

最新更新