SpeechRecognitionResultList - 表示 SpeechRecognitionResult 对象的列表
这是一个实验中的功能
此功能某些浏览器尚在开发中,请参考浏览器兼容性表格以得到在不同浏览器中适合使用的前缀。由于该功能对应的标准文档可能被重新修订,所以在未来版本的浏览器中该功能的语法和行为可能随之改变。
SpeechRecognitionResultList
是 Web Speech API 的接口,表示 SpeechRecognitionResult
对象的列表,如果以 continuous
模式捕获结果,则只包含单个结果对象。
属性
SpeechRecognitionResultList.length
只读
返回 “数组” 的长度 — 列表中 SpeechRecognitionResult
对象的数量。
方法
SpeechRecognitionResultList.item
一个标准的 getter,它允许通过数组语法访问列表中的 SpeechRecognitionResult
对象。
实例
此代码摘自我们的语音颜色更改器实例。
recognition.onresult = function(event) {
// SpeechRecognitionEventresults 属性返回一个 SpeechRecognitiontionResultList 对象
// SpeechRecognitionResultList 对象包含了多个 SpeechRecognitionResultResult 对象。
// 它具有 getter,因此可以像数组一样进行访问
// 第一个 [0] 返回位置 0 处的 SpeechRecognitionResult。
// 每个 SpeechRecognitionResult 对象都包含具有单独结果的 SpeechRecognitionAlternative 对象。
// 它们也有 getter ,因此可以像数组一样对其进行访问。
// 第二个 [0] 返回位置 0 处的 SpeechRecognitionAlternative。
// 然后,我们返回 SpeechRecognitionAlternative 对象的 transcript 属性
var color = event.results[0][0].transcript;
diagnostic.textContent = '收到结果:' + color + '。';
bg.style.backgroundColor = color;
}
规范
规范 | 状态 | 备注 |
---|---|---|
Web Speech API SpeechRecognitionResultList 的定义 |
草稿 | - |
桌面浏览器兼容性
特性 | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
基础支持 | 33 webkit 1 | ≤79 webkit 1 | 不支持 | 不支持 | 不支持 | 不支持 |
item | 33 webkit 1 | ≤79 webkit 1 | 不支持 | 不支持 | 不支持 | 不支持 |
length | 33 webkit 1 | ≤79 webkit 1 | 不支持 | 不支持 | 不支持 | 不支持 |
移动浏览器兼容性
特性 | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS Safari |
---|---|---|---|---|---|---|---|
基础支持 | 支持 webkit 1 | 支持 webkit 1 | 未知 | 不支持 | 未知 | 不支持 | 不支持 |
item | 支持 webkit 1 | 支持 webkit 1 | 未知 | 不支持 | 未知 | 不支持 | 不支持 |
length | 支持 webkit 1 | 支持 webkit 1 | 未知 | 不支持 | 未知 | 不支持 | 不支持 |
1. 您需要将代码放到网络服务器上,以便识别服务能够工作。
Firefox OS 权限
要在应用中使用语音识别,您需要在 manifest 中指定以下权限:
"permissions": {
"audio-capture" : {
"description" : "Audio capture"
},
"speech-recognition" : {
"description" : "Speech recognition"
}
}
您还需要一个特权应用程序,因此您还需要包括以下内容:
"type": "privileged"