5

所以我注意到,在您使用 进行第一次发言后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 的用法。

4

1 回答 1

0

在进行演讲之前,您需要进行一些设置。我希望更多的例子包括这个。具体来说,您应该调用 getVoices()添加一个事件处理程序以在页面加载时提前填充语音。我已经为你写了一个类。请参阅 Codepen 示例。

var speech = new Speech();

if (speech.supported()) {
  speech.speak('hello, speech is working fine');
}

Codepen 示例: http ://codepen.io/anon/pen/qNwOAO

于 2016-01-06T01:56:22.200 回答