我们在Chrome中使用了webkitSpeechRecognition API。由于这是一个原型应用程序,我们非常乐意仅支持Chrome,因此我们通过window.hasOwnProperty('webkitSpeechRecognition')
检查(suggested by Google)来检测对API的支持。这在Firefox中很快失败,但是新的Opera(基于webkit)报告它确实拥有该属性。事实上,所有代码都按预期运行,除了......没有任何事件被触发,也没有记录任何语音。
所以,我的问题是:我可以以某种方式使它工作吗?它需要一些特殊权限或设置吗?
或者,是否有一种方法(除了良好的旧浏览器嗅探)来检测webkitSpeechRecognition的正确工作支持?
答案 0 :(得分:6)
目前只有谷歌浏览器有流媒体识别API(他们有谷歌sppeech API)。
如果您在Opera上使用https://www.google.com/intl/en/chrome/demos/speech.html,它会告诉您需要Chrome25 +才能执行此操作。
根据http://caniuse.com/#feat=speech-recognition Opera webkit支持此功能,但现在它无效。 Opera没有任何可以即时翻译的API服务。现在只有占位符功能在他们的浏览器中,也许将来他们会成功,不管它不起作用。
*已编辑*
google如何确定其是否正常工作的示例。
// checking by google
if (!('webkitSpeechRecognition' in window)) {
console.log('GOOGLE: not working on this browser');
} else {
console.log('GOOGLE: working');
}
//your way
if (window.hasOwnProperty('webkitSpeechRecognition')) {
console.log('YOUR: working');
} else {
console.log('YOUR: not working on this browser');
}

答案 1 :(得分:0)
以下Google示例使用时间戳来检测Opera未触发启动事件:https://www.google.com/intl/en/chrome/demos/speech.html