调用微信腾讯云智能语音实现智能语音播报
适用场景:小程序需要实现文本合成语音播报时
通过调用腾讯云智能语音实现
具体实现步骤
小程序登录微信公众平台点击设置–>第三方设置–>插件管理–>添加插件搜索腾讯云智能语音
,如下图示在自己的小程序(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字以上的文章,需要截取处理,具体操作可以查看我的下一篇文章!