用于小程序开发的语音合成
小程序开发
浏览:1009 次

如今,越来越多的人成为视频博主。文本到语音是许多博客作者的强烈需求。今天,我们将介绍如何使用微信小程序“工具库”开发文本到语音的功能。
微信图片_ 20210712074427.jpg
文本到语音在学术界被称为tts(Text-to-speech),国内ECS厂商提供了呼叫接口。每个腾讯云用户可以免费获得一个为期两个月的800万字符语音包,用于学习和研究,因此本文以腾讯云为例进行介绍。
服务器开发
当调用腾讯云tts接口时,服务器需要使用appId和appKey进行身份验证。您需要先创建密钥,然后按照页面上的提示进行操作。
调用接口需要一系列复杂的签名操作。为了方便用户,腾讯云提供多种编程语言的SDK。您可以转到页面底部找到所需的SDK。以nodejs为例,只需在package.json中介绍它。
“依赖关系”:{
“腾讯云sdk节点”:“4.0.157”
}
合成语音的几个重要参数是:语速、语音颜色、文本内容和音量。腾讯云提供了一个可视化工具来指导开发者构造请求参数。开发人员只需要参考本节中的调用方法,就可以使用sdk调用服务器。
路由器。get(“/text to voice”,异步(req,res)=>{
设ret={
成功:真
}
尝试{
if(req.query.textValue){
ret=等待内容检查(req.query.textValue);
如果(重试成功){
让参数={
“文本”:req.query.textValue,

“会话ID”:req.query.session,
“VoiceType”:请求查询。语音类型?parseInt(req.query.voiceType):2,
“模型类型”:1,
“速度”:req.query。语音速度?parseInt(req.query.voiceSpeed):0,
“卷”:req.query。体积parseInt(req.query.volume):0
}
让tmp=等待ttsClient.TextToVoice(参数)
fs。writeFileSync(“/www/voice/”+(req.query.oriSession?req.quiry.session:md5(req_query.session+req.query.randomSand))+“.wav”,Buffer.from(tmp.Audio,“base64”))
}
}其他{
ret.success=假;
ret.frontMessage=全局变量.front消息参数错误
}
}捕获(错误){
ret.success=假;
ret.frontMessage=全局变量.front消息.busy;
console.log(错误)
}
res.json(返回)
})

上述代码是“工具库”小程序的后端核心代码。它将解码tts接口返回的base64数据,然后将其写入文件。此文件目录已在nginx上配置,可以直接访问。
位置~(/images/|/voice/){
root/www;
}
小程序的内容相对简单,提供了用户选择所需的交互。语音生成后,用户可以收听。只需播放合成的语音文件。由于微信小程序的限制,语音文件只能在下载语音时通过浏览器打开。将创建一个弹出窗口来提示用户,并将语音文件地址复制到剪贴板。
playVoice:函数(evt){
if(!this.data.audio){
此数据。音频=wx.createInnerAudioContext();
此数据音频。src=this.data.voiceUrl;
此数据音频。结束时(()=>{
this.set数据({
播放:假
})
});
}
this.data.audio.play();
this.set数据({
播放:真
})

}