javascript - 在调用 speak 之前预加载 Web Speech API

标签 javascript speech speech-synthesis synthesize webspeech-api

所以我注意到,在您使用 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');
}

代码笔示例: http://codepen.io/anon/pen/qNwOAO

关于javascript - 在调用 speak 之前预加载 Web Speech API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29522985/

相关文章:

JavaScript中对象属性的定义

javascript - 如何从 localStorage 中删除对象或数组?

C# - 免费离线语音识别库 (SDK)

java - 如何在 java sphinx4 项目中导入和使用经过训练的声学模型

ios - Swift:在沉默 x 秒后停止语音识别

javascript - 使用语音合成说出字符串数组,中间有停顿

web - 如何通过 Google Chrome 中的 Web Speech API 获取女声

javascript - 如何获取我滚动到的 div 的 ID?

javascript - speechSynthesis.getVoices() 在 Windows 上返回空数组

javascript - .offsetWidth、.width、.width() 等并不总是在自动调整大小的元素上正确返回