Annyang.js 在测试中有效,但之后似乎无法连接

Annyang.js works in test but after that it doesn't seem to connect

我先在一个空白文件中测试了 Annyang。这工作正常,但是当我将相同的代码连接到另一个文件中的函数时,它似乎没有工作。安阳似乎已经没有联系了。浏览器没有请求使用麦克风的权限,红色圆圈也不可见。但是,我已经按照测试时的方式连接了它。

函数:播放器旋转(1);我想在用户说:turn.

时开始

下面你可以找到我的代码:

javascript`

$( document ).ready( doStuff );

function doStuff()
{

if (annyang) {

  var commands = {
    'turn': function() {
        playerRotate(1);
        console.log("You said turn");
    }
  };

  annyang.addCommands(commands);
 annyang.debug(true);

annyang.start({ continuous: false });
}


annyang.setLanguage('en-GB');

这是我放在 hmtl 头部的脚本标签:<script src="https://cdnjs.cloudflare.com/ajax/libs/annyang/1.1.0/annyang.min.js"></script>

而且我已经将主 javascript 文件的脚本标记放在 html 正文的底部。

任何人都可以帮助找出我做错了什么吗?

非常感谢!

我下载了您的源代码并且 运行 没有任何障碍(见下图)。

你在测试中 运行 annyang 工作时的方式与后来 运行 的方式有什么不同吗?

我的猜测是,改变的是您在本地 运行 的方式。也许有一次您将它打开为 file://,而另一次您将其打开为 http://localhost 甚至 http://my-local-environment 或类似的东西。语音识别需要 HTTPS(或者在某些版本上,如果您的主机名是 localhost,它可以通过 HTTP 运行)。最安全的选择是尝试 运行 通过 SSL 连接它(甚至在本地,没有有效证书)。

另一种选择是您可能已经阻止了一次语音识别,并且浏览器会记住该选择(您的里程可能因浏览器和版本而异)。

至于代码本身,效果很好: