我有一个使用 HTML5 语音合成 API 的 Web 应用程序,它可以工作 - 但只能使用本机语音。这是我的代码:
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);
}
voices[10] 是唯一有效的声音,当我将其记录到控制台时,我可以看到它是本机声音 - 这似乎表明其他声音没有正确加载,但它们仍然出现在 voices 数组中当它登录到控制台时,您可以在此处看到:
有人有想法么?我确定我可能遗漏了一些相对简单的东西,但我已经为此苦苦挣扎了一段时间!我正在使用 Google Chrome 版本 42.0.2311.90,据我所知,它应该支持语音合成 API。