SpeechGrammarList - 表示 SpeechGrammar 对象的列表

这是一个实验中的功能
此功能某些浏览器尚在开发中,请参考浏览器兼容性表格以得到在不同浏览器中适合使用的前缀。由于该功能对应的标准文档可能被重新修订,所以在未来版本的浏览器中该功能的语法和行为可能随之改变。

SpeechGrammarListWeb Speech API 的接口,表示 SpeechGrammar 对象的列表,其中包含希望识别服务识别的单词。

语法是使用 JSpeech 语法格式JSGF)定义的。将来也可能支持其他格式。

构造函数

SpeechGrammarList.SpeechGrammarList()

创建一个新的 SpeechGrammarList 对象。

属性

SpeechGrammarList.length 只读

返回包含在 SpeechGrammarList 中的 SpeechGrammar 对象的数量。

方法

SpeechGrammarList.item()

标准 getter - 允许使用数组语法从 SpeechGrammarList 中检索单个 SpeechGrammar 对象。

SpeechGrammarList.addFromURI()

采取特定 URI 上存在的语法,并将其作为新的 SpeechGrammar 对象添加到 SpeechGrammarList 中。

SpeechGrammarList.addFromString()

获取代码库中特定 DOMString 中的语法(例如存储在变量中),并将其作为新的 SpeechGrammar 对象添加到 SpeechGrammarList 中。

实例

在我们简单的语音颜色更改器实例中,我们使用 SpeechRecognition() 构造函数创建一个新的 SpeechRecognition 对象实例,创建一个新的 SpeechGrammarList,然后使用 SpeechGrammarList.addFromString 方法向其添加语法字符串,并使用 SpeechRecognition.grammars 属性将其设置为 SpeechRecognition 实例要识别的语法。

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;

规范

规范 状态 备注
Web Speech API
SpeechGrammarList() 的定义
草稿 -

桌面浏览器兼容性

特性ChromeEdgeFirefoxInternet ExplorerOperaSafari
基础支持33 webkit 1 未知 不支持 不支持 不支持 不支持
SpeechGrammarList() 构造函数33 webkit 1 未知 不支持 不支持 不支持 不支持
addFromString33 webkit 1 未知 不支持 不支持 不支持 不支持
addFromURI33 webkit 1 未知 不支持 不支持 不支持 不支持
item33 webkit 未知 不支持 不支持 不支持 不支持
length33 webkit 1 未知 不支持 不支持 不支持 不支持

移动浏览器兼容性

特性AndroidChrome for AndroidEdge mobileFirefox for AndroidIE mobileOpera AndroidiOS Safari
基础支持 支持 webkit 1 支持 webkit 1 未知 不支持 未知 不支持 不支持
SpeechGrammarList() 构造函数 支持 webkit 1 支持1 未知 不支持 未知 不支持 不支持
addFromString 支持 webkit 1 支持 webkit 1 未知 不支持 未知 不支持 不支持
addFromURI 支持 webkit 1 支持 webkit 1 未知 不支持 未知 不支持 不支持
item 支持 webkit 1 支持 webkit 未知 不支持 未知 不支持 不支持
length 支持 webkit 1 支持 webkit 1 未知 不支持 未知 不支持 不支持

1. 您需要将代码放到网络服务器上,以便识别服务能够工作。

Firefox OS 权限

要在应用中使用语音识别,您需要在 manifest 中指定以下权限:

"permissions": {
  "audio-capture" : {
    "description" : "Audio capture"
  },
  "speech-recognition" : {
    "description" : "Speech recognition"
  }
}

您还需要一个特权应用程序,因此您还需要包括以下内容:

  "type": "privileged"

相关链接