Javascript 选择要在android webview上加速的文本语言

Javascript 选择要在android webview上加速的文本语言,javascript,android,webview,text-to-speech,Javascript,Android,Webview,Text To Speech,我找了好几个小时都没有找到真正的答案 是否仍然可以为文本到语音功能选择不同于默认语言的语言 这段代码在PC上的chrome浏览器上运行良好,但在Android浏览器上不起作用: $(函数(){ if(窗口中的“speechSynthesis”){ speechSynthesis.onvoiceschanged=函数(){ var$voicelist=$(“#voices”); if($voicelist.find('option')。长度==0){ speechSynthesis.getVoi

我找了好几个小时都没有找到真正的答案

是否仍然可以为文本到语音功能选择不同于默认语言的语言

这段代码在PC上的chrome浏览器上运行良好,但在Android浏览器上不起作用:

$(函数(){
if(窗口中的“speechSynthesis”){
speechSynthesis.onvoiceschanged=函数(){
var$voicelist=$(“#voices”);
if($voicelist.find('option')。长度==0){
speechSynthesis.getVoices().forEach(函数(语音,索引){
控制台日志(语音);
变量$option=$('')
.val(索引)
.html(voice.name+(voice.default?'(default):'');
$voicelist.append($option);
});
$voicelist.material_select();
}
}
$('#speak')。单击(函数(){
var text=$('#message').val();
var msg=newspeechsynthesisutterance();
var voices=window.speechSynthesis.getVoices();
msg.voice=voices[$('#voices').val();
msg.rate=$('#rate').val()/10;
msg.pitch=$('#pitch').val();
msg.text=文本;
msg.onend=函数(e){
log('在'+event.elapsedTime+'秒'内完成');
};
console.log(语音合成);
语音合成(msg);
})
}否则{
$('#modal1').openModal();
}
});

选择声音
比率

注意:速率和音高仅适用于母语语音

写消息 不支持语音合成 您的浏览器不支持语音合成

我们建议您使用谷歌浏览器


好吧,经过一次又一次的搜索,我终于找到了解决方案,而且非常简单

在PC Chrome中,语音的lang在语音包中是隐式的,但在Mobile Chrome中,lang必须在SpeechSynthesistTerance对象中显式指定

因此,对于示例,它可以添加行

  msg.lang = voices[$('#voices').val()].lang;
如果有人需要帮助,我准备好了

你好