原始地址:https://dev.to/asaoluelijah/text-to-speech-in-3-lines-of-javascript-b8h
‘’'如果你有兴趣尝试一下,下面的3行代码是这样的。👇
var msg = new SpeechSynthesisUtterance();
msg.text = “Hello World”;
window.speechSynthesis.speak(msg);
但是如果你不着急,这篇文章将用JavaScript讲解有关将文本转化为语音(口语)的一切内容。
引言
在以前的一篇文章中,我们探索了Web Speech API以及如何将语音转化为文字。
Web Speech API的另一个令人惊叹的功能是将文本转化为语音。
注意:文本转语音!=语音转文本🧐
- 文本转语音是指我们给计算机一些“单词”,计算机会用一种机器人/人类的声音大声说出这些单词。而
- 语音转文本是指当我们对计算机说出一些单词时,我们刚刚说的话将被转化为文本(我觉得这已经很好理解了)
开始
我们首先需要检查浏览器是否支持语音合成API。下面的代码就可以做到这一点:
if (‘speechSynthesis’ in window) {
// Speech Synthesis supported 🎉
}else{
// Speech Synthesis Not Supported 😣
alert(“对不起,您的浏览器不支持文本转语音!”);
}
下一步是创建一个新的speechSynthesis对象,添加所需的属性,并让我们的应用程序说话👇
var msg = new SpeechSynthesisUtterance();
msg.text = “早上好”;
window.speechSynthesis.speak(msg);
- 第一行:我们创建了一个名为msg的变量,并将其值分配为speechSynthesis类的新实例。
- 第二行:.text属性用于指定要转化为语音的文本
- 最后,第三行的代码是让我们的浏览器真正发声的代码。
更改默认输出
speechSynthesis API还允许更改默认输出,如更改语音、音量、语速、语言、音高等:
var msg = new SpeechSynthesisUtterance();
var voices = window.speechSynthesis.getVoices();
msg.voice = voices[10];
msg.volume = 1; // 从0到1
msg.rate = 1; // 从0.1到10
msg.pitch = 2; // 从0到2
msg.text = “Como estas Joel”;
msg.lang = ‘es’;
speechSynthesis.speak(msg);
获取支持的语音
下面的代码可以帮助您获取所有支持的语音列表:
speechSynthesis.getVoices().forEach(function(voice) {
console.log(voice.name, voice.default ? voice.default :‘’);
});