Opera对webkitSpeechRecognition API的支持

15

我们正在使用Chrome中的webkitSpeechRecognition API。由于这是一个原型应用程序,我们很高兴只支持Chrome,因此我们通过执行window.hasOwnProperty('webkitSpeechRecognition')检查(如谷歌建议)来检测API的支持。这在Firefox中会失败,但新版Opera(基于webkit)报告它确实具有该属性。事实上,所有代码都按预期运行,除了...没有任何事件被触发,也没有录制任何声音。

所以,我的问题是:我能否通过某种方式使其工作?是否需要一些特殊的权限或设置?

另外,除了老式的浏览器嗅探之外,是否有一种方法可以检测webkitSpeechRecognition的适当、有效的支持?


你找到了替代浏览器嗅探的方法吗?我也遇到了同样的问题。 - Oscar Hermosilla
很抱歉,@OscarHermosilla,我们并没有特别关注这个问题,所以我也没有积极寻找解决方案。但我很好奇,让我来设置一个赏金吧。 - SáT
2个回答

5

目前只有谷歌浏览器拥有流式语音识别API(他们有Google语音API)。

如果您在Opera上使用https://www.google.com/intl/en/chrome/demos/speech.html,它会告诉您需要Chrome25+才能进行此操作。

根据http://caniuse.com/#feat=speech-recognition,Opera WebKit支持此功能,但目前无法正常工作。 Opera没有任何API服务可以即时翻译它。 目前他们的浏览器中只有占位符函数,也许将来他们会做到,但现在还没有。

*编辑*

谷歌提供了一个示例,用于确定它是否有效。

// 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
我正在使用 Opera build 41.0.2353.69,语音演示页面根本不起作用,也没有给我任何提示。我笑了笑,caniuse.com 把它报告为“部分支持”,就像 Chrome 一样。无论如何,有没有办法检测它只是一个占位符函数?(为什么它们不直接抛出异常或者其他东西而是默默地死掉呢?) - SáT
webkitSpeechRecognition - 尝试查找默认语音识别软件进行工作。默认情况下,Chrome 通过 Chrome 流式传输到 Google Speech API 来识别语音(这就是为什么有那么多可以识别的语言)。 在移动设备上通常会有语音识别软件,Opera 在该移动设备上应该可以使用,在桌面上不起作用。我希望这能有所帮助。 - Michał Ignaszewski
我从谷歌演示页面添加了一个例子,非常类似于window.hasOwnProperty,但可能有所不同,它可以检测到我的Chrome中的webkit,但在我的Opera 42中无法检测。 - Michał Ignaszewski
我真是太惊讶了,使用 Opera 42.0.2393.85 版本,我的代码可以正常工作。你的不能?很奇怪。而且...不,我认为 hasOwnProperty 或简单的属性检查不应该有任何影响。 - SáT
我正在使用Ubuntu 16.04.1,Opera 42.0.2393.85。我认为可能在您的操作系统中安装了一些语音识别软件,而Opera看到了它。 - Michał Ignaszewski
根据http://www.opera.com/help/tutorials/voice/using/,构建语音识别仅在Windows XP或2000或更高版本上运行(因此需要MS Build语音转文本程序)。我认为webkitSpeechRecognition的逻辑也是相同的。 - Michał Ignaszewski

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接