# 离线语音合成 Windows SDK 文档

# 1、简介

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

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

注:支持Windows XP以上系统版本,开发环境建议使用VS2015版本,暂不兼容VS2010版本。

# 2、SDK集成指南

# 2.1 Demo运行步骤

1.在控制台下载对应sdk

2.进入sdk内samples目录,双击samples.sln文件(需事先安装Visual Studio)

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

  • Step 1: 新建工程

1.打开Microsoft Visual Studio(本例使用的是VS2010),选择文件->新建->项目->Visual C++ ->Win32控制台应用程序,输入项目名称,然后点击确定键 img

2.应用程序类型选择“控制台应用程序”,附加选项选择“空项目”,然后点击完成。 img

  • Step 2:配置工程属性

1.将SDK中bin,include,libs文件夹复制到新建工程“Demo”文件夹下 img

2.导入头文件

右键点击新建工程,选择 “属性“,进入工程属性页面:点击C/C++->常规->附加包含目录,输入相对于工程文件Demo.vcxproj的相对路径,即相对于$(ProjectDir)的路径,另源代码文件也需相同设置。 img

3.导入msc.dll

a. 加载msc.lib文件:在main.c文件中输入如下图所示代码,其他详细代码请参考Samples中对应的语音示例 注意:加载路径输入相对于工程文件的相对路径

 #ifdef _WIN64
 #pragma comment(lib,"../libs/msc_x64.lib")
 #else
 #pragma comment(lib, "../libs/msc.lib")
 #endif

b. 将msc.dll所在目录设置为工作目录,即“$(ProjectDir)..\bin\” img

4.将目标可执行文件复制到msc.dll所在目录 img

5.SDK启动后,bin/msc目录下会生成日志。(注意:msc文件夹下需有msc.cfg文件) img

# 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资源配合使用,普通的离线语音合成中文和英文发音人均依赖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
  1. 离线语音合成购买的发音人使用方法

平台上购买离线语音合成后下载的sdk包,默认只提供小燕和小峰的资源(.jet),也就是说只有这两个发音人可以使用,如果购买(购买方式1:离线语音合成主页—离线发音人库—立即购买—选择绑定的应用—付款;购买方式2:控制台—应用—离线语音合成—服务管理—购买离线发音人音库—付款。付款后重新下载离线语音合成sdk,在sdk中的中会自动多一个购买的发音人资源。)了其他的发音人的话,您就会拿到其他发音人的资源(.jet),以小芳的发音人为例,购买后您会拿到小芳的资源(xiaofang.jet)。

注意

使用购买的新的发音人要注意加载的资源名称,voice_name,资源路径中的资源名称三者的统一,否则会无法正常使用。

# 3、常见问题

# windows sdk在xp系统出现调用msc.dll失败

答:目前windows sdk离线合成要求应用的系统设备是XP以上,暂不支持xp系统,建议使用win7、win8、win10等高版本的系统。

# windows sdk能否生成mp3格式的音频

答:默认生成wav格式的音频,mp3建议使用在线合成webapi集成接入

# 离线支持中英文的发音人有哪些?

答:目前只有xiaoyuan这个发音人支持中英文发音。

# 4、视频教程

概念原理

技术简介

发展历史

典型应用