资讯 文档
技术能力
语音技术
文字识别
人脸与人体
图像技术
语言与知识
视频技术

语音合成 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 静态库
  1. 由于 BITCODE 开启会导致二进制文件体积增大,这部分会在 APPStore 发布时进行进一步编译优化,并不会引起最终文件的体积变化,故此处计算的是关闭 BITCODE 下的二进制增量。
  2. .a中是多个架构做了合并,使用lipo可以看到细节。所以.a库文件本身很大,且打包出来的ipa也相对较大。但用户实际下载到手机中会被AppStore优化,只下载用户设备需要的架构,所以实际在手机上占用的空间很小。
Architectures 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运行

  1. 百度云控制台开放平台离线SDK下载Demo

image (24).png

  1. 配置包名和签名

ios_1.png

  1. 打开工程目录如下:

image (25).png

5. SDK集成

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

添加BDSSpeechSynthesizer到工程

BDSSpeechSynthesizer使用了一些系统的framework,需要添加到工程里面。

image (26).png

添加方式: 右键点击 Xcode 中的工程文件,在出现的界面中,选中 TARGETS 下的应用,在出现的界面中选中 Build Phases->Link Binary With Libraries,点击界面中的“+”图标,在弹出的界面中选择需要的framework即可。请参考demo工程引入所需动态库framework和静态库。

开发者编译自己工程时,若报错 ld: Library xxxx not found,一般是库文件没有正确引入。请确保库文件在工程所能找到的位置之内(通过 LIBRARRY_SEARCH_PATH设置)

添加语音合成相关资源文件

将开发包中的BDSClientResource目录下的相关资源文件添加到工程或者安装app后部署到指定目录(代码中启动合成引擎时需要指定该资源文件的访问路径)。根据具体需求引入不同的资源即可。

基础音库

image (27).png

精品音库

ios_4.png

音频文件配置代码示例:

// 创建语音合成器实例
    self.synthesizer = [[BDSSpeechSynthesizer alloc] initWithDelegate:self];
    // 设置离线参数资源文件
    NSString *textData = [[NSBundle mainBundle] pathForResource:@"bd_etts_common_text_txt_all_mand_eng_middle_big_v6.0.0_20240731" ofType:@"dat"];
    NSString *speechData = [[NSBundle mainBundle] pathForResource:@"bd_etts_common_speech_duxiaoyao_mand_eng_high_am-tac-csubgan16k_v4.9.0_20251028_20251031153737" ofType:@"dat"];

    // 正确的离线模型配置
    NSDictionary *offlineModel = @{
            BDSSpeechSynthesizerParams.ttsTextModelFile: textData,
            BDSSpeechSynthesizerParams.ttsSpeechModelFile: speechData
        };
    NSData *offlineModeData = [NSJSONSerialization dataWithJSONObject:offlineModel options:0 error:nil];
    NSString *offlineModelString = [[NSString alloc] initWithData:offlineModeData encoding:NSUTF8StringEncoding];
    [self.synthesizer setParam:BDSSpeechSynthesizerParams.paramOfflineModel value:offlineModelString];

引入BDSSpeechSynthesizer相关必要头文件

首先将 BDSSpeechSynthesizer 提供的头文件拷贝到工程目录下,在 XCode 中添加此文件,引入 BDSSpeechSynthesizer提供的头文件。

添加如下头文件:

#import "TTSViewController.h"
#import "AuthManager.h"
#import <AVFAudio/AVAudioSession.h>

#import "BDSpeechTTSBaseKit.h"
#import "BDSSpeechSynthesizerResponse.h"
#import "BDSSpeechLogger.h"
#import "BDSSpeechSynthesizerParams.h"
#import "Reachability.h"

引入静态库文件

静态库打开如下:

image (28).png

引入以下三个头文件:

image (29).png


6.离在线模式鉴权参数配置说明

离在线语音合成模式

请从官网控制台获取您的APP_ID、包名、SN等参数。并绑定你的移动应用的BundleId。分别加载在线和离线引擎。

在线合成和离线合成需要进行相关验证后方可使用:

引擎类型 验证方法
在线合成 开放平台使用ACCESSTOKEN进行验证(新增),详情请点击默认鉴权机制了解
开放平台使用IAMKEY进行验证(新增),详情请点击API Key鉴权机制了解
离线合成 使用APPID+授权序列号SN+包名首次联网自动下载授权文件进行验证
离线合成需要另外填写申请授权序列号,具体流程参考 快速集成指南

纯在线语音合成模式

使用IAMKEY(当前版本新增)、TOKEN(当前版本新增)鉴权方式使用示例:

