0

我能够在页面加载时启动语音识别:

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 上运行

4

1 回答 1

1

您需要通过 SSL 运行/访问您的站点。

另一种方法是在 Chrome 扩展程序中运行带有语音识别功能的脚本。

Chrome 将始终询问何时访问麦克风。

PS:在继续之前,我会在 Cordova 目标平台上对其进行测试——webspeech-recognition 可能无法在所有/任何这些平台上使用(可能与人行横道......)

于 2016-05-27T18:51:06.720 回答