google chrome speechSynthesis 中的女声
Female voice in google chrome speechSynthesis
我在这两种情况下都使用了这个确切的代码。
var msg = new SpeechSynthesisUtterance();
var voices = window.speechSynthesis.getVoices();
msg.voice = voices[1];
msg.text = "hello world";
msg.lang = 'en-US';
speechSynthesis.speak(msg);
如果我在 chrome 控制台中 运行 这个,我会得到一个女声。但是,如果我将确切的代码放在 index.html 和 运行 中,它就会播放男声。任何人都可以澄清为什么会出现这种差异。提前致谢。
找到根本原因。
Getting the list of voices in speechSynthesis of Chrome (Web Speech API)
调用是异步的,所以当我在 index.html 中尝试 运行 时,voices 数组是空的。正如我在 运行 然后使用 speak 时所建议的那样,它工作正常。
var msg;
var voices;
var timer = setInterval(function() {
voices = speechSynthesis.getVoices();
console.log(voices);
if (voices.length !== 0) {
msg = new SpeechSynthesisUtterance();
msg.voice = voices[0];
speechSynthesis.speak(msg);
msg.lang = 'en-US';
clearInterval(timer);
}
}, 200);
timer();
speechSynthesis.speak("hello world");
我在这两种情况下都使用了这个确切的代码。
var msg = new SpeechSynthesisUtterance();
var voices = window.speechSynthesis.getVoices();
msg.voice = voices[1];
msg.text = "hello world";
msg.lang = 'en-US';
speechSynthesis.speak(msg);
如果我在 chrome 控制台中 运行 这个,我会得到一个女声。但是,如果我将确切的代码放在 index.html 和 运行 中,它就会播放男声。任何人都可以澄清为什么会出现这种差异。提前致谢。
找到根本原因。 Getting the list of voices in speechSynthesis of Chrome (Web Speech API)
调用是异步的,所以当我在 index.html 中尝试 运行 时,voices 数组是空的。正如我在 运行 然后使用 speak 时所建议的那样,它工作正常。
var msg;
var voices;
var timer = setInterval(function() {
voices = speechSynthesis.getVoices();
console.log(voices);
if (voices.length !== 0) {
msg = new SpeechSynthesisUtterance();
msg.voice = voices[0];
speechSynthesis.speak(msg);
msg.lang = 'en-US';
clearInterval(timer);
}
}, 200);
timer();
speechSynthesis.speak("hello world");