- (void)initOnlineSDK {
    // 创建语音合成器实例
    self.synthesizer = [[BDSSpeechSynthesizer alloc] initWithDelegate:self];
    // 申请获取token鉴权
    [self.synthesizer setParam:BDSSpeechSynthesizerParams.paramAccessToken value:@"平台申请获取的token"];
    // 申请获取IAMKEY鉴权
    //  [self.synthesizer setParam:BDSSpeechSynthesizerParams.paramAccessToken value:@"平台申请获取的IAMKEY"];
    // 设置在线发音人
    [self.synthesizer setParam:BDSSpeechSynthesizerParams.paramOnlineSpeaker value:@"4100"];
//     加载在线引擎
    BDSSpeechResult *result = [self.synthesizer loadOnlineEngine];
    if (result.code != 0) {
        NSLog(@"加载在线引擎失败: %ld", (long)result.code);
    }
}

鉴权接口及参数说明

/**
 token鉴权方式
 token:申请的token
 expirationDate:token过期时间戳(毫秒)
 */
- (void)setTTSLicenseWithAuthToken:(NSString *)token AndExpirationDate:(long long)expirationDate;

/**
 iamkey方式初始化鉴权
 iamkey:申请的iamkey
 expirationDate:iamkey过期时间(毫秒)
 */
- (void)setTTSLicenseWithIAMKey:(NSString *)iamkey AndExpirationDate:(long long)expirationDate;

完整示例参考:

// 初始化离线合成SDK
[self initOfflineSDK];

- (void)initOfflineSDK {
    // 初始化日志,仅 DEBUG 调试打开此设置
    [[BDSSpeechLogger sharedInstance] setLogLevel:BDSSpeechLogLevelInfo path:nil callback:nil];
    
    // 创建语音合成器实例
    self.synthesizer = [[BDSSpeechSynthesizer alloc] initWithDelegate:self];
    // 设置离线参数资源文件
    NSString *textData = [[NSBundle mainBundle] pathForResource:@"bd_etts_common_text_txt_all_mand_eng_middle_big_v6.0.0_20240731" ofType:@"dat"];
    NSString *speechData = [[NSBundle mainBundle] pathForResource:@"bd_etts_common_speech_duxiaoyao_mand_eng_high_am-tac-csubgan16k_v4.9.0_20251028_20251031153737" ofType:@"dat"];

    // 正确的离线模型配置
    NSDictionary *offlineModel = @{
            BDSSpeechSynthesizerParams.ttsTextModelFile: textData,
            BDSSpeechSynthesizerParams.ttsSpeechModelFile: speechData
        };
    NSData *offlineModeData = [NSJSONSerialization dataWithJSONObject:offlineModel options:0 error:nil];
    NSString *offlineModelString = [[NSString alloc] initWithData:offlineModeData encoding:NSUTF8StringEncoding];
    [self.synthesizer setParam:BDSSpeechSynthesizerParams.paramOfflineModel value:offlineModelString];
    
    // 设置离线授权文件
    [self.synthesizer setParam:BDSSpeechSynthesizerParams.paramAppId value:@"平台申请获取的APPID"];
    [self.synthesizer setParam:BDSSpeechSynthesizerParams.paramAuthSerialNumber value:@"平台申请获取的SN"];
    
    // 加载离线引擎
    BDSSpeechResult *result = [self.synthesizer loadOfflineEngine];
    result = [self.synthesizer loadOfflineEngine];
    if (result.code != 0) {
        NSLog(@"加载离线引擎失败: %ld", (long)result.code);
    }
}

提供用户自定义获取鉴权信息的能力

描述:为了满足 「鉴权信息保存在server端,app通过请求server端获取access token」的需求,语音SDK需要提供 鉴权信息回调点,并由用户最终实现 回调接口。

- (void)initCommonSDK {
    //主要通过函数实现 参考demo对应部分
}

步骤一:
// 遵循鉴权sdk内置协议,初始化设置协议
[AuthManager sharedInstance].temporaryTokenAndKeyDelegate = self;

// 分别实现协议传入token、iamkey
/**
 客户实现get token 协议方法
 */
- (void)getToken {
    ......
    //客户业务侧处理获取token的逻辑
    // demo示例发送请求
     [self sendPostRequest];
}

/**
 客户实现get iamkey 协议方法
 */
- (void)getIAMKey {
    ......
    //客户业务侧处理获取iamkey的逻辑
    // demo示例发送请求
     [self sendPostRequest];
}

步骤二:
// 初始化调用在线函数进行SDK模型参数初始化配置
// 在线TTS
 [self initCommonSDK]; // 完成模型初始化参数配置相关操作
//获取网络权限判断逻辑
    ......
    ......
    ......
// 检查当前网络状态并尝试网络请求         
[self checkNetworkStatusAndMakeRequest];       
          
          
  // 检查网络权限是否生效
