我能够在页面加载时启动语音识别:
var recognition = new webkitSpeechRecognition();
recognition.continuous = true;
recognition.interimResults = true;
recognition.onresult = function(e) {
for (var i = e.resultIndex; i < e.results.length; ++i) {
if (e.results[i].isFinal) {
$scope.data += e.results[i][0].transcript;
}
}
}
// start listening
recognition.start();
我在浏览器中收到一个弹出通知,要求我允许该站点访问我的麦克风。
当我为
recognition.start();
和recognition.stop();
创建按钮时,每次按下开始按钮时都会弹出通知。我想要的是,在页面加载时询问用户是否允许该站点访问他的麦克风,页面会记住他的决定,并且可以启动/停止语音识别,而不会出现其他弹出窗口。
有解决方案吗?
编辑:在Windows上的最新Chrome上进行了测试,但这是一个Cordova项目,最终应在Android / iOS上运行
最佳答案
您需要通过SSL运行/访问您的站点。
另一种方法是在Chrome扩展程序中运行带有语音识别功能的脚本。
Chrome会始终询问何时访问麦克风。
PS:在继续之前,我将在Cordova目标平台上对其进行测试-web语音识别功能可能无法在所有/任何这些平台上使用(也许使用crosswalk ...)