问题标签 [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 投票
2 回答
100 浏览

javascript - SpeechRecognition 在 Android/Mobile Chrome 上不起作用,但在桌面上起作用?

根据https://developer.mozilla.org/en-US/docs/Web/API/Web_Speech_API,Web Speech API 应该可以在 Chrome for Android 上运行,但它不能。在桌面上,它可以正常工作,并在收听之前请求使用麦克风的权限。是否需要配置 chrome android 设置才能使用此技术?在 Android 上,它甚至不请求权限,它只是立即拒绝对位置和麦克风的权限。

我的应用程序示例位于:a7-bolt170.herokuapp.com/during_run

编辑:找错地方了,我给用户的 URL 没有 https:// 前缀,所以 Chrome 拒绝授予硬件权限。添加 https:// 前缀解决了这个问题。

0 投票
0 回答
85 浏览

javascript - chrome 扩展中的 webkitSpeechRecognition“不允许”错误

我正在尝试创建一个扩展,该扩展从选项卡中获取音频并使用 webkitSpeechRecognition 输出文本。

但是,由于某种原因,每当我尝试使用语音识别时,它都会出错,错误是“不允许”。我当前的代码在“service_worker”脚本中:

为什么会出错,我该如何解决?

0 投票
0 回答
27 浏览

javascript - chrome 扩展上的 SpeechRecognition Web API 不允许错误

我正在开发一个使用 SpeechRecognition Web API 的 chrome 扩展,但是当我尝试启动 SpeechRecognition 时出现不允许的错误。如何阻止此错误的发生?我是否需要在 manifest.json 的“权限”中添加一些东西?如果 chrome 不允许在 chrome 扩展中使用 SpeechRecognition api,是否有解决方法?

0 投票
0 回答
105 浏览

javascript - webkitSpeechRecognition 在 Electron 中返回“网络”错误

我使用 Web.Speech.Api 制作了一个语音识别应用程序,它在 Chrome 中运行良好。但是在电子中,我的应用程序发回了一条带有“网络”消息的错误。

如何在电子中使用 Web.Speech.Api?有人有这方面的经验吗?

电子版: https ://i.stack.imgur.com/8cibA.png

代码 :

错误:https ://i.stack.imgur.com/BwYjJ.png

0 投票
0 回答
41 浏览

javascript - 将 SpeechRecognitionResultList 转换为数组?

是否可以将 SpeechRecognitionResultList 转换为数组?它公开了一个项目获取器,您可以使用 for of 对其进行迭代,但我想转换为一个数组,以便可以使用 findIndex 等。

0 投票
0 回答
442 浏览

javascript - 为什么 SpeechRecognition 在 Safari 中无法正常工作?

我正在使用浏览器技术SpeechRecognition/webkitSpeechRecognition在浏览器中进行语音识别。我需要麦克风在打开页面后始终收听命令,并且在用户说出所需的短语后,我会根据命令更改视频的状态(例如,播放/暂停)。

在 Chrome 浏览器的桌面上,一切正常,麦克风在打开页面后开始监听(rec.start(),浏览器在页面上显示允许使用麦克风的通知并且用户同意)如果用户什么也没说,然后浏览器会在 7-10 秒的静音后停止录制,但在停止麦克风后我重新启动它并不会导致任何问题。

一个在 Chrome 桌面上运行良好的简化示例:

在 safari 浏览器(iOS 上)中,用户第一次说出这句话后,脚本处理了onresult事件后,将不再触发该事件,但录制不会返回错误(onerror事件)并且不会停止(onend事件),在地址栏中继续显示一个红色的麦克风图标。为什么会这样?

我尝试在处理完第一个乐句后重新开始录音并开始工作,但不幸的是它不是很稳定,因为有时麦克风会因为其他原因停止处理命令,我也无法使用录音中的内置事件进行跟踪。我只需要想出某种定期重启,例如,通过计时器,但我认为这不是最好的选择。

有助于在 Safari 中收听多个短语的更改:

我还注意到,如果我不使用带麦克风的耳机,那么浏览器或设备在录制时会将扬声器中的视频声音降至最低,这应该是这样吗?


UPD

经过多次测试,我意识到这不是唯一可用的识别问题,而是视频和SpeechRecognition之间的冲突,如果启动SpeechRecognition并且此时视频出现播放/暂停,则识别失败并且停止提供反馈,尽管错误事件或停止不起作用,但如果之后您重新开始录制,那么一切都会重新开始。最难的是找到合适的重启时间,现在我设置了一个3.5-5秒的定时器来延迟重启,因为提前重启对恢复语音识别没有帮助,但这是一个很长的时间。


0 投票
1 回答
20 浏览

javascript - 从 window.webkitSpeechRecognition 过滤脏话

我正在使用 window.SpeechRecognition 作为一个穷人为我们的教堂服务提供的隐藏式字幕。

有时,脚本会将单词误解为淫秽内容。

我没有在 window.SpeechRecognition 中看到阻止这种情况发生的选项。

有什么想法吗?

下面是代码笔中的代码。(这个有效,它要求允许使用麦克风) https://codepen.io/pollywog/pen/QWvaygg

如果您尝试运行下面的代码段,它将无法工作,因为我猜允许麦克风在 SO 上被禁用。

0 投票
0 回答
88 浏览

javascript - 使用 WebRTC 从传入的音频流中转录音频

我正在寻找一个 javascript 库来使用 WebRTC 从传入的音频流中转录音频。目前,我正在使用 webkitSpeechRecognition,但由于我是初学者,我无法弄清楚如何让这种语音识别从流而不是麦克风中获取音频。

0 投票
0 回答
36 浏览

javascript - 每次运行调用它的函数时,webkitSpeechRecognition 总是请求麦克风访问权限

我正在用 html 和 js 制作一个虚拟助手,它可以工作,但是每次你按下“询问”按钮时,它都会请求麦克风访问权限,即使在我之前授予它访问权限之后也是如此。有什么办法吗?我想可能是我直接从我的文件夹中运行它,所以如果我把它放在服务器或其他东西上会有帮助吗?这是我的代码:

0 投票
0 回答
25 浏览

docker - 从 dockerized 环境运行时,Chrome 的 webkitSpeechRecognition API 不给出结果

我想通过管理无头 Playwright 浏览器,从 Node.js 应用程序使用 Google Chrome 内置的 webkitSpeechRecognition API。如果我从我的机器上运行应用程序,此设置工作正常:

  • Playwight 浏览器打开,我可以访问该window.webkitSpeechRecognition对象
  • SpeechRecognition 成功初始化:recognition = new SpeechRecognition()
  • 然后我可以调用recognition.start()方法
  • 并且我可以收听recognition.onresult捕获语音的事件作为例外。

但是,如果我在 dockerized 环境中运行相同的应用程序,一切都会按预期工作(webkitSpeechRecognition 已成功初始化并启动),但recognition.onresult完全无声。

我也在监听这些recognition.onerror事件,但没有得到任何有用的信息来说明为什么我没有得到任何结果。

有人有任何信息可用于解决此问题吗?也许有某种安全规则禁止此 API 在这样的环境中运行?