我目前正在尝试创建自己的J.A.R.V.I.S系统作为网络应用程序。当然,像任何好的J.A.R.V.I.S系统一样,它需要良好的语音识别。我已经做过研究,试图找到一个我可以自定义的JavaScript语音识别API,并决定使用Annyang。 (这很简单,效果很好)
我花了一些时间玩它,就在我认为我有它工作的时候,我遇到了一个问题。当我尝试在本地查看文件时,它无法正常工作,因此我将其托管在我的计算机上与MAMP一起查看它是否有效。它提出了“localhost想要访问麦克风”的对话框,但是当我点击允许时,它又重新出现了。它一直在重新出现,直到我点击拒绝才会消失。我使用以下代码:
<!DOCTYPE html>
<script src="http://cdnjs.cloudflare.com/ajax/libs/annyang/1.0.0/annyang.min.js"></script>
<script>
if (annyang) {
// Let's define our first command. First the text we expect, and then the function it should call
var commands = {
'show tps report': function() {
alert("hello");
}
};
// Initialize annyang with our commands
annyang.init(commands);
// Start listening. You can call this here, or attach this call to an event, button, etc.
annyang.start();
}
</script>
他们在their website上提供的演示代码。
如果有人能帮助我弄清楚为什么当我点击允许时反复要求使用我的麦克风,那么提前谢谢!
干杯, Fjpackard。
答案 0 :(得分:6)
https://github.com/TalAter/annyang/issues/53
请仔细阅读整个问题。您可能需要为其设置HTTPS。
答案 1 :(得分:0)
如果每次听力操作开始时都没有SSL,则会再次出现提示。
如果您在FQDN上拥有有效的SSL,只要您正确设置了javascript,它就能正常运行。
现在它正在提示,因为在您允许之后,它会循环显示预先配置的匹配项,然后重新开始,然后再次提示。
如果您想查看:https://piperko.com
,我有保加利亚语的工作示例答案 2 :(得分:0)
即使我遇到同样的情况,我也解决了。有两种解决方案可以解决这个问题。
在您的annyang.js文件中重新检查
abort: function () {
autoRestart = false;
if (isInitialized) {
recognition.abort();
}
}
其中,需要从所有非活动标签中删除麦克风的活动,并且只需为当前标签激活。