问题标签 [webkitspeechrecognition]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2443 浏览

javascript - WebkitSpeechRecognition 随机停止录制

我正在尝试对文本转录进行连续语音,但似乎无法让 webkitSpeechRecognition 像宣传的那样工作。即使我设置了 Continuous = true 和 interimResults = true,它似乎也会随机停止录制(通常是在长时间的沉默之后)。当我在 EVERY.SINGLE.EVENT 中放置一个简单的日志语句时,我什至无法弄清楚是什么导致了这种随机停止。webkitSpeechRecognition 基于我能找到的文档。这是我所拥有的脚本(基本上是演示上的一个小mod https://www.google.com/intl/en/chrome/demos/speech.html

我知道的:

在录制之前不会记录任何错误。

我正在使用千兆连接,因此与延迟无关。

它在长时间停顿后正常停止,但有时会无故停止。

它可以在 2 分钟或仅 30 秒后发生。

我注释掉了下面的一些内容,但我已经尝试了所有这些,但没有成功追踪问题。

0 投票
2 回答
2339 浏览

javascript - Android上的语音识别API重复短语

我发现,语音识别 API在我的 Android 上重复了结果短语(并且在桌面上不重复)。

对于所说的每个短语,它返回两个结果。第一个是

在此处输入图像描述

第二个是

在此处输入图像描述

如您所见,在第二次返回中,短语重复,每个副本都标记为final,第二个是 Beyond resultIndex。在第一次返回中只有一个副本,它是final并且它是超越resultIndex

我只需要第二次返回,但问题是它发生在移动 Chrome 上,但不会发生在桌面上Chrome。桌面Chrome仅返回第一次返回。

所以,问题是:这是设计行为吗?那么对于所有计算机来说,如何区分单个最终短语呢?

或者这可能是像声音回声这样的错误,那么问题是如何避免/检查回声?

更新

html如下:

代码如下:

JsFiddle:https ://jsfiddle.net/dimskraft/envwao8o/1/

0 投票
0 回答
951 浏览

html - 从 webkitspeechrecognition 获取语音

我想在语音识别期间录制语音。根据识别语音的置信度,程序将保存或拒绝用户的语音。

要做到以上,我有两个选择:

  1. 从浏览器录制用户的声音并发送到 Node JS 服务器。然后将语音发布到 Google Speech API 并获得结果。基于置信度做动作。

  2. 在浏览器上识别和记录用户语音。如果识别置信度良好,则将语音发送到 Node JS 服务器进行保存。

第二种方式似乎不错,但我怎样才能获得用户语音的音频?

注意:语音将是连续的,文本的每个部分将持续大约一分钟。

环境:Google Chrome v49、HTML5(在浏览器端)。节点 JS(在服务器端)

谢谢你的帮助。

编辑#1(基于@raju的评论):

我试过以下代码

它可以工作,但它只返回语音识别的结果。我也想要原始声音数据。我查找了不同的事件及其“识别”对象的参数,但它们都不符合我的需求。有什么建议吗?

0 投票
3 回答
2762 浏览

javascript - WebkitSpeechRecognition 在 Electron 中返回网络错误

最近(过去 1.5 周内)javascript 库 WebkitSpeechRecognition 拒绝正常工作。我已经测试了其他使用该库的电子应用程序(evan cohen 的智能镜像)并遇到了这些问题。

在我测试过的所有情况下,它都会引发网络错误。该库似乎在标准浏览器环境中运行良好,但我似乎无法让它与电子一起使用。有没有人有任何摔跤的经验?

0 投票
1 回答
199 浏览

c# - C# 交替使用听写语法和预定义语法

我想用 C# 创建一个可以同时使用听写语法和预定义语法的桌面应用程序。例如,通过 SoundCloud 或 Google Now 或 Cortana 或 Siri 实现类似于 Hound 的功能。所以这就是我打算如何使用它:

  • 首先,我会先定义句子,我确定用户会使用 X 加 Y。(现在很明显,从 -infinity 到 +infinity 编写语法是在这里使用预定义语法的唯一方法)(我的打算做的是以这样的方式使用听写语法,它首先遵循这些参数,即从“what”“is”“plus”中侦听并将其传递给局部变量进行处理)
  • 其次,我想知道是否有一种方法可以通过使用正则表达式通过预定义的句子过滤掉听写语法来使听写语法更加灵活。它会是这样。假设我说“25加108等于多少?” 并说识别引擎将其解释为“什么是二十五辆巴士和一百个夜晚”(注意:我实际上是复制粘贴了这个!)所以我希望将此类解释映射到 if 语句中设置的现有条件集-链或类似的东西。

感谢大家的帮助 :) 注意:我不打算使用 3rd 方 API ......

0 投票
2 回答
3175 浏览

javascript - 支持 Opera 中的 webkitSpeechRecognition API

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

所以,我的问题是:我可以让它以某种方式工作吗?它是否需要一些特殊的权限或设置?

或者,有没有办法(除了好的旧浏览器嗅探)来检测对 webkitSpeechRecognition 的正确、有效的支持?

0 投票
1 回答
477 浏览

javascript - webkitSpeechRecognition - 音调速率和语音音量

我试图弄清楚如何才能获得演讲的音调、速率和音量。

我正在使用以下代码将语音转文本:

有人知道我如何获得演讲的这些信息吗?或者一些替代解决方案?

我非常感谢您的帮助和关注。非常感谢。

海伦娜

0 投票
2 回答
251 浏览

google-chrome - 检测另一个浏览器选项卡是否正在使用 SpeechRecognition

是否可以判断另一个 Chrome 选项卡是否正在使用 webkitSpeechRecognition?

如果您尝试在另一个选项卡使用 webkitSpeechRecognition 时使用它,它将抛出错误“已中止”而没有任何消息。我希望能够知道 webkitSpeechRecognition 是否在另一个选项卡中打开,如果是,则抛出一个可以通知用户的更好的错误。

0 投票
2 回答
1777 浏览

javascript - WebkitSpeechRecognition 随机停止,不单端触发

我正在尝试使用 webkitSpeechRecognition 转录文本。我找到了这个例子:

https://developers.google.com/web/updates/2013/01/Voice-Driven-Web-Apps-Introduction-to-the-Web-Speech-API?hl=en

并将其应用到我自己的网站中。这在某些条件下效果很好。但是,我本质上只是想在人们进行讨论时让转录保持“开启”状态。

我为我的目的简化了代码如下:

它适用于从 2 秒到 5 分钟的任何时间,但不可避免地,似乎随机停止。我在这里看到了关于这个问题的评论:

WebkitSpeechRecognition 随机停止录制

这意味着Obj3ctiv3_C_88想出了一个解决方案。但是我无法弄清楚如何实现所描述的内容。

任何帮助表示赞赏。谢谢!

0 投票
0 回答
314 浏览

javascript - Android webkitSpeechRecognition .isFinal 变量没有显示正确的值

我正在尝试在移动设备上做一些语音识别的东西。这是一些代码..

我只是想知道其他人是否遇到过这个问题,以及如何解决这个问题的任何见解。我的网站上有一个例子。

https://jaymartmedia.com/example/speech.html

我在页面上添加了一些调试信息(这样我就可以在移动设备上“看到”控制台。在桌面上你会注意到“2:Final:false”,有时是“2:Final:true”。这是“e.results[i].isFinal”。在移动设备上,它总是(或者至少每次我在手机上尝试过)是“2:Final:true”。

它引起了重大问题,任何见解将不胜感激。