35 lines
609 B
JavaScript
35 lines
609 B
JavaScript
|
|
|
|
const synth = window.speechSynthesis;
|
|
|
|
const speak = (text) => {
|
|
if (text !== "") {
|
|
// 获得说话文本
|
|
const speakText = new SpeechSynthesisUtterance(text);
|
|
|
|
|
|
// 验证是否在说话
|
|
if (synth.speaking) {
|
|
console.error("正在说话中...");
|
|
return;
|
|
}
|
|
|
|
// 说话结束触发
|
|
speakText.onend = e => {
|
|
console.log("说话结束");
|
|
};
|
|
|
|
// 发生阻止说出话语的错误就触发
|
|
speakText.onerror = e => {
|
|
console.error("抱歉出错了");
|
|
};
|
|
|
|
speakText.lang = "zh-CN";
|
|
// 设置音速和音调
|
|
speakText.rate = 0.8;
|
|
speakText.pitch = 1;
|
|
|
|
// speak
|
|
synth.speak(speakText);
|
|
}
|
|
}; |