⼩程序--语⾳合成:将⽂字转为语⾳(插件:同声传
译)
直接上⼿吧。
1. ⼩程序后台添加插件:同声传译以及在app.json进⾏配置
2. 代码实现
页⾯如下:
21. wxml代码如下:
<view class="yuyinWrap">
<textarea class='yuyinCon' placeholder='请输⼊内容' value='{{content}}' bindinput='conInput'></textarea>
<view class=''>
<button class="yuyinBtn start" bindtap='wordYun'>开始</button>
<button class="yuyinBtn" bindtap='end'>结束</button>
</view>
</view>
wcss代码如下:
.yuyinWrap {
position: relative;
margin-top:300rpx;
}
.yuyinCon {
border: 1px solid #ccc;
margin: 0 auto;
padding: 10rpx 10rpx 70rpx;
}
.yuyinBtn {
width: 30%;
height: 70rpx;
position: absolute;
right: 112rpx;
bottom: 12rpx;
border: 1px solid #eee;
background: #fff;
color: #606267;
line-height: 62rpx;
}
.start{
left: -112rpx;
}
22.js代码(重点):
思路:
1)将⽂字转为语⾳
具体看如上,其中成功回调success中,返回的res有⼏个参数,如下:
所需要就是filename参数的值。如果需要保存到后台,就只需要filename,按照⽂件上传的⽅式。
2)播放语⾳
在onReady⽅法中实例化⼀个innerAudioContext。
onReady(e) {
//创建内部 audio 上下⽂ InnerAudioContext 对象。
this.innerAudioContext = wx.createInnerAudioContext();
Error(function (res) {
console.log(res);
wx.showToast({
title: '语⾳播放失败',
icon: 'none',
})
})
},
语⾳播放代码如下:
//播放语⾳
yuyinPlay: function (e) {
if (this.data.src == '') {
console.log(暂⽆语⾳);
return;
}
this.innerAudioContext.src = this.data.src
this.innerAudioContext.play();
},
语⾳暂停如下:
// 结束语⾳
end: function (e) {
this.innerAudioContext.pause();
},
全部js代码如下:
const app = getApp();
//引⼊插件:同声传译
const plugin = requirePlugin('WechatSI');
Page({
/
**
* 页⾯的初始数据
*/
data: {
content: '',//内容
src:'', //
},
onReady(e) {
//创建内部 audio 上下⽂ InnerAudioContext 对象。
this.innerAudioContext = wx.createInnerAudioContext(); Error(function (res) {
console.log(res);
wx.showToast({
代码转换title: '语⾳播放失败',
icon: 'none',
})
})
},
// ⼿动输⼊内容
conInput: function (e) {
this.setData({
content: e.detail.value,
})
},
// ⽂字转语⾳
wordYun:function (e) {
var that = this;
var content = t;
lang: "zh_CN",
tts: true,
content: content,
success: function (res) {
console.log(res);
console.log("succ tts", res.filename);
console.log("succ tts", res.filename);
that.setData({
src: res.filename
})
that.yuyinPlay();
},
fail: function (res) {
console.log("fail tts", res)
}
})
},
//播放语⾳
yuyinPlay: function (e) {
if (this.data.src == '') {
console.log(暂⽆语⾳);
return;
}
this.innerAudioContext.src = this.data.src //设置⾳频地址
this.innerAudioContext.play(); //播放⾳频
},
// 结束语⾳
end: function (e) {
this.innerAudioContext.pause();//暂停⾳频
},
})
可在开发⼯具、⼿机测试。
此外,注意的是:⽂字转语⾳,每个⼩程序100次/分钟,2w次/天
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论