语音识别 Safari

Speech Recognition Safari

我在 API: https://wicg.github.io/speech-api/ 之后创建了一个语音识别网站。该站点在 Chrome 中有效,但在 Safari 中无效。

这是有道理的:基于浏览器支持的详细信息:https://developer.mozilla.org/en-US/docs/Web/API/Web_Speech_API/Using_the_Web_Speech_API#browser_support,(语音转文本目前仅限于桌面版 Chrome 和 Android。)

但没有意义基于:https://developer.mozilla.org/en-US/docs/Web/API/SpeechRecognition#browser_compatibility  最后一个 link,声称有支持。

我很困惑,Safari 是否提供支持?

我从 Safari 收到的错误是:检测到语音识别错误:不允许服务

这个错误是什么意思?

不允许服务

用户代理不允许请求的语音识别服务,因为用户代理不支持它或者出于安全、隐私或用户偏好的原因。在这种情况下,它将允许使用另一个更合适的语音识别服务。

https://developer.mozilla.org/en-US/docs/Web/API/SpeechRecognitionErrorEvent/error

我尝试在 Safari 设置和我的计算机设置中为麦克风授予明确权限。没用。我不知道如何明确允许 safari 进行语音识别。它应该请求许可,但它没有。

有人对如何在 Safari 上进行语音识别有任何建议吗?

这是代码:


var recognition = new speechRecognition()

var textBox = $("#textbox")

var instructions = $("#instructions")

var cont = ''

recognition.continuous = true

// Recognition started

recognition.onstart = function () {
    instructions.text("Voice recognition is on")
}

recognition.onspeechend = function () {
    instructions.text("No speech detected")
}

recognition.onerror = function (event) {
    instructions.text('Speech recognition error detected: ' + event.error)
}

recognition.onresult = function (event) {
    var current =  event.resultIndex;
    var transcript = event.results[current][0].transcript;

    cont += transcript

    textBox.val(cont)
}

$("#start-btn").click(function (event) {
    if(cont.length){
        cont += ''
    }
    recognition.start()
})``` 

I created this based on this tutorial: https://www.youtube.com/watch?v=rwB6RqqCmXc 

您确定您在网站上设置了 SSL 证书吗?有时,如果麦克风未处于安全连接上,浏览器可能会阻止对麦克风的访问。

现在,如果这是一个本地站点,如果未发布,您可以使用自签名 SSL 证书作为解决方法。

我想通了。对于 Safari,用户需要启用语音转文本的听写功能。 可以在这里找到详细信息:https://bugs.webkit.org/show_bug.cgi?id=225298