javascript - Web语音API语法

标签 javascript ecmascript-6 speech-recognition webspeech-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 specification 的一组规则的字符串. MDN 有更“通俗易懂”的解释也是关于这个主题的。

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

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

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

但是现在来谈谈这个的实用性:我玩过 the MDN Speech Recognition Demo有点,我不认为浏览器真的在使用语法(还)。如果你看看its source code , 它永远不会调用 recognition.onnomatch功能,让语法对我来说有点无用。它也不会显示在结果中,最后您只能检索到语音文本的抄本 - 至少在 Chrome 中是这样。

我对此(2020 年年中)的结论是,您现在并不真正需要它。也许它在未来会有帮助,但作为 Can I use... table (仍然)看起来很红,我怀疑这将是用语音做事的最终方式。

关于javascript - Web语音API语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62993198/

相关文章:

.net - Microsoft.Speech 通用语言语法

java - 如何查询默认的 SpeechRecognizer

javascript - 使用 TABS 时 DataTable.js 无法正确加载

javascript - 将字符串解析为 DOM,ng-click 不起作用

javascript - 是否可以在不进行转译的情况下使用 Ecmascript5 脚本中的 Ecmascript6 脚本?

安卓, Kotlin 。 SpeechRecognizer 由于某种原因无法正常工作

javascript - 从类中新创建的对象返回未定义

javascript - Highcharts 中plotBackgroundImage 的大小和偏移量

javascript - 解构对象内数组内的对象

javascript - 路由端点内部/外部的Node.js,Express和对象实例化