与语音听写相反,语音合成是将一段文字转换为成语音,可根据需要合成出不同音色、语速和语调的声音,让机器像人一样开口说话。
离线语音合成详细的接口介绍及说明请参考: MSC Android API 文档。
在集成过程中出现错误,请优先查询SDK&API 错误码查询。如有疑问,请提交工单进行咨询,也可登录讯飞开放平台论坛与广大开发者共同学习和交流。
离线语音合成新版XTTS高品质版已经上线~ 合成效果更好,欢迎体验~普通版即旧版离线语音合成。新上线的高品质版合成效果比普通版更好,但资源占用略高,可根据业务需求合理选择,高品质版离线合成目前支持Android、iOS、Linux 平台。
根据官网控制台普通版、高品质版提示,直接下载SDK,SDK中包含简易可运行的Demo。如下图所示:
下载完SDK后,解压至相应的路径。
注:使用demo测试时,需将res中除layout外资源拷贝到demo中assets相应的路径下
以Android Studio集成开发工具为例,测试时请直接用真机进行测试。
打开Android Studio,在菜单栏File--->new--->import project当前解压sdk路径,使用在线服务能力选择导入mscV5PlusDemo,如下图所示:
导入成功之后sync编译下,编译无误可连接手机,开启手机USB开发调试模式,直接在Android Studio运行导入的mscV5PlusDemo,最后生成的apk可直接安装在对应的手机上,如下图所示:
如果编译时出现“ERROR: Plugin with id 'com.android.application' not found.”错误,请在build.gradle文件中添加以下代码。
buildscript {
repositories {
google()
jcenter()
}
dependencies {
//版本号请根据自己的gradle插件版本号自行更改
classpath 'com.android.tools.build:gradle:3.4.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
如在导入项目中还出现其他问题,可参考帖子:安卓demo常见错误排查
打开Android Studio,在菜单栏File--->new--->import module当前解压sdk路径,使用在线服务能力选择导入mscV5PlusDemo,导入成功之后sync编译下,编译无误可连接手机,开启手机USB开发调试模式,直接在Android Studio运行导入的mscV5PlusDemo,最后生成的apk可直接安装在对应的手机上。
《Android SDK目录结构一览》
将在官网下载的Android SDK 压缩包中libs目录下所有子文件拷贝至Android工程的libs目录下。如下图所示:
注:
在工程 AndroidManifest.xml 文件中添加如下权限
<!--连接网络权限,用于执行云端语音能力 -->
<uses-permission android:name="android.permission.INTERNET"/>
<!--获取手机录音机使用权限,听写、识别、语义理解需要用到此权限 -->
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<!--读取网络信息状态 -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<!--获取当前wifi状态 -->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<!--允许程序改变网络连接状态 -->
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
<!--读取手机信息权限 -->
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<!--读取联系人权限,上传联系人需要用到此权限 -->
<uses-permission android:name="android.permission.READ_CONTACTS"/>
<!--外存储写权限,构建语法需要用到此权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<!--外存储读权限,构建语法需要用到此权限 -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<!--配置权限,用来记录应用配置信息 -->
<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
<!--手机定位信息,用来为语义等功能提供定位,提供更精准的服务-->
<!--定位信息是敏感信息,可通过Setting.setLocationEnable(false)关闭定位请求 -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<!--如需使用人脸识别,还要添加:摄相头权限,拍照需要用到 -->
<uses-permission android:name="android.permission.CAMERA" />
注意:如需在打包或者生成APK的时候进行混淆,请在proguard.cfg中添加如下代码:
-keep class com.iflytek.**{*;}
-keepattributes Signature
初始化即创建语音配置对象,只有初始化后才可以使用MSC的各项服务。建议将初始化放在程序入口处(如Application、Activity的onCreate方法),初始化代码如下:
// 将“12345678”替换成您申请的APPID,申请地址:https://www.ai-tj.cn
// 请勿在“=”与appid之间添加任何空字符或者转义符
SpeechUtility.createUtility(context, SpeechConstant.APPID +"=12345678");
参数名称 | 名称 | 说明 |
---|---|---|
ENGINE_TYPE | 引擎类型 | 通过此参数设置离线模式,普通版设置为TYPE_LOCAL,高品质版设置为TYPE_XTTS |
voice_name | 发音人 | 通过此参数设置不同的发音人,达到不同的语言和方言、性别等效果,默认发音人:xiaoyan |
speed | 合成语速 | 通过此参数,设置合成返回音频的语速,值范围:[0,100],默认:50 |
volume | 合成音量 | 通过此参数,设置合成返回音频的音量,值范围:[0,100],默认:50 |
pitch | 合成语调 | 通过此参数,设置合成返回音频的语调,值范围:[0,100],默认:50 |
sample_rate | 采样率 | 通过此参数设置音频的采样率,可选值:16000,8000(离线高品质合成暂不支持),默认:16000 |
tts_audio_path | 合成录音保存路径 | 通过此参数,可以在合成完成后在本地保存一个音频文件,值范围:有效的文件相对或绝对路径(含文件名),默认值:null |
audio_format | 音频格式 | 通过此参数设置合成音频文件格式,可选:pcm、wav,默认值:pcm |
备注:以上均为SDK常用参数说明,均在setParam()方法里面设置,设置示例:mTts.setParameter(SpeechConstant.VOICE_NAME, voicer);更多详细参数请参考:MSC Android API文档.
类型 | 发音人中文名称 | 音色 | 发音人资源文件名 | 发音人资源大小 |
---|---|---|---|---|
播报 | 讯飞小燕 | 青年女声 | xiaoyan.jet | 3.91 MB |
播报 | 讯飞小峰 | 青年男声 | xiaofeng.jet | 1.27 MB |
播报 | 讯飞小梦 | 青年女声 | xiaomeng.jet | 10.6 MB |
播报 | 讯飞小媛 | 中英文青年女声 | xiaoyuan.jet | 1.89 MB |
播报 | iFlytek John | 英文男声 | john.jet | 1.60 MB |
播报 | 讯飞凯瑟琳 | 青年女声-美式英语 | catherine.jet | 25.5 MB |
播报 | 讯飞小溪 | 青年男声 | xiaoxi.jet | 4.95 MB |
播报 | 讯飞小雪 | 青年女声 | xiaoxue.jet | 3.41 MB |
播报 | 讯飞许久 | 青年男声 | jiuxu.jet | 3.91 MB |
听书 | 讯飞晓倩 | 青年女声-东北话 | xiaoqian.jet | 848 KB |
听书 | 讯飞小蓉 | 青年女声-四川话 | xiaorong.jet | 571 KB |
听书 | 讯飞小坤 | 青年男声-河南话 | xiaokun.jet | 672 KB |
听书 | 讯飞小强 | 青年男声-湖南话 | xiaoqiang.jet | 691 KB |
听书 | 讯飞小英 | 青年女声-陕西话 | xiaoying.jet | 850 KB |
听书 | 讯飞小梅 | 青年女声-广东话 | xiaomei.jet | 1.66 MB |
听书 | 讯飞嘉嘉 | 青年女声 | jiajia.jet | 1.79 MB |
听书 | 讯飞小侯 | 中年男声 | xiaohou.jet | 5.95 MB |
听书 | 讯飞一峰 | 中年男声 | yifeng.jet | 6.59 MB |
听书 | 讯飞晓琳 | 青年女声-台普 | xiaolin.jet | 1.81 MB |
交互 | 讯飞楠楠 | 女童声 | nannan.jet | 1.41 MB |
交互 | 讯飞马宝 | 女童声 | mabao.jet | 1.79 MB |
交互 | 讯飞小芳 | 女童声 | xiaofang.jet | 3.38 MB |
交互 | 讯飞小丸子 | 卡通声音 | xiaowanzi.jet | 13.0 MB |
注:高品质离线语音合成若使用到了英文发音人,需配合common_en.jet(约3MB)使用,如果未用到英文发音人,可在SDK中移除此资源以释放空间
类型 | 发音人中文名称 | 音色 | 发音人资源文件名 | 发音人资源大小 |
---|---|---|---|---|
播报 | 讯飞小燕 | 青年女声 | xiaoyan.jet | 5.91MB |
播报 | 讯飞小峰 | 青年男声 | xiaofeng.jet | 5.91MB |
播报 | 讯飞小媛 | 青年女声 | xiaoyuan.jet | 5.91MB |
播报 | 讯飞一峰 | 青年男声 | yifeng.jet | 5.91MB |
交互 | 讯飞虫虫 | 青年女声 | chongchong.jet | 5.91MB |
交互 | 讯飞小雪 | 青年女声 | xiaoxue.jet | 5.91MB |
交互 | 讯飞楠楠 | 男童声 | nannan.jet | 5.91MB |
听书 | 讯飞小彬 | 青年男声 | xiaobin.jet | 5.91MB |
听书 | 讯飞芳芳 | 女童声 | xiaofang.jet | 5.91MB |
方言 | 讯飞晓琳 | 青年女声-台湾普通话 | xiaolin.jet | 5.91MB |
方言 | 讯飞晓倩 | 青年女声-东北话 | xiaoqian.jet | 5.91MB |
方言 | 讯飞晓蓉 | 青年女声-四川话 | xiaorong.jet | 5.91MB |
方言 | 讯飞小莹 | 青年女声-陕西话 | xiaoying.jet | 5.91MB |
方言 | 讯飞小坤 | 青年男声-河南话 | xiaokun.jet | 5.91MB |
英文 | iFlytek John | 青年男声-美式英语 | John.jet | 6.3MB |
英文 | 讯飞凯瑟琳 | 青年女声-美式英语 | catherine.jet | 6.28MB |
购买方式1:离线语音合成主页—离线发音人库—选择普通版或高品质版-立即购买—选择绑定的应用—付款;
购买方式2:控制台—应用—离线语音合成(普通版)或离线语音合成(高品质版)—服务管理—购买离线发音人音库—付款。
注:
1、离线语音合成(普通版)和离线语音合成(高品质版)发音人不能共用,在购买时,请慎重选择服务。
2、购买成功后重新下载离线语音合成sdk,在sdk中会自动多一个购买的发音人资源。
平台上购买离线语音合成后下载的sdk包,默认只提供小燕和小峰的资源(.jet),也就是说只有这两个发音人可以使用,如果购买了其他的发音人的话,您就会拿到其他发音人的资源(.jet)。
以小芳的发音人为例,购买后您会拿到小芳的资源(xiaofang.jet)。请看下面示例:
以小坤的发音人为例,购买后您会拿到小坤的资源(xiaokun.jet)。请看下面示例:
需将res中xtts文件夹(包含合成的资源)资源拷贝到demo中assets相应的路径下,将xiaokun.jet资源放到demo中assets/xtts路径下。注意:无论使用那个发音人,common.jet资源都是必须要放进去的。
将代码中的voice_name参数修改为小坤,同时资源发音人资源也要修改为xiaokun.jet这样才能正确的加载到正确的资源。
注意:
1、使用购买的新的发音人要注意加载的资源名称,voice_name,资源路径中的资源名称三者的统一,否则者会无法正常使用。
2、高品质离线发音人和普通离线发音人资源存放位置不能相互混淆。
答:在线合成针对有网环境,离线是无网环境;另外在线升级与公有云同步升级,离线响应速度快,在线效果更好,可选择的发音人也更多。
答:将文字信息转化为声音信息,让应用具备离线语音合成的能力。即让机器像人一样开口说话,给开发者的应用配上“嘴巴”。
答:目前离线语音合成支持:IOS/Android/Windows/Linux应用平台,但离线语音合成(高品质版)暂不支持Windows应用平台。
答:目前离线语音合成SDK接口一次最多可支持8192个字节。
答:目前离线语音合成目前支持的语种/方言:中文、英文、粤语、东北话、四川话、河南话、湖南话、陕西话、台湾普通话,但离线语音合成(高品质版)暂不支持湖南话和粤语。
答:默认的中文普通话男女生讯飞小峰和讯飞小燕是免费使用的;离线发音人库2000元/人;高品质离线发音人库4000元/人。
答:登录讯飞开放平台,点击到离线语音合成页面后,选择普通版或高品质版,可查看到相应版本下离线发音人的价格。点击发音人的“立即购买”即可支付购买。
答: 登录讯飞开放平台,点击到离线语音合成页面后,选择普通版或高品质版,可查看到相对应版本价格表。点击对应套餐的“立即购买”即可支付购买。
答: 高品质版合成效果比普通版更好,但资源占用略高,可根据业务需求合理选择
答: 首先确认导入资源是否正确引入,高品质版和普通版离线资源名字相同,但是不可通用,需要进行区分,不可混淆。