用于小程序开发的语音合成

小程序开发


浏览: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数据({

播放:真

})

}