问候语,
我目前正在尝试在我的应用程序上实现语音识别功能。根据JS文档here,从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();
在Chrome浏览器上,它工作正常,但在Safari浏览器上,识别结果却非常糟糕。它有时能理解我的话,但经常会曲解我的话,给我错误的结果。例如,如果我说:"你好助手,更改对比度",结果可能是这样的:"你好协助收费合同你好协助收费收费"之类的。
这个问题的一个特点是,safari上语音识别接口触发的事件只是start
和audiostart
。
有人面临类似的问题或找到了解决这个问题的方法吗?我也接受在我的应用程序上实现语音识别的替代方案。
先谢了!
编辑
在我这边,你可以通过访问任何依赖于Web Speech API的网站看到这个问题。
https://www.google.com/chrome/demos/speech.html
https://www.audero.it/demo/web-speech-api-demo.html
1条答案
按热度按时间mhd8tkvw1#
所以,如果还有人在这个问题上犯了错,我已经在 chrome 论坛上填补了一个问题。你可以咨询问题here。
基本上,Chrome团队在iOS设备上的浏览器中集成此功能时遇到了一些问题。
在我的例子中,我所做的是使用Hark.js来获取基于用户开始和停止说话的时间的事件,并在后端与Vosk配对来进行离线语音到文本的翻译。
IMO如果你想让你的应用程序在特定的浏览器上运行,浏览器语音识别API是可以的。但是,如果你想针对不同操作系统的所有浏览器,我建议你寻找不同的解决方案。