语音合成 iOS SDK
1. 文档说明
| 文档名称 | 语音合成集成文档 |
|---|---|
| 所属平台 | iOS |
| 提交日期 | 2026-08-11 |
| 概述 | 本文档是百度离线语音合成iOS SDK的用户指南,描述了离线语音合成SDK相关接口的使用说明。离线语音合成SDK包含基础音库,在线语音合成SDK无需音库资源即可调用,请您前往语音合成SDK资源按需下载;若您在2025年11月27日及之前购买或申请测试SN(序列号),请点击下载往期基础音库资源,及往期精品音库资源。详细发音人信息请看离线发音人列表。 |
|
2. 版本说明
| 名称 | 版本号 |
|---|---|
| 语音合成 | 4.3.0 |
| 系统支持 | 支持iOS 12.0及以上 |
| 架构支持 | 支持x86_64、arm64 (离线合暂成不支持x86_64架构) |
| 机型 | iPhone系列(如需支持iPad请使用历史版本) |
| IDE | Xcode 14+(建议使用Xcode16及以上版本) |
2.1 版本升级改动点说明:
- 提升SDK稳定性;
- 离线发音人听感调优
- SDK引擎升级优化
- AKSK鉴权方式不再使用,更新优化部分API接口
- 新增Token(临时、永久)、IAMKEY(临时、永久)鉴权 方式
3. SDK说明
| 文件名称 | 版本号 | 说明 | 类型 |
|---|---|---|---|
| libBaiduSpeechSDK.a | 4.3.0 | 语音合成SDK (同时支持离在线引擎)大小约173M | 静态库 |
- 由于 BITCODE 开启会导致二进制文件体积增大,这部分会在 APPStore 发布时进行进一步编译优化,并不会引起最终文件的体积变化,故此处计算的是关闭 BITCODE 下的二进制增量。
- .a中是多个架构做了合并,使用lipo可以看到细节。所以.a库文件本身很大,且打包出来的ipa也相对较大。但用户实际下载到手机中会被AppStore优化,只下载用户设备需要的架构,所以实际在手机上占用的空间很小。
1Architectures in the fat file: libBDSpeechTTSBaseKit.a are: x86_64 arm64
开发包说明
| 文件(夹)名 | 说明 | 备注 |
|---|---|---|
| Resources | 文件夹下包含离线合成头文件、以及离线合成.a库 | 必须引入 |
| BDSClientSample | 开发示例(xcode project) | |
| BDSClientResource/ TTS/Chinese And English_Speech*.dat |
具体参照 [纯离线语音合成模式] 章节 | 若无需离线合成则无需引入 注意:路径不能使用中文 |
| BDSClientResource/ TTS/Chinese And English_Text.dat |
离线语音合成资源文件(text data file), 中英文 | 若无需离线合成则无需引入 注意:路径不能使用中文 |
| BDSClientResource/ TTS/English_Speech _Female.dat, BDSClientResource/ TTS/English_Speech _Male.dat | 离线语音合成资源文件 (speech data file,英文),女声,男声 | 若无需离线合成则无需引入 注意:路径不能使用中文 |
4. Demo运行

- 配置包名和签名

- 打开工程目录如下:

5. SDK集成
强烈建议用户首先运行SDK包中的Demo工程,Demo工程中详细说明了语音合成的使用方法,并提供了完整的示例。一般情况下,您只需参照demo工程即可完成所有的集成和配置工作。
添加BDSSpeechSynthesizer到工程
BDSSpeechSynthesizer使用了一些系统的framework,需要添加到工程里面。

添加方式: 右键点击 Xcode 中的工程文件,在出现的界面中,选中 TARGETS 下的应用,在出现的界面中选中 Build Phases->Link Binary With Libraries,点击界面中的“+”图标,在弹出的界面中选择需要的framework即可。请参考demo工程引入所需动态库framework和静态库。
开发者编译自己工程时,若报错 ld: Library xxxx not found,一般是库文件没有正确引入。请确保库文件在工程所能找到的位置之内(通过 LIBRARRY_SEARCH_PATH设置)
添加语音合成相关资源文件
将开发包中的BDSClientResource目录下的相关资源文件添加到工程或者安装app后部署到指定目录(代码中启动合成引擎时需要指定该资源文件的访问路径)。根据具体需求引入不同的资源即可。
基础音库

