Safari 浏览器上的网络语音识别结果不佳

Álv*_*ski 3 javascript safari speech-to-text ios webspeech-api

您好,

我目前正在尝试在我的应用程序上实现语音识别功能。根据此处的JS 文档,自 Safari 14.1 起支持语音转文本。另外,我正在使用以下配置:

    const { webkitSpeechRecognition } = (window as any)
    const recognition = new webkitSpeechRecognition();
    recognition.lang = 'pt-BR';
    recognition.continuous = true;
    recognition.interimResults = false;
    recognition.maxAlternatives = 1;
    // Avoid garbage collection bugs
    this.garbage.push(recognition);
    recognition.start();
Run Code Online (Sandbox Code Playgroud)

在 Chrome 上它工作得很好,但在 Safari 上识别结果非常糟糕。它有时能理解我的意思,但常常会误解我的话,给我错误的结果。例如,如果我说:“你好助手,更改对比度”,结果可能类似于:“你好助手充电合同你好助手充电”之类的。

这个问题的一个特点是 safari 上的语音识别接口触发的事件只是startaudiostart

有没有人面临类似的问题或找到了解决这个问题的方法?我还接受在我的应用程序上实现语音识别的替代方案。

提前致谢!


编辑

就我而言,您可以通过访问任何依赖 Web Speech API 的网站来看到此问题。您可以检查一些示例:

https://www.google.com/chrome/demos/speech.html

https://www.audero.it/demo/web-speech-api-demo.html

Álv*_*ski 5

因此,如果其他人遇到这个问题,我已经在 chromium 论坛上填写了一个问题。您可以在这里咨询该问题。

基本上,Chrome 团队在将此功能集成到 iOS 设备上的浏览器中时遇到了一些问题。

就我而言,我所做的是使用Hark.js根据用户开始和停止说话的时间来获取事件,并与后端的Vosk配对来进行离线语音到文本翻译。

在我看来,如果您希望您的应用程序在特定浏览器上运行,那么浏览器语音识别 API 就可以了。但是,如果您希望针对不同操作系统上的所有浏览器,我建议您寻找不同的解决方案。