Chrome Android文本到语音不改变语言



下面的代码在Chrome桌面中工作正常,但是在Chrome Android中,它没有使用指定的msg.lang。法国文本正在读出,就像是英语,在美国口音中。我的手机的默认语言是英语,这有关系吗?我希望该页面以选定的语言读取,无论用户在手机上的设置如何。

    const msg = new SpeechSynthesisUtterance();
    msg.volume = 1; 
    msg.text = text; // these words are in French
    msg.lang = 'fr-FR';
    speechSynthesis.speak(msg);

将破折号更改为下划线修复,即从'fr-fr'到'fr_fr'。

文档https://w3c.github.io/speech-api/#tts-section指出,代码应为" BCP 47",该代码指定dash。

但是,本文指出,在某些移动实现中,使用了下划线:https://manu.ninja/using-the-speech-synthesnession-interface-of-the-web-speech-api

因此,将其定为下划线。而且下划线也可以在桌面镀铬上工作。

我不会将此答案标记为接受的,以防有更好的答案。

我相信这是Chrome的错误。我的代码与原始海报相似,该海报在Firefox中正常工作。不幸的是,似乎没有一种可靠的修复方法。

相关内容

  • 没有找到相关文章

最新更新