- (void)checkNetworkStatusAndMakeRequest {
    // 生效 即可做post请求获取token、有效期
    ......
    ......
    ......
    // 调用本地获取token的请求逻辑
     [self sendPostRequest];
}

  // post请求 仅供参考
-(void)sendPostRequest {
 // 请求逻辑具体参考demo代码
  ......
  ......
  请求拿到token后调用API接口完成token鉴权
  // token 鉴权   成功:正常完成合成主流程鉴权通过。 失败:触发上述步骤一中的协议回调 重新获取有效token(此处以token为例) 
  [[BDSpeechTTSBaseKit sharedInstance] setTTSLicenseWithAuthToken:@"平台获取的token" AndExpirationDate:"token有效期时间"];
}

逻辑整理 1.遵循鉴权sdk内置协议 2.完成初始化请求token获取[self sendPostRequest]; 并在请求结果中设置对应的鉴权方式如 [[BDSpeechTTSBaseKit sharedInstance] setTTSLicenseWithAuthToken:@"平台获取的token" AndExpirationDate:"token有效期时间"];获取token。3.成功后正常继续下一步,异常或请求token失败、token有效期到期等 SDK代理会监听到 触发getToken、getIamkey代理 进行重新处理逻辑 demo示例中做了重新获取token的操作 仅供参考 
   
注:使用该方式为了满足 「鉴权信息保存在server端,app通过请求server端获取access token」的需求,语音SDK需要提供 鉴权信息回调点,并由用户最终实现 回调接口。

纯离线语音合成模式

请参考initOfflineSDK方法配置离线资源文件和鉴权,或参考4.2离线集成配置相关描述。

  1. APPID+SN方式鉴权:

参数配置说明 AppID可登录控制台查看,App ID与SN获取方式参考 快速集成指南

暂不支持swift版本,Objective-c版本如下: 离线TTS调用示例

- (void)initOfflineSDK {
    // 初始化日志,仅 DEBUG 调试打开此设置
    [[BDSSpeechLogger sharedInstance] setLogLevel:BDSSpeechLogLevelInfo path:nil callback:nil];
    
    // 创建语音合成器实例
    self.synthesizer = [[BDSSpeechSynthesizer alloc] initWithDelegate:self];
    // 设置离线参数资源文件
    NSString *textData = [[NSBundle mainBundle] pathForResource:@"bd_etts_common_text_txt_all_mand_eng_middle_big_v6.0.0_20240731" ofType:@"dat"];
    NSString *speechData = [[NSBundle mainBundle] pathForResource:@"bd_etts_common_speech_duxiaoyao_mand_eng_high_am-tac-csubgan16k_v4.9.0_20251028_20251031153737" ofType:@"dat"];

    // 正确的离线模型配置
    NSDictionary *offlineModel = @{
            BDSSpeechSynthesizerParams.ttsTextModelFile: textData,
            BDSSpeechSynthesizerParams.ttsSpeechModelFile: speechData
        };
    NSData *offlineModeData = [NSJSONSerialization dataWithJSONObject:offlineModel options:0 error:nil];
    NSString *offlineModelString = [[NSString alloc] initWithData:offlineModeData encoding:NSUTF8StringEncoding];
    [self.synthesizer setParam:BDSSpeechSynthesizerParams.paramOfflineModel value:offlineModelString];
    
    // 设置离线授权文件
    [self.synthesizer setParam:BDSSpeechSynthesizerParams.paramAppId value:@"平台申请获取的APPID"];
    [self.synthesizer setParam:BDSSpeechSynthesizerParams.paramAuthSerialNumber value:@"平台申请获取的SN"];
    
    // 加载离线引擎
    BDSSpeechResult *result = [self.synthesizer loadOfflineEngine];
    result = [self.synthesizer loadOfflineEngine];
    if (result.code != 0) {
        NSLog(@"加载离线引擎失败: %ld", (long)result.code);
    }
}
  1. 加载离线引擎 离线合成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 合成接口初始化

⽤于获取、释放合成器实例

// 初始化 - (instancetype)initWithDelegate:(id<BDSSpeechSynthesizerDelegate>)delegate;
// 释放 - (void)releaseEngine;

7.2 接口参数配置

/**
* @brief 合成器参数设置接⼝ 
* @param param 参数对应的值 
* @param key 合成器预定义的参数名称,参⻅附录及头⽂件BDSSpeechSynthesizerParams.h. 
*/ - (BDSSpeechResult *)setParam:(NSString *)key value:(NSString *)value;

7.2.1 设置在线合成信息

/**
* @brief 为在线合成设置认证信息
* @param AccessToken 在百度开发者中⼼注册应⽤获得
*/
[self.synthesizer setParam:BDSSpeechSynthesizerParams.paramAccessToken value:@"xxx"];

7.2.2 加载在线引擎

