仅用三行 JavaScript 代码即可实现文本转语音
如果您想尝试一下,请参阅下面的 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("Sorry, your browser doesn't support text to speech!");
}
下一步是创建一个新的 speechSynthesis 对象,添加所需的属性并使我们的应用程序说话👇
var msg = new SpeechSynthesisUtterance();
msg.text = "Good Morning";
window.speechSynthesis.speak(msg);
代码解释
- 第 1 行:我们创建了一个变量
msg
,并赋予它该类的一个新实例speechSynthesis
。 - 第 2 行:该
.text
属性用于指定我们要转换为语音的文本 - 最后,第三行(最后一行)的代码才是真正让我们的浏览器对话的代码。
改变默认输出
speechSynthesis API 还提供了更改默认输出的空间,例如更改语音、音量、语速、语言、音调等:
var msg = new SpeechSynthesisUtterance();
var voices = window.speechSynthesis.getVoices();
msg.voice = voices[10];
msg.volume = 1; // From 0 to 1
msg.rate = 1; // From 0.1 to 10
msg.pitch = 2; // From 0 to 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 :'');
});
结论
好吧,我想这里没有什么可以总结的。但是你可以在Twitter
上关注我,我会发布和转发有趣的技术内容;你肯定想看看。
感谢阅读👏
文章来源:https://dev.to/asaoluelijah/text-to-speech-in-3-lines-of-javascript-b8h