最近在看虚拟人的技术,想自己做个简易版本的,然后就需要用到文字转语音技术,本来想用java实现,再把语音文件传到前端,但是发现浏览器自带了文字转语音,这里记录一下。
playRadio(text){
// 创建一个新的 SpeechSynthesisUtterance 实例
let msg = new SpeechSynthesisUtterance(text);
msg.lang = 'zh-CN';// 设置语音的语言,这里设置为中文
msg.rate = 1;// 设置语速,范围通常是 0.1 到 10,默认是 1
msg.volume = 1;// 设置音量,范围通常是 0 到 1,默认是 1
msg.pitch = 1;// 设置音调,范围通常是 0 到 2,默认是 1
window.speechSynthesis.speak(msg);// 开始朗读
},
上面就是所有的js源码了,通过创建一个SpeechSynthesisUterance实例,并把需要转成语音的文字传入进去,设置参数,比如语言类型,语速,音量,音调呢,然后将此实例传入到window.speechSynthesis.speak();方法中,就可以将传入的Text文件内容读出来,不过声音是比较生硬的那种,比不了大模型chattts产生的,但是贵在方便,要求不高的场景可以很方便的调用。