// 加载在线引擎
BDSSpeechResult *result = [self.synthesizer loadOnlineEngine];
if (result != 0) {
NSLog(@"加载在线引擎失败: %ld", (long)result.code); } 

7.3离线合成参数

7.3.1配置离线资源

// 设置离线资源 (⽅式⼀,适合业务⾃⾏管理,云端下发资源⽂件)
NSString *textData = [[NSBundle mainBundle] pathForResource:@"xxx" ofType:@"dat"];
NSString *speechData = [[NSBundle mainBundle] pathForResource:@"xxx" ofType:@"dat"];
NSDictionary *offlineModel = @{BDSSpeechSynthesizerParams.ttsTextModelFile: @([textData UTF8String]),
BDSSpeechSynthesizerParams.ttsSpeechModelFile: @([speechData UTF8String])};
NSData *offlineModelData = [NSJSONSerialization dataWithJSONObject:offlineModel options:0 error:nil];
NSString *offlineModelString = [[NSString alloc] initWithData:offlineModelData encoding:NSUTF8StringEncoding]; [self.synthesizer setParam:BDSSpeechSynthesizerParams.paramOfflineModel value:offlineModelString];

7.3.2设置离线授权

// 设置您的鉴权 sn
[self.synthesizer setParam:BDSSpeechSynthesizerParams.paramAuthSerialNumber value:@"your auth sn")]; 
[self.synthesizer setParam:BDSSpeechSynthesizerParams.paramAppId value:@"xxx"];

7.3.3加载离线引擎

// 加载离线引擎
result = [self.synthesizer loadOfflineEngine];
if (result.code != 0) {
NSLog(@"加载离线引擎失败: %d", result.code); }

7.4语音合成接口

7.4.1合成并朗读

/**
* 合成并播放语⾳ * @param entity 语⾳合成实体 
* @return 播放结果 
*/ 
- (BDSSpeechResult *)speak:(BDSSpeechEntity *)entity;

7.4.2合成不朗读

/**
* 合成语⾳ * @param entity 语⾳合成实体 
* @return 合成结果 
*/ 
- (BDSSpeechResult *)synthesize:(BDSSpeechEntity *)entity;

7.4.3取消合成并停止朗读

/**
* 停⽌播放/合成 
* @return 停⽌结果 
*/
- (BDSSpeechResult *)stop;

7.4.4暂停朗读

/**
* 暂停播放
* @return 暂停结果 
*/ 
- (BDSSpeechResult *)pause;

7.4.5恢复朗读

/**
* 恢复播放
* @return 恢复结果 
*/ 
- (BDSSpeechResult *)resume;

7.4.6合成状态监听器接口

- (void)onSynthesizerResponse:(BDSSpeechSynthesizerResponse *)synthesizerResponse {
switch (response.synthesizeType) {
case BDSSpeechSynthesizerTypeStart:
NSString *sn = synthesizerResponse.sn; // 此次SDK侧传递的⽂本合成的标识,建议保存,后续排查服务器等问题需要使⽤。
NSString *utteranceId = synthesizerResponse.utteranceId;// 此次业务侧传递的⽂本合成的标识,⽤来做相关逻辑判断。
break; ...... }

7.4.7合成模式

合成模式 参数
纯在线 BDSSpeechModeOnline
纯离线 BDSSpeechModeOffline
混合模式,在线优先 BDSSpeechModeMix
BDSSpeechEntity *entity = [[BDSSpeechEntity alloc] initWithText:text
                                                               mode:BDSSpeechModeOnline
                                                        utteranceId:[[NSUUID UUID] UUIDString]
                                                           params:nil];

7.5播放控制

7.5.1设置播放器音量

[self.synthesizer setParam:BDSSpeechSynthesizerParams.paramPlayerVolume value:@"0-1"];

7.5.2设置AudioSession相关

// 业务⽅根据需求场景⾃定义设置,此处仅做举例
- (void)setAudioSessionConfig {
NSString *category = AVAudioSessionCategoryPlayback;
NSUInteger categoryOptions = (AVAudioSessionCategoryOptionMixWithOthers|
AVAudioSessionCategoryOptionDuckOthers);
NSError *error = nil; [[AVAudioSession sharedInstance] setCategory:category withOptions:categoryOptions error:&error];
if (error) { [self appendLog:[NSString stringWithFormat:@"设置⾳频会话失败: %@", error.localizedDescription]]; } }

7.5.3配置后台播放

image (30).png

注:配置xcodebackground Modes保证后台播放生效。

8.工具类

8.1设置、获取本地日志级别

// 初始化⽇志,仅 DEBUG 调试打开此设置 
[[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查询静态库版本信息

bash
strings -a BDTTSClientSDK | grep TTS_SDK_VERSION // SDK 版本号
strings -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 未知错误
上一篇
语音合成 Android SDK
下一篇
语音合成 HarmonyOS SDK