没有互联网连接的麦克风许可

Microphone permission without internet connection

我知道您只能使用 https 或 [=11] google chrome(以及据我所知的其他浏览器)请求访问浏览器的麦克风=].我有一个节点服务器并且正在使用 Annyang 当我像往常一样连接到 wifi 时它工作正常(请求访问麦克风,在用户接受后执行它的操作)。

我的问题是我的应用程序要与 drone 一起使用,这意味着我将连接到无人机的 wifi(不连接到互联网)。我认为这不会成为问题,因为我下载了 annyang.min.js 文件并且我的应用程序的任何其他部分都不需要任何互联网连接。然而,每当我连接到无人机并启动服务器时,无论我按多少次接受,它都会反复请求使用麦克风的许可(除非我点击拒绝,此时应用程序显然停止工作)。据我所知,服务器仍在使用 http 并且页面不会不断重新加载或任何事情(这会导致它再次询问)。我没有打开任何其他试图使用麦克风的选项卡。

是否有任何原因可能会导致此问题发生?解决此问题的最佳方法是什么?我有一种预感,问题是由缺乏互联网连接引起的,但我找不到任何关于为什么会导致问题的信息。有人遇到过这个问题(或之前遇到过类似问题)吗?如果遇到过,您是如何解决的?

长话短说:

我的 speech recognition 代码在我 连接到无人机的 wifi 时工作,并且 在我连接到它后停止工作。

所有代码都可以在github上找到。如果我能澄清任何事情,请告诉我。

您使用的语音识别库,实际上是使用GoogleChrome对Web Speech API的集成。

根据 2014 年的 article(以及我所做的不同测试),您必须连接到互联网才能使用 Google 的语音识别:

Web Speech Recognition, as implemented here by Google, is a Hybrid solution in that it involves Client sidecode, built into browser, which captures the input audio and Server side code at Google which performs the actual speech recognition and returns the results.
The Web Speech API Specification is, at least in principle, a Browser API but here we see it communicating with a remote server with proprietary software owned by Google.

因此,也许当它由 google 以外的其他人实施时,您将能够在未连接的情况下使用它。 作为解决方法,也许您可​​以尝试遵循 this thread,他们似乎能够将无人机连接到路由器(然后可能会保持互联网连接)。