gpt4 book ai didi

javascript - HTML5 语音合成 API - 只能使用 "native"语音

转载 作者:行者123 更新时间:2023-12-03 10:15:08 25 4
gpt4 key购买 nike

我有一个使用 HTML5 语音合成 API 的 Web 应用程序,它可以工作 - 但只能使用 native 语音。这是我的代码:

var msg = new SpeechSynthesisUtterance();
var voices;

window.speechSynthesis.onvoiceschanged = function() {
voices = window.speechSynthesis.getVoices();
};

$("#btnRead").click(function() {
speak();
});

function speak(){
msg = new SpeechSynthesisUtterance();
msg.rate = 0.8;
msg.text = $("#contentView").html();
msg.voice = voices[10];
msg.lang = 'en-GB';
window.speechSynthesis.speak(msg);
}

声音[10]是唯一有效的声音,当我将其登录到控制台时,我可以看到它是 native 声音 - 这似乎表明其他声音没有正确加载,但它们仍然出现在记录到控制台时的声音数组,如下所示:

Screenshot of console

大家有什么想法吗?我确信我可能错过了一些相对简单的东西,但我现在已经为此苦苦挣扎了一段时间!我使用的是 Google Chrome 版本 42.0.2311.90,据我所知,它应该支持语音合成 API。

最佳答案

刚刚开始玩speechSynthesis,所以没有花太多时间在上面。我偶然发现了你的问题,我相信答案是你选择的声音不支持你提供的语言,你会得到一个后备。

如果您阅读文档并检查如何选择声音,它会起作用(至少在我的电脑上) https://developers.google.com/web/updates/2014/01/Web-apps-that-talk-Introduction-to-the-Speech-Synthesis-API?hl=en

var msg = new SpeechSynthesisUtterance('Awesome!');
msg.voice = speechSynthesis.getVoices().filter(function(voice) {
return voice.name == 'Google UK English Male';
})[0];

// now say it like you mean it:
speechSynthesis.speak(msg);

希望这对您或其他搜索它的人有所帮助。

关于javascript - HTML5 语音合成 API - 只能使用 "native"语音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29920285/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com