Web Speech API语音识别移动端不返回多候选结果问题求助
Web Speech API Speech Recognition移动端maxAlternatives配置不生效问题
我在Web应用中实现Web Speech API的Speech Recognition功能,使用以下参数配置:
vSearch = new webkitSpeechRecognition(); vSearch.continuous = false; vSearch.interimResults = false; vSearch.maxAlternatives = 5 vSearch.lang = 'en-US';
该配置在桌面端和移动端Chrome中均可运行,但存在一处差异:桌面端返回的结果列表中SpeechRecognitionAlternative数组通常包含多个条目(符合预期),但移动端始终仅返回1个条目,似乎vSearch.maxAlternatives = 5的配置未生效。
我还发现,将手机开启飞行模式后再测试,移动端会像桌面端一样返回多个候选结果。这似乎表明API默认采用在线调用,但在线调用时未传递maxAlternatives参数。
我未找到相关文档描述此行为,因此想咨询是否有开发者遇到过类似问题,盼解答。
最小复现示例
请在同一浏览器的桌面端和移动端运行以下代码片段:
JavaScript代码
const vSearch = new webkitSpeechRecognition(); vSearch.continuous = false; vSearch.interimResults = false; vSearch.maxAlternatives = 5; vSearch.lang = "en-US"; vSearch.onresult = (result) => { console.log(result) } vSearch.onstart = () => { document.getElementById("listening").innerHTML = "listening" } vSearch.onend = () => { document.getElementById("listening").innerHTML = "Not listening" } function testSpeech(){ vSearch.start() }
HTML代码
<html> <body> <button onclick="testSpeech()">Test Speech</button> <div id="listening">Not listening</div> </body> </html>
内容的提问来源于stack exchange,提问作者Engin Volkan
相关产品推荐
相关产品推荐

