Chrome Android文本到语音不会更改语言

时间:2019-06-24 00:31:33

标签: android google-chrome text-to-speech

以下代码在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);

1 个答案:

答案 0 :(得分:0)

将破折号更改为下划线即可解决问题,即将其从“ fr-FR”更改为“ fr_FR”。

文档https://w3c.github.io/speech-api/#tts-section声明代码应为“ BCP 47”,并指定破折号。

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

因此下划线将其修复。下划线也适用于台式机Chrome。

如果有更好的答案,我不会将此答案标记为已接受。