语音识别 Safari
Posted
技术标签:
【中文标题】语音识别 Safari【英文标题】:Speech Recognition Safari 【发布时间】:2021-11-04 00:11:08 【问题描述】:我已经按照 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 for Desktop 和 android。)
但基于:https://developer.mozilla.org/en-US/docs/Web/API/SpeechRecognition#browser_compatibility 最后一个链接没有意义,声称有支持。
我很困惑,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
【问题讨论】:
【参考方案1】:我想通了。对于 Safari,用户需要启用听写才能将语音转文本工作。 详情可以在这里找到:https://bugs.webkit.org/show_bug.cgi?id=225298
【讨论】:
不错的发现。截至 2021 年 10 月,这仍然是必需的。Safari 是 IE? 我确实跳过了所有这些(Siri 启用,允许麦克风到站点)......但我的http://localhost:8888
仍然给 error: "service-not-allowed"
......对于 Chrome 我怀疑 https://非本地主机需要 。不幸的是,mdn.github.io/web-speech-api/speech-color-changer 在 Safari 上不起作用【参考方案2】:
您确定您在网站上设置了 SSL 证书吗?有时,如果不在安全连接上,浏览器可能会阻止对麦克风的访问。
现在,如果这是一个本地站点,如果没有发布,您可以使用自签名 SSL 证书作为解决方法。
【讨论】:
以上是关于语音识别 Safari的主要内容,如果未能解决你的问题,请参考以下文章