uniapp: ruoyi-App 引用百度语音合成

百度智能云:运用百度智能云AI技术,助推贵阳企业上云、生产上云、管理上云,打造制造业智能化转型服务生态圈,为贵阳市数字经济和工业互联网高质量发展贡献力量。

官网:百度智能云-云智一体深入产业 (baidu.com)

1.去百度智能云申请百度语音合成服务

1.1创建应用

长文本和短文本的语音合成区别在于,长文本可以合成60秒以上的语音,而短文本只能合成60秒以下的语音,具体要选择哪种服务,要根据自己的需要或者项目需要。

1.2 领取短文本语音合成的资源

2.查看官方文档,学习语音合成

我们点击demo,查看官方写的demo

2.1 进入gitHub 学习官方提供的demo

2.2 查看文件TtsMain.java

看完代码后,我们获取了语音合成的url:http://tsn.baidu.com/text2audio 这个我们后面有用

我们发现关键的token,我们拿取不到,我们需要查看TokenHolder.java来知道,token如何获取

token的获取需要我们调用另一个接口,http://aip.baidubce.com/oauth/2.0/token  

它需要三个参数:grant_type:client_credentials (官方提供的参数)

                             client_id: apiKey   (应用的apiKey)

                              client_secret: secretKey (应用的secretKey)

我们学习完官方文档后,我们知道了语音合成所需要的接口,和参数,我接下来需要拿取我们在百度智慧云应用上的apiKey和 secretKey

2.3 获取ApiKey 和 Secret Key

3.为微信小程序添加服务器域名

由于ruiyi_App是个小程序,我们需要前往微信工作平台,添加服务器域名

添加http://aip.baidubce.com/oauth/2.0/token    http://aip.baidubce.com/oauth/2.0/token

4.最后一步,我们需要在ruoyi_App上进行测试

 因为语音合成返回的是一个音频数据连接,我们需要用uniapp的api来读取音频

我们选用uni.createInnerAudioContext()   uni.createInnerAudioContext() | uni-app (dcloud.io) 

准备好了后,我们开始书写我们的代码

首先先添加一个按钮 button 给它一个方法 play

<view class="sentence_footer">
    <text class="button_text"># {{ item.caption}}</text>
    <button class="sentence_button" @click="play(item.content)">
    <text class="iconfont icon-laba-copy listen"></text>
    </button>
</view>

我们的play方法,写在methods里面

play(content) {
				//this.english = 'Здравствуйте, я разработчик Shandong Yi Road, очень рад, что вы можете использовать наши продукты '
				const innerAudioContext = uni.createInnerAudioContext()
				uni.request({
					url: 'https://aip.baidubce.com/oauth/2.0/token',
					data: {
						grant_type: 'client_credentials',
						client_id: '你的ApiKey',
						client_secret: '你的Secret Key'
					},
					success: (res) => {
						if (uni.setInnerAudioOption) {
							uni.setInnerAudioOption({
								obeyMuteSwitch: false,
								autoplay: true
							})
						} else {
							innerAudioContext.obeyMuteSwitch = false;
							innerAudioContext.autoplay = true;
						}
						innerAudioContext.onCanplay(() => {
							console.log('可以播放');
						});
						innerAudioContext.onError((res) => {
							console.log(res.errMsg);
							console.log(res.errCode);
						});
						innerAudioContext.autoplay = true;
						innerAudioContext.src =
							'https://tsn.baidu.com/text2audio?lan=zh&ctp=1&cuid=abcdxxx&tok=' +
							res.data.access_token + '&tex=' + encodeURIComponent(content) +
							'&vol=5&per=0&spd=5&pit=5&aue=3';
						innerAudioContext.onPlay(() => {
							console.log('开始播放');
						});

					}
				})

			},

然后我们ctrl + s 准备运行 

代码已经测试成功,我们的语音合成接口完满成功

  • 28
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值