Javascript 用于中文的SpeechSynthesis API——Firefox

Javascript 用于中文的SpeechSynthesis API——Firefox,javascript,html,firefox,text-to-speech,Javascript,Html,Firefox,Text To Speech,Firefox上的用户不会说普通话。不支持吗?我在文档中找不到列表。我试过几种不同的语言 : (如果可以的话,你应该听到“nihao”。它在Chrome上听起来不错,在Safari上听起来不错。在Ubuntu上的Firefox 53.0.2上,我听到了“字母”。在Windows上,Firefox只有3种声音,全是英语 我写了一个jsbin,显示浏览器的声音: if('speechSynthesis'在窗口中){ //为语言详细信息启动html表 var text='DefaultLanguag

Firefox上的用户不会说普通话。不支持吗?我在文档中找不到列表。我试过几种不同的语言

:


(如果可以的话,你应该听到“nihao”。它在Chrome上听起来不错,在Safari上听起来不错。在Ubuntu上的Firefox 53.0.2上,我听到了“字母”。

在Windows上,Firefox只有3种声音,全是英语

我写了一个jsbin,显示浏览器的声音:

if('speechSynthesis'在窗口中){
//为语言详细信息启动html表
var text='DefaultLanguageLocalNameURI';
//获取语音;添加到表标记
函数loadVoices(){
var voices=speechSynthesis.getVoices();
voices.forEach(函数(voice,i){
//将所有详细信息添加到表中
text+=''+voice.default+''
+voice.lang+“”+voice.localService
+''+voice.name+''+voice.voiceURI;
});
}
loadVoices();
langList.innerHTML=文本;
//Chrome异步加载语音。
window.speechSynthesis.onvoiceschanged=函数(e){
loadVoices();
langList.innerHTML=文本;
}
}

我测试了你的小提琴,它在Ubuntu上Mac 10.12上的Firefox 53上运行良好,
speechSynthesis.getVoices().map((el)=>el.lang.sort()上没有中文版本。
;但它在Ubuntu上的Chrome上表现良好。
var msg = new SpeechSynthesisUtterance();
msg.text = '你好';
msg.lang = 'zh';
window.speechSynthesis.speak(msg);
if ('speechSynthesis' in window) {
    // Start an html table for languages details
    var text = '<table border=1><tr><th>Default<th>Language<th>Local<th>Name<th>URI</tr>';
    // Get voices; add to table markup
    function loadVoices() {
        var voices = speechSynthesis.getVoices();
        voices.forEach(function(voice, i) {
          // Add all details to table
          text += '<tr><td>' + voice.default + '<td>'
              + voice.lang + '<td>' + voice.localService
              + '<td>' + voice.name + '<td>' + voice.voiceURI;
        });
    }
    loadVoices();
    langList.innerHTML = text;
    // Chrome loads voices asynchronously.
    window.speechSynthesis.onvoiceschanged = function(e) {
        loadVoices();
        langList.innerHTML = text;
    }
}