SpeechGrammarList - 表示 SpeechGrammar 对象的列表
这是一个实验中的功能
此功能某些浏览器尚在开发中,请参考浏览器兼容性表格以得到在不同浏览器中适合使用的前缀。由于该功能对应的标准文档可能被重新修订,所以在未来版本的浏览器中该功能的语法和行为可能随之改变。
SpeechGrammarList
是 Web 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() 的定义 |
草稿 | - |
桌面浏览器兼容性
特性 | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
基础支持 | 33 webkit 1 | 未知 | 不支持 | 不支持 | 不支持 | 不支持 |
SpeechGrammarList() 构造函数 | 33 webkit 1 | 未知 | 不支持 | 不支持 | 不支持 | 不支持 |
addFromString | 33 webkit 1 | 未知 | 不支持 | 不支持 | 不支持 | 不支持 |
addFromURI | 33 webkit 1 | 未知 | 不支持 | 不支持 | 不支持 | 不支持 |
item | 33 webkit | 未知 | 不支持 | 不支持 | 不支持 | 不支持 |
length | 33 webkit 1 | 未知 | 不支持 | 不支持 | 不支持 | 不支持 |
移动浏览器兼容性
特性 | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS 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"