我正在尝试使此代码有效,但不知道为什么它在本地不起作用。我在CodePen.io上尝试了同样的方法,并且可以正常工作。

<html>
<head>
    <title>Voice API</title>

</head>

<body>
    <button onClick="func()">Click Me</button>
    <script>
        function func()
        {
            alert('Hello');
            var recognition = new webkitSpeechRecognition();
            recognition.continuous = true;
            recognition.interimResults = true;
            recognition.onresult = function(event)
            {
                alert(event.results[0][0].transcript);
            }
            recognition.start();
        }
    </script>
</body>

有什么建议么?

最佳答案

您可以尝试添加以下代码段,以查看正在生成什么错误。

recognition.onerror = function(event) {
    console.log(event.error);
};

机会是它会吐出“不允许”的字样,这通常意味着用户代理出于安全性,隐私权或用户偏好的原因而不允许进行任何语音输入(因为您是通过file://在本地运行的)

您是否尝试过在本地Web服务器(如IIS或Node)下提供页面?

07-26 04:37