获取消息的文本朗读持续时间(javascript、语音合成语句、chrome)

xvw2m8pv  于 2022-12-20  发布在  Go
关注(0)|答案(1)|浏览(152)

有没有可能得到阅读特定消息所需的时间?我想使用SpeechSynthesisUtterance Web API,它只需要在Google Chrome中工作。
是否建议使用第三方库?在后台测量时间是否可行?

7hiiyaii

7hiiyaii1#

作为一种变通方法(使用SpeechSynthesisUtterance),我可以借助onend事件来测量时间。这并非适用于所有情况,因为测量时间需要花费一些时间,而且也不是很精确。您可以提高速度(最多10),但它会变得非常不精确。

var speed = 2;
var text = "Test";
var speech = new SpeechSynthesisUtterance(text);
var speakDuration;

speech.volume = 0;
speech.rate = speed;

speech.onend = function (event) {
    speakDuration = event.elapsedTime / speed;
    console.log(speakDuration)
};

window.speechSynthesis.speak(speech);

相关问题