精品音库

音频文件配置代码示例:
1// 创建语音合成器实例
2 self.synthesizer = [[BDSSpeechSynthesizer alloc] initWithDelegate:self];
3 // 设置离线参数资源文件
4 NSString *textData = [[NSBundle mainBundle] pathForResource:@"bd_etts_common_text_txt_all_mand_eng_middle_big_v6.0.0_20240731" ofType:@"dat"];
5 NSString *speechData = [[NSBundle mainBundle] pathForResource:@"bd_etts_common_speech_duxiaoyao_mand_eng_high_am-tac-csubgan16k_v4.9.0_20251028_20251031153737" ofType:@"dat"];
6
7 // 正确的离线模型配置
8 NSDictionary *offlineModel = @{
9 BDSSpeechSynthesizerParams.ttsTextModelFile: textData,
10 BDSSpeechSynthesizerParams.ttsSpeechModelFile: speechData
11 };
12 NSData *offlineModeData = [NSJSONSerialization dataWithJSONObject:offlineModel options:0 error:nil];
13 NSString *offlineModelString = [[NSString alloc] initWithData:offlineModeData encoding:NSUTF8StringEncoding];
14 [self.synthesizer setParam:BDSSpeechSynthesizerParams.paramOfflineModel value:offlineModelString];
引入BDSSpeechSynthesizer相关必要头文件
首先将 BDSSpeechSynthesizer 提供的头文件拷贝到工程目录下,在 XCode 中添加此文件,引入 BDSSpeechSynthesizer提供的头文件。
添加如下头文件:
1#import "TTSViewController.h"
2#import "AuthManager.h"
3#import <AVFAudio/AVAudioSession.h>
4
5#import "BDSpeechTTSBaseKit.h"
6#import "BDSSpeechSynthesizerResponse.h"
7#import "BDSSpeechLogger.h"
8#import "BDSSpeechSynthesizerParams.h"
9#import "Reachability.h"
引入静态库文件
静态库打开如下:

引入以下三个头文件:

