我知道您只能使用https
或http
请求访问谷歌浏览器(以及我所知的其他浏览器)中的浏览器麦克风。我有一个节点服务器并且正在使用Annyang,当我像往常一样连接到wifi时请求正常工作(请求访问麦克风,在用户接受后执行此操作)。
我的问题是我的应用程序意味着与drone一起使用,这意味着我将连接到无人机的wifi(它无法连接到互联网)。我没有想到这会是一个问题,因为我下载了annyang.min.js文件,而且我的应用程序的任何其他部分都不需要任何互联网连接。但是,每当我连接到无人机并启动服务器时,无论我按下多少次接受,它都会反复询问是否允许使用麦克风(除非我点击拒绝该应用程序显然停止工作)。据我所知,服务器仍在使用http
并且页面不会重新加载或任何其他内容(这会导致它再次询问)。我没有打开任何试图使用麦克风的其他标签。
是否有任何理由可能发生此问题以及解决此问题的最佳方法是什么?我预感到这个问题是由于缺乏互联网连接造成的,但是我无法找到有关导致问题的原因的任何信息。有没有人遇到过这个问题(或之前是类似的问题),如果有的话,你是如何解决它的?
所有代码都可以在github找到。如果我能澄清任何事情,请告诉我。
答案 0 :(得分:0)
您使用的语音识别库实际上是使用Google Chrome与Web Speech API
的集成。
根据2014年的article(以及我制作的不同测试),您必须连接到互联网才能使用Google的语音识别功能:
由Google实施的网络语音识别是一种混合解决方案,它涉及内置于浏览器中的客户端代码,用于捕获输入音频和执行实际语音识别的服务器端代码并返回结果。
Web Speech API Specification至少在原则上是一个浏览器API,但在这里我们看到它与一个拥有谷歌专有软件的远程服务器进行通信。
所以也许当谷歌以外的其他人实施时,你可以在没有连接的情况下使用它。 作为一种解决方法,也许您可以尝试关注this thread,看起来他们可以将无人机连接到路由器(可能会保持互联网连接)。