所以我注意到,在您使用 speechSynthesis.speak
进行第一次演讲后,它会显着加快提供结果的速度。所以我下面的目标是通过预初始化合成来加速它,所以当我们调用 speakIt()
时我们不必等待它。它根本没有加速;关于为什么它没有加速以及我如何解决它的任何建议?
完整脚本:
var speech = new SpeechSynthesisUtterance("test");
var voices = window.speechSynthesis.getVoices();
speech.default = false;
speech.voice = voices.filter(function(voice) { return voice.name == 'Google UK English Male'; })[0];
speech.lang = 'en-GB';
function speakIt(word){
speech.text = word;
window.speechSynthesis.speak(speech);
}
chrome.tts.speak
似乎快了一点,但肯定不存在,但这不是重点——这应该仍然有效。在有人找到答案之前,我将迁移到 Chrome 的使用。
最佳答案
您需要在执行语音之前进行一些设置。我希望更多的例子包括这个。具体来说,您应该调用 getVoices() 并添加事件处理程序以在页面加载时提前填充语音。我已经为你写了一个类。请参阅 Codepen 示例。
var speech = new Speech();
if (speech.supported()) {
speech.speak('hello, speech is working fine');
}
关于javascript - 在调用 speak 之前预加载 Web Speech API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29522985/