谷歌浏览器(Windows) - 如何添加缺失的语音合成语音

时间:2017-07-01 21:31:29

标签: html5 google-chrome text-to-speech speech-synthesis

我在Google Chrome(Windows)中使用HTML5语音合成API。不幸的是,当我测试可用的声音时 - 我不会看到挪威语 声音(例如)

所以我的问题是 - 是否可以添加缺失的声音 在Chrome?或者该列表是否适用于所有Chrome(Windows)安装?

在我的Android设备上 - 可用语音列表要大得多。 但是 - 在Windows设备上 - 缺少一些重要的声音。

我在Google Chrome for Windows上看到的语音如下所示:

PL-PL EN-US DE-DE EN-US EN-GB EN-GB ES-ES ES-美国 FR-FR HI-IN ID-ID 它-IT JA-JP KO-KR NL-NL PL-PL PT-BR RU-RU ZH-CN ZH-HK ZH-TW

谢谢你, 麦克

1 个答案:

答案 0 :(得分:1)

该列表是特定于浏览器版本的,以及相同浏览器的版本,例如Chrome在不同的操作系统上会有不同的列表。似乎只有Safari和Chrome是多语言的,Opera和Firefox都有英语语音,IE也没有。 Chrome for Mac和Ubuntu的声音比Chrome for Windows更多。据推测,较新版本的Chrome拥有比旧版本更多的声音。

我写了一个显示浏览器声音的jsbin:
https://jsbin.com/ginanegoqu/edit?js,output

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;
    }
}