Linux SDK 文档
1、简介
与语音听写相反,语音合成是将一段文字转换为成语音,可根据需要合成出不同音色、语速和语调的声音,让机器像人一样开口说话。
合成详细的接口介绍及说明请参考: MSC Linux API 文档 ,在集成过程中如有疑问,可登录讯飞开放平台论坛 ,查找答案或与其他开发者交流。
离线语音合成新版XTTS高品质版已经上线~ 合成效果更好,欢迎体验~普通版即旧版离线语音合成。新上线的高品质版合成效果比普通版更好,但资源占用略高,可根据业务需求合理选择,高品质版离线合成目前支持Android、iOS、Linux 平台。
#2、SDK集成指南
#2.1 Demo运行步骤
2.进入sdk内samples/tts_offline_sample目录source 64bit_make.sh或32bit_make.sh, 视系统位数选择
3.运行成功后进入sdk bin目录下cd ../../bin/,运行./tts_offline_sample即可看到运行结果
#2.2 项目集成步骤
#2.2.1 sdk包说明
《SDK目录结构一览》
- bin:
- msc(生成msc日志)
- 相关资源文件
- doc:
- 相关技术文档
- include:
- 调用SDK所需头文件
- libs:
- x86/libmsc.so(32位动态库)
- x64/libmsc.so(64位动态库)
- samples:
- tts_offline_sample(离线语音合成示例)
注意:
- 为了减少SDK包在应用中占用的大小,官网在下载单个功能的SDK包时, 可能并不包含其他功能,如下载合成的SDK包时,可能不包含听写或唤醒等功能,因此在运行未包含功能的示例时,可能会报错。对此请下载对应功能的SDK,或下载组合的SDK包。
#2.2.2 sdk导入
- 新建目录Demo,将SDK中bin,include,libs文件夹复制到新建工程“Demo”文件夹下
- 在demo目录新建文件demo.c,详细源码请参考samples中对应的语音示例
- 在demo目录下,创建Makefile文件,具体参见samples下的Makefile,修改路径和目标文件即可
- 将samples目录下“32bit_make.sh”文件或者“64bit_make.sh”文件拷到demo目录下,修改libmsc.so库搜索路径
- cd到demo目录下,执行“source 32bit_make.sh”或者 “source 64bit_make.sh”完成编译
- cd到bin目录下运行目标文件,SDK启动后,bin/msc目录下会生成日志(注意:msc文件夹下需有msc.cfg文件)
#2.2.3 API调用流程
语音合成主要API调用流程如下图所示:
详细代码调用请参考 Samples中的 tts_sample(语音合成示例),API详细描述请参考API文档
#2.3 参数与说明
#2.3.1 离线引擎说明
离线引擎(TYPE_LOCAL),又称为本地模式,不需要使用网络,合成的速度更快,但同时要求购买并使用对应的离线资源(下载对应离线功能的SDK包)。离线服务,需要在QTTSSessionBegin()时设置以下两个参数:
参数 | 名称 | 取值 |
---|---|---|
engine_type | 引擎类型 | 通过此参数设置离线模式,普通版设置为local,高品质版设置为purextts |
tts_res_path | 合成资源路径 | 合成资源所在路径,支持fo 方式参数设置,对应格式如下:fo丨res/tts/xiaoyan.jet;fo|res/tts/common.jet |
#2.3.2 常用参数与说明
以下为常用参数说明,更多参数设置请参考API文档
参数 | 名称 | 说明 |
---|---|---|
voice_name | 发音人 | 不同的发音人代表了不同的音色,如男声、女声、童声等,详细请参照《发音人列表》 |
speed | 语速 | 合成音频对应的语速,取值范围:[0,100],数值越大语速越快。默认值:50 |
volume | 音量 | 合成音频的音量,取值范围:[0,100],数值越大音量越大。默认值:50 |
tts_res_path | 合成资源路径 | 合成资源所在路径,支持fo 方式参数设置,对应格式如下:fo|[file_info]|[offset]|[length],如:fo|common.jet|0|1024;fo| xiaoyan.jet|0|1024 |
rdn | 数字发音 | 合成音频数字发音,支持参数, 0 数值优先, 1 完全数值, 2 完全字符串, 3 字符串优先, 默认值:0 |
rcn | 1 的中文发音 | 支持参数: 0:表示发音为yao 1:表示发音为yi 默认值:0 |
sample_rate | 合成音频采样率 | 合成音频采样率,支持参数,16000,8000(离线高品质合成暂不支持),默认为16000 |
#2.3.3 离线发音人列表
- 普通的离线语音合成的common.jet(4.10 MB)+发音人.jet资源配合使用,普通的离线语音合成中文和英文发音人均依赖common.jet。
类型 | 发音人中文名称 | 音色 | 发音人资源文件名 | 发音人资源大小 |
---|---|---|---|---|
播报 | 讯飞小燕 | 青年女声 | 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 |
2、高品质离线语音合成的common.jet(约20.4M)+发音人.jet资源配合使用
注:高品质离线语音合成若使用到了英文发音人,需配合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 |
- 离线语音合成购买的发音人使用方法
平台上购买离线语音合成后下载的sdk包,默认只提供小燕和小峰的资源(.jet),也就是说只有这两个发音人可以使用,如果购买(购买方式1:离线语音合成主页—离线发音人库—立即购买—选择绑定的应用—付款;购买方式2:控制台—应用—离线语音合成—服务管理—购买离线发音人音库—付款。付款后重新下载离线语音合成sdk,在sdk中的中会自动多一个购买的发音人资源。)了其他的发音人的话,您就会拿到其他发音人的资源(.jet),以小芳的发音人为例,购买后您会拿到小芳的资源(xiaofang.jet)。
注意:
使用购买的新的发音人要注意加载的资源名称,voice_name,资源路径中的资源名称三者的统一,否则会无法正常使用。
#3、常见问题
#离线合成报11203错误显示授权过期?
答:这个是由于当前离线资源处于试用期并且已过对应的试用离线期限,请购买离线资源并重新下载sdk即可解决。
#离线合成资源路径问题
答:linux合成资源路径设置方式是相对路径:fo|res\tts\xiaoyan.jet;fo|res\tts\common.jet,当然也可以写成绝对路径形式。
#linux sdk在一些ARM板子测试的时候合成效率比较低
答:首先这个制约与设备性能有一定关系,比如ARM板子的内存,主频以及存储空间的大小都会对合成效率带来一定影响,同时服务调用过多导致频繁生成msc.log以及其他相关tts日志也会提高合成所需时间,总体建议关闭日志生成和提高终端设备的配置。
#Linux sdk中MSPLogin接口是否服务开启之后每次都要调用?
答:不是,初始化只需一次,然后再调用合成服务的QTTSSessionBegin接口,不需要重复调用,待调用合成接口结束之后再调用MSPLogout,否则结果不可预期。
#arm架构如何使用SDK?
答:默认提供的只有X86的so库,arm和mips架构请提交交叉编译工单(申请交叉编译的用户需要先完成企业认证,然后下载填写交叉编译申请表格 提交到工单中)。
#Linux sdk能否生成mp3格式的音频
答:默认生成wav格式的音频,mp3建议使用在线合成webapi集成接入。