【问题标题】:Chrome WebSpeech API returning not-allowed error?Chrome WebSpeech API 返回不允许的错误?
【发布时间】:2021-01-04 10:35:18
【问题描述】:

我使用 Web Speech API 将语音转文本。但是当调用recognition.start() 时,它会显示 SpeechRecognitionErrorEvent

recognition = new webkitSpeechRecognition()
recognition.continuous = false
recognition.interimResults = false

recognition.onend = () => console.log("ended")

recognition.onerror = () => console.log("errored")

recognition.start()

它的日志记录,

errored
ended
SpeechRecognitionErrorEvent {isTrusted: true, error: "not-allowed", message: "", type: "error", target: SpeechRecognition, …}

我在我的 react 项目中尝试过。尝试从 chrome 控制台触发识别器也会导致相同的错误。 其他人,因为我是第一次使用它,所以我不能完全理解这个错误的原因。在stackoverflow中提出了另一个具有相同问题的问题,我无法得到明确的答案。是不是我必须用 ssl 证书请求语音 api 启动方法。否则,我无法使用该功能。

更新:
我必须在浏览器中手动启用麦克风权限才能消除此错误。

【问题讨论】:

    标签: reactjs webspeech-api


    【解决方案1】:

    试试这个:

      const SpeechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition;
      const recognition = new SpeechRecognition();
    
      recognition.start()
    

    【讨论】:

    • 已经试过了..面临同样的问题
    • 您能否删除带有重现问题的代码框链接
    • 我的系统一切正常,可能是您的系统设置有问题。在其他设备上尝试
    【解决方案2】:

    为了记录,可能发生此错误的另一个原因是,如果您在 HTTP 响应中发送 Permissions-Policy 标头 (W3C Working Draft) 并包含字符串 microphone=() 以禁用对麦克风的访问。此标头通常用于防止恶意第三方脚本请求麦克风。

    【讨论】:

      猜你喜欢
      • 2023-03-26
      • 2015-04-23
      • 2011-09-10
      • 1970-01-01
      • 1970-01-01
      • 2021-04-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多