# 离线语音合成 Linux SDK 文档

# 1、简介

与语音听写相反,语音合成是将一段文字转换为成语音,可根据需要合成出不同音色、语速和语调的声音,让机器像人一样开口说话。

合成详细的接口介绍及说明请参考: MSC LInux API 文档 ,在集成过程中如有疑问,可登录语音云开发者论坛,查找答案或与其他开发者交流。

离线语音合成新版XTTS高品质版已经上线~ 合成效果更好,欢迎体验~普通版即旧版离线语音合成。新上线的高品质版合成效果比普通版更好,但资源占用略高,可根据业务需求合理选择,高品质版离线合成目前支持Android、iOS、Linux 平台。

# 2、SDK集成指南

# 2.1 Demo运行步骤

1.在控制台下载对应sdk

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导入

  1. 新建目录Demo,将SDK中bin,include,libs文件夹复制到新建工程“Demo”文件夹下
  2. 在demo目录新建文件demo.c,详细源码请参考samples中对应的语音示例
  3. 在demo目录下,创建Makefile文件,具体参见samples下的Makefile,修改路径和目标文件即可
  4. 将samples目录下“32bit_make.sh”文件或者“64bit_make.sh”文件拷到demo目录下,修改libmsc.so库搜索路径
  5. cd到demo目录下,执行“source 32bit_make.sh”或者 “source 64bit_make.sh”完成编译
  6. cd到bin目录下运行目标文件,SDK启动后,bin/msc目录下会生成日志(注意:msc文件夹下需有msc.cfg文件)

# 2.2.3 API调用流程

语音合成主要API调用流程如下图所示: img 详细代码调用请参考 Samples中的 tts_sample(语音合成示例),API详细描述请参考API文档

# 2.3 参数与说明

# 2.3.1 离线引擎说明

离线引擎(TYPE_LOCAL),又称为本地模式,不需要使用网络,合成的速度更快,但同时要求购买并使用对应的离线资源(下载对应离线功能的SDK包)。离线服务,需要在QTTSSessionBegin()时设置以下两个参数:

参数 名称 取值
engine_type 引擎类型 local
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 离线发音人列表

  1. 普通的离线语音合成的common.jet(4.10 MB)+发音人.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资源配合使用

类型 发音人中文名称 音色 发音人资源文件名 发音人资源大小
播报 讯飞小燕 青年女声 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. 离线语音合成购买的发音人使用方法

平台上购买离线语音合成后下载的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,否则结果不可预期.

# 4、视频教程

概念原理

技术简介

发展历史

典型应用