Chrome OS德语是Chrome OS上正确的默认语音吗?

时间:2015-01-29 16:16:30

标签: google-chrome speech-synthesis google-chrome-os chromebook webspeech-api

我正在使用Web Speech API进行文本到语音转换,并且需要能够确定默认语音。为此,我调用speechSynthesis.getVoices()并枚举声音以找到默认为真的声音。

我在美国使用美国英语语言环境在我的所有设备上。在Windows和Mac上的Chrome中,返回的默认语音是Google美国英语。但是,在Chromebook上,返回的默认语音是Chrome OS德语版。 这真的是正确的默认设置吗?

我错过了Chromebook上的其他区域设置吗?我尝试更改ChromeVox的默认语音(在我更改之前也是Chrome OS德语),但没有运气。

或者有没有办法将语言传递给getVoices()

HTML

我页面的HTML语言设置为美国英语。

<!DOCTYPE html>
<html lang="en-US">

我已经尝试了lang =“en”,删除了DOCTYPE声明等,没有任何变化。

的Javascript

    var _voices = [];

    speechSynthesis.onvoiceschanged = listVoices;

    function listVoices() {
        _voices = speechSynthesis.getVoices();
    }

    function getDefaultVoice() {
        var voice = '';
        _voices.some(function(v) {
            if (v.default) {
                voice = v.name;
                return true;
            }
        });
        return voice;
    }

1 个答案:

答案 0 :(得分:0)

我想出来了。我的默认设置为德语。 Treehouse的这本指南解释了这个过程:

http://blog.teamtreehouse.com/getting-started-speech-synthesis-api

明确地你做了这样的事情:

var utterance = new SpeechSynthesisUtterance('Hello Treehouse');
var voices = window.speechSynthesis.getVoices();

utterance.voice = voices.filter(function(voice) { return voice.lang == 'en-GB'; })[0];

window.speechSynthesis(utterance);

然后只需将语言更改为您需要的语言(即美国英语等)。您可以从上面列出的声音变量中获取列表,并可以在开发人员工具中进行探索。