前言
上篇文章实现卡片的浏览学习功能,我们已经实现了声音播放。但是这些朗读词语的声音mp3文件是怎么生成,我们是否可以用自动化的方式来生成?
一、声音的播放
在小程序中,使用下面代码实现声音播放:
const innerAudioContext = wx.createInnerAudioContext()
innerAudioContext.autoplay = true
innerAudioContext.src = 'http://www.xxx.cn/images/tts/test.mp3'
innerAudioContext.onPlay(() => {})
二、使用TTS生成音频文件
由于词语的中文、英文文本我们已经有了,所以可以使用TTS(Text To Speech,从文本到语音)的方式,来生成文本对应的音频文件。有一些工具和平台可以帮助我们实现,推荐百度智能云或者讯飞开放平台,这里我们以百度智能云为例。哈哈,这样BAT三个公司的平台我们都注册了一个账号,在这个案例中综合学习运用了各自一个产品。
百度智能云TTS功能,提供了一定次数的免费调用(有并发调用限制),超过一定调用次数后需要付费购买服务。所以我们将预先逐个词语文本调用服务生成音频文件,小程序运行时候播放的是已生成的音频文件;而不是每次播放都需要调用百度服务来进行TTS转换,避免一直需要付费调用的情况。
1.申请百度智能云账号
使用已有的百度账号,或者重新注册账号,登录百度智能云平台:
https://cloud.baidu.com/
2.创建语音技术应用
登陆后,进入“管理控制台”,点击“产品服务”,再打开“语音技术”。
点击“创建应用”,创建一个语音合成的应用。
创建后,可以获取到AppID、API Key和Secret Key,这些信息在后面程序开发调用服务时需要用到。
同时可以查看开发文档和下载不同开发平台的SDK。
3.文本转语音文件代码
我们使用C#来实现功能。需要应用SDK里提供的AipSdk.dll。
//应用的API Key和Secret Key
var API_KEY = "";
var SECRET_KEY = "";
//语音合成
var _ttsClient = new Baidu.Aip.Speech.Tts(API_KEY, SECRET_KEY);
_ttsClient.Timeout = 60000; //超时时间
var option = new Dictionary<string, object>()
{
{"spd", 5}, //语速
{"vol", 10}, //音量
{"per", Convert.ToInt32(textBox3.Text)} // 发音人——1:男声;0:女声;4:童声
};
var result = _ttsClient.Synthesis("测试文本", option);
if (result.ErrorCode == 0)
{
File.WriteAllBytes("E:\\TTS\\" + "test.mp3", result.Data);
MessageBox.Show("完成");
}
else
{
MessageBox.Show("失败:" + result.ErrorMsg);
}
看起来,直接调用SDK里的方法,代码还是比较简单的。可以实现批量生成的操作,比如查询数据库表获取所有文本内容,然后遍历调用这个方法逐个生成音频文件。
专题文章链接
最详细的【微信小程序+阿里云Web服务】开发部署指引(一):准备开始
最详细的【微信小程序+阿里云Web服务】开发部署指引(二):注册微信小程序
最详细的【微信小程序+阿里云Web服务】开发部署指引(三):开通阿里云主机
最详细的【微信小程序+阿里云Web服务】开发部署指引(四):搭建服务端数据库
最详细的【微信小程序+阿里云Web服务】开发部署指引(五):实现服务端调用逻辑
最详细的【微信小程序+阿里云Web服务】开发部署指引(六):开发微信小程序的准备
最详细的【微信小程序+阿里云Web服务】开发部署指引(七):小程序项目中的文件资源
最详细的【微信小程序+阿里云Web服务】开发部署指引(八):开发小程序卡片类型呈现功能
最详细的【微信小程序+阿里云Web服务】开发部署指引(九):开发小程序卡片浏览功能
最详细的【微信小程序+阿里云Web服务】开发部署指引(十):实现发音朗读
最详细的【微信小程序+阿里云Web服务】开发部署指引(十一):开发小程序设置功能
最详细的【微信小程序+阿里云Web服务】开发部署指引(十二):开发小程序用户反馈功能
最详细的【微信小程序+阿里云Web服务】开发部署指引(十三):小程序底部菜单
最详细的【微信小程序+阿里云Web服务】开发部署指引(十四):发布小程序
最详细的【微信小程序+阿里云Web服务】开发部署指引(十五):结语