6.离在线模式鉴权参数配置说明
离在线语音合成模式
请从官网控制台获取您的APP_ID、包名、SN等参数。并绑定你的移动应用的BundleId。分别加载在线和离线引擎。
在线合成和离线合成需要进行相关验证后方可使用:
| 引擎类型 | 验证方法 |
|---|---|
| 在线合成 | 开放平台使用ACCESSTOKEN进行验证(新增),详情请点击默认鉴权机制了解开放平台使用IAMKEY进行验证(新增),详情请点击API Key鉴权机制了解 |
| 离线合成 | 使用APPID+授权序列号SN+包名首次联网自动下载授权文件进行验证离线合成需要另外填写申请授权序列号,具体流程参考 快速集成指南 |
纯在线语音合成模式
使用IAMKEY(当前版本新增)、TOKEN(当前版本新增)鉴权方式使用示例:
1- (void)initOnlineSDK {
2 // 创建语音合成器实例
3 self.synthesizer = [[BDSSpeechSynthesizer alloc] initWithDelegate:self];
4 // 申请获取token鉴权
5 [self.synthesizer setParam:BDSSpeechSynthesizerParams.paramAccessToken value:@"平台申请获取的token"];
6 // 申请获取IAMKEY鉴权
7 // [self.synthesizer setParam:BDSSpeechSynthesizerParams.paramAccessToken value:@"平台申请获取的IAMKEY"];
8 // 设置在线发音人
9 [self.synthesizer setParam:BDSSpeechSynthesizerParams.paramOnlineSpeaker value:@"4100"];
10// 加载在线引擎
11 BDSSpeechResult *result = [self.synthesizer loadOnlineEngine];
12 if (result.code != 0) {
13 NSLog(@"加载在线引擎失败: %ld", (long)result.code);
14 }
15}
鉴权接口及参数说明
1/**
2 token鉴权方式
3 token:申请的token
4 expirationDate:token过期时间戳(毫秒)
5 */
6- (void)setTTSLicenseWithAuthToken:(NSString *)token AndExpirationDate:(long long)expirationDate;
7
8/**
9 iamkey方式初始化鉴权
10 iamkey:申请的iamkey
11 expirationDate:iamkey过期时间(毫秒)
12 */
13- (void)setTTSLicenseWithIAMKey:(NSString *)iamkey AndExpirationDate:(long long)expirationDate;
完整示例参考:
1// 初始化离线合成SDK
2[self initOfflineSDK];
3
4- (void)initOfflineSDK {
5 // 初始化日志,仅 DEBUG 调试打开此设置
6 [[BDSSpeechLogger sharedInstance] setLogLevel:BDSSpeechLogLevelInfo path:nil callback:nil];
7
8 // 创建语音合成器实例
9 self.synthesizer = [[BDSSpeechSynthesizer alloc] initWithDelegate:self];
10 // 设置离线参数资源文件
11 NSString *textData = [[NSBundle mainBundle] pathForResource:@"bd_etts_common_text_txt_all_mand_eng_middle_big_v6.0.0_20240731" ofType:@"dat"];
12 NSString *speechData = [[NSBundle mainBundle] pathForResource:@"bd_etts_common_speech_duxiaoyao_mand_eng_high_am-tac-csubgan16k_v4.9.0_20251028_20251031153737" ofType:@"dat"];
13
14 // 正确的离线模型配置
15 NSDictionary *offlineModel = @{
16 BDSSpeechSynthesizerParams.ttsTextModelFile: textData,
17 BDSSpeechSynthesizerParams.ttsSpeechModelFile: speechData
18 };
19 NSData *offlineModeData = [NSJSONSerialization dataWithJSONObject:offlineModel options:0 error:nil];
20 NSString *offlineModelString = [[NSString alloc] initWithData:offlineModeData encoding:NSUTF8StringEncoding];
21 [self.synthesizer setParam:BDSSpeechSynthesizerParams.paramOfflineModel value:offlineModelString];
22
23 // 设置离线授权文件
24 [self.synthesizer setParam:BDSSpeechSynthesizerParams.paramAppId value:@"平台申请获取的APPID"];
25 [self.synthesizer setParam:BDSSpeechSynthesizerParams.paramAuthSerialNumber value:@"平台申请获取的SN"];
26
27 // 加载离线引擎
28 BDSSpeechResult *result = [self.synthesizer loadOfflineEngine];
29 result = [self.synthesizer loadOfflineEngine];
30 if (result.code != 0) {
31 NSLog(@"加载离线引擎失败: %ld", (long)result.code);
32 }
33}
提供用户自定义获取鉴权信息的能力
描述:为了满足 「鉴权信息保存在server端,app通过请求server端获取access token」的需求,语音SDK需要提供 鉴权信息回调点,并由用户最终实现 回调接口。
1- (void)initCommonSDK {
2 //主要通过函数实现 参考demo对应部分
3}
4
5步骤一:
6// 遵循鉴权sdk内置协议,初始化设置协议
7[AuthManager sharedInstance].temporaryTokenAndKeyDelegate = self;
8
9// 分别实现协议传入token、iamkey
10/**
11 客户实现get token 协议方法
12 */
13- (void)getToken {
14 ......
15 //客户业务侧处理获取token的逻辑
16 // demo示例发送请求
17 [self sendPostRequest];
18}
19
20/**
21 客户实现get iamkey 协议方法
22 */
23- (void)getIAMKey {
24 ......
25 //客户业务侧处理获取iamkey的逻辑
26 // demo示例发送请求
27 [self sendPostRequest];
28}
29
30步骤二:
31// 初始化调用在线函数进行SDK模型参数初始化配置
32// 在线TTS
33 [self initCommonSDK]; // 完成模型初始化参数配置相关操作
34//获取网络权限判断逻辑
35 ......
36 ......
37 ......
38// 检查当前网络状态并尝试网络请求
39[self checkNetworkStatusAndMakeRequest];
40
41
42 // 检查网络权限是否生效
43- (void)checkNetworkStatusAndMakeRequest {
44 // 生效 即可做post请求获取token、有效期
45 ......
46 ......
47 ......
48 // 调用本地获取token的请求逻辑
49 [self sendPostRequest];
50}
51
52 // post请求 仅供参考
53-(void)sendPostRequest {
54 // 请求逻辑具体参考demo代码
55 ......
56 ......
57 请求拿到token后调用API接口完成token鉴权
58 // token 鉴权 成功:正常完成合成主流程鉴权通过。 失败:触发上述步骤一中的协议回调 重新获取有效token(此处以token为例)
59 [[BDSpeechTTSBaseKit sharedInstance] setTTSLicenseWithAuthToken:@"平台获取的token" AndExpirationDate:"token有效期时间"];
60}
61
62逻辑整理 1.遵循鉴权sdk内置协议 2.完成初始化请求token获取[self sendPostRequest]; 并在请求结果中设置对应的鉴权方式如 [[BDSpeechTTSBaseKit sharedInstance] setTTSLicenseWithAuthToken:@"平台获取的token" AndExpirationDate:"token有效期时间"];获取token。3.成功后正常继续下一步,异常或请求token失败、token有效期到期等 SDK代理会监听到 触发getToken、getIamkey代理 进行重新处理逻辑 demo示例中做了重新获取token的操作 仅供参考
63
64注:使用该方式为了满足 「鉴权信息保存在server端,app通过请求server端获取access token」的需求,语音SDK需要提供 鉴权信息回调点,并由用户最终实现 回调接口。
纯离线语音合成模式
请参考initOfflineSDK方法配置离线资源文件和鉴权,或参考4.2离线集成配置相关描述。
- APPID+SN方式鉴权:
参数配置说明 AppID可登录控制台查看,App ID与SN获取方式参考 快速集成指南
暂不支持swift版本,Objective-c版本如下: 离线TTS调用示例
1- (void)initOfflineSDK {
2 // 初始化日志,仅 DEBUG 调试打开此设置
3 [[BDSSpeechLogger sharedInstance] setLogLevel:BDSSpeechLogLevelInfo path:nil callback:nil];
4
5 // 创建语音合成器实例
6 self.synthesizer = [[BDSSpeechSynthesizer alloc] initWithDelegate:self];
7 // 设置离线参数资源文件
8 NSString *textData = [[NSBundle mainBundle] pathForResource:@"bd_etts_common_text_txt_all_mand_eng_middle_big_v6.0.0_20240731" ofType:@"dat"];
9 NSString *speechData = [[NSBundle mainBundle] pathForResource:@"bd_etts_common_speech_duxiaoyao_mand_eng_high_am-tac-csubgan16k_v4.9.0_20251028_20251031153737" ofType:@"dat"];
10
11 // 正确的离线模型配置
12 NSDictionary *offlineModel = @{
13 BDSSpeechSynthesizerParams.ttsTextModelFile: textData,
14 BDSSpeechSynthesizerParams.ttsSpeechModelFile: speechData
15 };
16 NSData *offlineModeData = [NSJSONSerialization dataWithJSONObject:offlineModel options:0 error:nil];
17 NSString *offlineModelString = [[NSString alloc] initWithData:offlineModeData encoding:NSUTF8StringEncoding];
18 [self.synthesizer setParam:BDSSpeechSynthesizerParams.paramOfflineModel value:offlineModelString];
19
20 // 设置离线授权文件
21 [self.synthesizer setParam:BDSSpeechSynthesizerParams.paramAppId value:@"平台申请获取的APPID"];
22 [self.synthesizer setParam:BDSSpeechSynthesizerParams.paramAuthSerialNumber value:@"平台申请获取的SN"];
23
24 // 加载离线引擎
25 BDSSpeechResult *result = [self.synthesizer loadOfflineEngine];
26 result = [self.synthesizer loadOfflineEngine];
27 if (result.code != 0) {
28 NSLog(@"加载离线引擎失败: %ld", (long)result.code);
29 }
30}
- 加载离线引擎 离线合成SDK默认自带4个基础音色的『Speech文件』和1个『Text文件』,精品音库资源文件需单独下载。若您在2025年11月27日之前购买或申请序列号,请点击下载往期音库资源文件。发音人详细信息请看离线发音人列表。
SDK默认自带离线资源文件
| 资源文件 | 具体文件名(支持新序列号) |
|---|---|
| m15 离线男声(度小宇) | bd_etts_common_speech_duxiaoyu_mand_eng_high_am-tac-csubgan16k_v4.9.0_20240918_20251031153737.dat |
| f7 离线女声(度小美) | bd_etts_common_speech_duxiaomei_mand_eng_high_am-tac-csubgan16k_v4.9.0_20240918_20251031153737.dat |
| yy 离线度逍遥 | bd_etts_common_speech_duxiaoyao_mand_eng_high_am-tac-csubgan16k_v4.9.0_20251110_20251210203318.dat |
| c1 离线度丫丫 | bd_etts_common_speech_duyaya_mand_eng_high_am-tac-csubgan16k_v4.9.0_20220419_20251031153737.dat |
| 中文离线文本模型 | bd_etts_common_text_txt_all_mand_eng_middle_big_v6.0.0_20240731.dat |
2.4.3之前版本,中文、粤语、英文因为使用不同的Text文件,之间通过reinitOfflineEngineData 无法完成切换。必须反初始化,再初始化。2.4.3之后版本无需重新初始化。
7.语音合成接口说明
7.1 合成接口初始化
⽤于获取、释放合成器实例
1// 初始化 - (instancetype)initWithDelegate:(id<BDSSpeechSynthesizerDelegate>)delegate;
2// 释放 - (void)releaseEngine;
7.2 接口参数配置
1/**
2* @brief 合成器参数设置接⼝
3* @param param 参数对应的值
4* @param key 合成器预定义的参数名称,参⻅附录及头⽂件BDSSpeechSynthesizerParams.h.
5*/ - (BDSSpeechResult *)setParam:(NSString *)key value:(NSString *)value;
7.2.1 设置在线合成信息
1/**
2* @brief 为在线合成设置认证信息
3* @param AccessToken 在百度开发者中⼼注册应⽤获得
4*/
5[self.synthesizer setParam:BDSSpeechSynthesizerParams.paramAccessToken value:@"xxx"];
7.2.2 加载在线引擎
1// 加载在线引擎
2BDSSpeechResult *result = [self.synthesizer loadOnlineEngine];
3if (result != 0) {
4NSLog(@"加载在线引擎失败: %ld", (long)result.code); }
7.3离线合成参数
7.3.1配置离线资源
1// 设置离线资源 (⽅式⼀,适合业务⾃⾏管理,云端下发资源⽂件)
2NSString *textData = [[NSBundle mainBundle] pathForResource:@"xxx" ofType:@"dat"];
3NSString *speechData = [[NSBundle mainBundle] pathForResource:@"xxx" ofType:@"dat"];
4NSDictionary *offlineModel = @{BDSSpeechSynthesizerParams.ttsTextModelFile: @([textData UTF8String]),
5BDSSpeechSynthesizerParams.ttsSpeechModelFile: @([speechData UTF8String])};
6NSData *offlineModelData = [NSJSONSerialization dataWithJSONObject:offlineModel options:0 error:nil];
7NSString *offlineModelString = [[NSString alloc] initWithData:offlineModelData encoding:NSUTF8StringEncoding]; [self.synthesizer setParam:BDSSpeechSynthesizerParams.paramOfflineModel value:offlineModelString];
7.3.2设置离线授权
1// 设置您的鉴权 sn
2[self.synthesizer setParam:BDSSpeechSynthesizerParams.paramAuthSerialNumber value:@"your auth sn")];
3[self.synthesizer setParam:BDSSpeechSynthesizerParams.paramAppId value:@"xxx"];
7.3.3加载离线引擎
1// 加载离线引擎
2result = [self.synthesizer loadOfflineEngine];
3if (result.code != 0) {
4NSLog(@"加载离线引擎失败: %d", result.code); }
7.4语音合成接口
7.4.1合成并朗读
1/**
2* 合成并播放语⾳ * @param entity 语⾳合成实体
3* @return 播放结果
4*/
5- (BDSSpeechResult *)speak:(BDSSpeechEntity *)entity;
7.4.2合成不朗读
1/**
2* 合成语⾳ * @param entity 语⾳合成实体
3* @return 合成结果
4*/
5- (BDSSpeechResult *)synthesize:(BDSSpeechEntity *)entity;
7.4.3取消合成并停止朗读
1/**
2* 停⽌播放/合成
3* @return 停⽌结果
4*/
5- (BDSSpeechResult *)stop;
7.4.4暂停朗读
1/**
2* 暂停播放
3* @return 暂停结果
4*/
5- (BDSSpeechResult *)pause;
7.4.5恢复朗读
1/**
2* 恢复播放
3* @return 恢复结果
4*/
5- (BDSSpeechResult *)resume;
7.4.6合成状态监听器接口
1- (void)onSynthesizerResponse:(BDSSpeechSynthesizerResponse *)synthesizerResponse {
2switch (response.synthesizeType) {
3case BDSSpeechSynthesizerTypeStart:
4NSString *sn = synthesizerResponse.sn; // 此次SDK侧传递的⽂本合成的标识,建议保存,后续排查服务器等问题需要使⽤。
5NSString *utteranceId = synthesizerResponse.utteranceId;// 此次业务侧传递的⽂本合成的标识,⽤来做相关逻辑判断。
6break; ...... }
7.4.7合成模式
| 合成模式 | 参数 |
|---|---|
| 纯在线 | BDSSpeechModeOnline |
| 纯离线 | BDSSpeechModeOffline |
| 混合模式,在线优先 | BDSSpeechModeMix |
1BDSSpeechEntity *entity = [[BDSSpeechEntity alloc] initWithText:text
2 mode:BDSSpeechModeOnline
3 utteranceId:[[NSUUID UUID] UUIDString]
4 params:nil];
7.5播放控制
7.5.1设置播放器音量
1[self.synthesizer setParam:BDSSpeechSynthesizerParams.paramPlayerVolume value:@"0-1"];
7.5.2设置AudioSession相关
1// 业务⽅根据需求场景⾃定义设置,此处仅做举例
2- (void)setAudioSessionConfig {
3NSString *category = AVAudioSessionCategoryPlayback;
4NSUInteger categoryOptions = (AVAudioSessionCategoryOptionMixWithOthers|
5AVAudioSessionCategoryOptionDuckOthers);
6NSError *error = nil; [[AVAudioSession sharedInstance] setCategory:category withOptions:categoryOptions error:&error];
7if (error) { [self appendLog:[NSString stringWithFormat:@"设置⾳频会话失败: %@", error.localizedDescription]]; } }
7.5.3配置后台播放

注:配置xcodebackground Modes保证后台播放生效。
8.工具类
8.1设置、获取本地日志级别
1// 初始化⽇志,仅 DEBUG 调试打开此设置
2[[BDSSpeechLogger sharedInstance] setLogLevel:BDSSpeechLogLevelInfo path:nil];
8.2相关工具类
| 接口 | 参数 |
|---|---|
| (BDSSpeechResult )verifyModelFile:(NSString )filePath | 验证模型⽂件 |
| (NSString *)getEngineInfo | 获取引擎信息 |
| (NSString )getModelInfo:(NSString )filePath | 获取模型信息 |
| (int)matchResEngine:(NSString *)filePath | 检查资源版本同引擎版本是否匹配 |
| (long)getSpeechSampleRate:(NSString *)filePath | 获取⾳库资源的采样率 |
| (int)checkDomainFile:(NSString *)filePath | 验证个性化语句包的是否可⽤ |
| (NSString *)getCuid | 获取sdk内部当前使⽤的设备id |
| (long)getDomainSampleRate:(NSString *)filePath | 获取个性化语句包的采样率 |
8.3查询静态库版本信息
1bash
2strings -a BDTTSClientSDK | grep TTS_SDK_VERSION // SDK 版本号
3strings -a BDTTSClientSDK | grep ETTS_UNIQUE // 引擎 版本号
8.4合成参数参考
百度语音合成支持的参数用BDSSynthesizerParamKey类型表示,具体如下:
| 参数名称 | 字段标识 | 说明 | 取值 / 范围 / 默认值 |
|---|---|---|---|
| 产品 ID | paramProductId | 语音合成产品唯一标识 | - |
| 自定义 CUID | paramCustomCuid | 设备自定义唯一标识 | - |
| 在线超时时间 | paramOnlineTimeoutMs | 在线请求超时时长,单位毫秒 | 默认 6000 |
| 比特率 | paramBitrate | 音频编码比特率,对应枚举 BDSSynthesizerBitrate | 枚举值: 0 = BDSSynthesizerBitratePCM 64 = BDSSynthesizerBitrateOpus64K(默认) 128 = BDSSynthesizerBitrate128K |
| 在线合成服务 URL | paramOnlineServerUrl | 在线合成服务器地址(仅合作方配置) | - |
| Key | paramKey | 应用密钥 | - |
| 语言 | paramLanguage | 合成语音语种 | - |
| 在线发音人 | paramOnlineSpeaker | 在线语音音色选择 | - |
| 访问令牌 | paramAccessToken | 接口访问授权令牌 | - |
| App ID | paramAppId | 应用唯一 ID | - |
| 转换数据路径 | paramConvertDatPath | 数据转换文件存储路径 | - |
| 统计参数 | paramStatPam | 数据统计相关配置参数 | - |
| 文本位置 | paramTextPos | 文本播放位置标记 | - |
| 百分比 | paramPercent | 进度百分比参数 | - |
| 音频控制 | paramAudioCtrl | 音频功能控制参数 | - |
| 文本控制 | paramTextCtrl | 文本解析与播报控制参数 | - |
| 打开 XML | paramOpenXml | 是否启用 XML 标签解析 | - |
| 语速 | paramSpeed | 合成语音播放速度 | 在线SDK:默认最高支持3倍速播放,倍速区间0-25,SDK透传,计算公式0.5 + 0.1 X(X为设置的区间值) 离线SDK:默认最高支持2倍速播放,倍速区间0-15,SDK透传,计算公式0.5 + 0.1 X(X为设置的区间值) 默认区间值:5 正常1倍,速取值范围 [0, 15],默认 5 注:如现有语速不能满足,需更高语速可提交需求工单或联系商务同学申请 |
| 音量 | paramVolume | 合成语音音量 | 取值范围 [0, 15],默认 5 |
| 音调 | paramPitch | 合成语音音调高低 | 取值范围 [0, 15],默认 5 |
| 特殊参数 | paramSpec | 拓展自定义特殊配置 | - |
| 离线资源路径 | paramOfflineResourcePath | 离线合成资源文件目录 | - |
| PCM 资源路径 | paramPcmResourcePath | PCM 格式音频资源路径 | - |
| 离线发音人 | paramOfflineSpeaker | 离线语音音色(由.conf 配置文件指定) | - |
| 离线模型 | paramOfflineModel | 离线合成模型标识 | - |
| TTS 授权文件路径 | paramTtsLicenseFilePath | 语音合成授权证书文件路径 | - |
| 授权序列号 | paramAuthSerialNumber | 离线授权 SN 序列号 | - |
| 授权 URL | paramLicenseUrl | 授权服务请求地址 | - |
| 播放器音量 | paramPlayerVolume | 系统播放器音量 | 取值范围 [0, 1],默认 1 |
| 播放器流类型 | playerStreamType | 音频播放流类型 | - |
| 播放器用途 | paramPlayerUsage | 播放器使用场景标识 | - |
| 播放器内容类型 | paramPlayerContentType | 播放音频内容分类 | - |
| 播放器中断模式 | paramPlayerInterruptMode | 音频抢占 / 中断策略 | - |
| 语音合成类型 | paramSpeechSynthesizeType | 区分在线 / 离线 / 混合合成模式 | - |
| AIGC 最小播放缓存 | paramAigcMinPlayCache | AIGC 语音最小播放缓存大小 | - |
| 通用参数 | paramPam | 综合拓展配置参数 | - |
| 文本模型文件路径 | ttsTextModelFile | TTS 文本模型文件路径 | - |
| 声学模型文件路径(tacotron) | ttsSpeechModelFile | 主声学模型文件路径 | - |
| 扩展声学模型文件路径(subgan) | ttsExtSpeechModelFile | 拓展声学模型文件路径 | - |
| 声学模型文件属性 | ttsTacSubganSpeakerAttr | 音色、风格属性配置(JSON 字符串) | 格式:{"style_id": 1, "speaker_id": 1} |
| 在线发音人 | paramOnlineSpeaker | 配置在线发音人列表 | 发音人 在线基础:0(普通女声) 1(普通男声) 3(磁性男声<度逍遥>) 4(可爱童声<度丫丫>) 在线精品:106(情感男声<度博文>) 110 (活泼童声<度小童>) 111 (可爱童声<度小萌>) 103(可爱童声<度米朵>) 5(情感女声<度小娇>) 5118(甜美女声<度小鹿>) 5003(磁性男声<度逍遥(精品)>) 更多在线发音人可点击 音色列表 |
9.附录
9.1参数说明
参⻅ BDSSpeechSynthesizerParams 类
9.2错误码说明
| 序号 | 错误码值 | 错误码描述 |
|---|---|---|
| 1 | -1 | 在线引擎授权失败 |
| 2 | -4 | 在线授权中断异常 |
| 3 | -5 | 在线授权执行时异常 |
| 4 | -6 | 在线授权时间超时 |
| 5 | -7 | 在线合成返回错误信息 |
| 6 | -10 | 在线引擎合成时异常 |
| 7 | -11 | 当前 mode 不支持的操作 |
| 8 | -12 | 在线合成请求解析出错 |
| 9 | -15 | 在线合成获取合成结果超时 |
| 10 | -16 | 在线授权被取消 |
| 11 | -18 | 在线合成无效的主机名 |
| 12 | -19 | 在线合成读数据失败 |
| 13 | -20 | 在线合成连接失败 |
| 14 | -21 | 在线合成 socket 异常 |
| 15 | -24 | 在线合成请求主机名为空 |
| 16 | -25 | 在线合成发送数据失败 |
| 17 | -29 | 在线合成接收前缀数据长度错误 |
| 18 | -30 | 在线合成接收数据长度错误 |
| 19 | -31 | 在线合成合成数据包速度过快 |
| 20 | -32 | 在线合成网络未知类型错误 |
| 21 | -39 | 在线服务临时错误 |
| 22 | -100 | 离线引擎授权失败 |
| 23 | -102 | 离线授权下载 License 失败 |
| 24 | -105 | 离线授权中断异常 |
| 25 | -106 | 离线授权执行时异常 |
| 26 | -107 | 离线授权执行时间超时 |
| 27 | -108 | 离线合成引擎初始化失败 |
| 28 | -110 | 离线合成时异常 |
| 29 | -111 | 离线合成返回值非 0 |
| 30 | -118 | 离线授权任务被取消 |
| 31 | -122 | 离线 tts_offline_resource 文件异常 |
| 32 | -123 | 离线发音人参数异常 |
| 33 | -124 | 下载 license 失败,sn 参数异常 |
| 34 | -125 | 离线合成文本为空 |
| 35 | -200 | 混合引擎离线在线都授权失败 |
| 36 | -204 | 混合引擎初始化 tts 时,离线初始化失败 |
| 37 | -206 | 混合引擎初始化 tts 时,在线初始化失败 |
| 38 | -300 | 合成文本为空 |
| 39 | -301 | 合成文本长度过长(不要超过 GBK1024 个字节) |
| 40 | -302 | 合成文本无法获取 GBK 字节 |
| 41 | -401 | TTS 模式无效 |
| 42 | -402 | TTS 合成队列已满 |
| 43 | -406 | TTS 被调用方法参数无效 |
| 44 | -500 | Context 被释放或为空 |
| 45 | -700 | 播报的短音频文件不存在 |
| 46 | -701 | 当前接口不支持播报短音频 |
| 47 | -1001 | 模型管理请求出错 |
| 48 | -1002 | 模型管理服务器端错误 |
| 49 | -1003 | 模型管理数据库模型信息无效 |
| 50 | -1004 | 模型管理数据库模型文件信息无效 |
| 51 | -1005 | 模型数据已经存在(或已下载) |
| 52 | -1006 | 无法获取到模型信息 |
| 53 | -1007 | 无法获取到模型文件信息 |
| 54 | -1008 | 模型检查过程异常 |
| 55 | -1009 | 模型文件下载时异常 |
| 56 | -9999 | 未知错误 |
评价此篇文章
