300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 微信小程序实现语音合成功能

微信小程序实现语音合成功能

时间:2020-09-08 15:26:36

相关推荐

微信小程序实现语音合成功能

调用微信腾讯云智能语音实现智能语音播报

适用场景:小程序需要实现文本合成语音播报时

通过调用腾讯云智能语音实现

具体实现步骤

小程序登录微信公众平台点击设置–>第三方设置–>插件管理–>添加插件搜索腾讯云智能语音,如下图示

在自己的小程序(pages.json或者app.json)添加插件:

"plugins": {// 引入插件"QCloudAIVoice": {"version": "1.3.4", //请于文档顶部【版本更新能力】中获取最新版本号"provider": "wx3e17776051baf153"}}

在需要使用插件的页面引入插件

let plugin = requirePlugin("QCloudAIVoice");// 引入插件plugin.setQCloudSecret(appid, secretid, secretkey, openConsole); //设置腾讯云账号信息,其中appid是数字,secret是字符串,openConsole是布尔值(true/false),为控制台打印日志开关

业务代码编写,以下为示例代码:

<scriprt>// 创建音频组件const innerAudioContext = uni.createInnerAudioContext();innerAudioContext.autoplay = false;innerAudioContext.src = '';// 音频播放方法play(id){var that = this;if(that.oldId == id && that.currentTime > 0){// 控制是否是当前已经播报过,现在处于暂停的文章//暂停之后点击播放继续播放innerAudioContext.play();innerAudioContext.onEnded((res) => {})}else{//新文章var extras = that.content;// 要播报的文本var lastExtras;// 提取汉字(由于笔者要播报的来自富文本,所以需要提取文字)if(extras != null && extras != ''){// 去掉html标签lastExtras = extras.replace(/<[^>]+>/g,"");// 只留汉字和数字lastExtras = lastExtras.replace(/[^\u4e00-\u9fa5_0-9]/gi,"");}if(lastExtras.length > 100){lastExtras = lastExtras.substr(0,100);}var encoded = encodeURI(lastExtras);plugin.textToSpeech({content: lastExtras,speed: 0,volume: 0,voiceType: 0,language: 1,projectId: 0,sampleRate: 16000,success: function(data) {let url = data.result.filePath;if(url && url.length > 0){innerAudioContext.autoplay = true;innerAudioContext.src = url;innerAudioContext.onPlay(() => {});innerAudioContext.onError((res) => {console.log(res.errMsg)});}},fail: function(error){console.log(error);}})}that.oldId = id;},</script>

总结

以上就是通过调用腾讯云智能语音插件实现文本合成的步骤,文章代码仅为示例代码。

具体使用可参考官方文档(需要登录,执行完第三步就看到啦)由于只支持100个汉字合成语音,如果需要合成超过100字以上的文章,需要截取处理,具体操作可以查看我的下一篇文章!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。