在线语音合成(iOS旧)
该技术服务已迁移至思必驰开放平台,本文档于2020年8月25日停止更新。最新版请查看:https://cloud.aispeech.com/docs/ct_cloud_TTS_IOS
一、在线TTS SDK 介绍
开发者通过集成DUI Lite-在线TTS,提供将文字信息转化为声音信息的能力,相当于给应用适配了“嘴巴”功能。您将SDK导入到工程中,就可以获取从文字输入到语音输出的支持。另外,也提供了众多特色的发音人供您选择,其合成音在音色等各方面都趋近于人声,给您带来更好的体验。
二、SDK使用说明
在使用DUILite 在线TTS的SDK时,请先授权,否则禁止使用。授权操作详见文档授权说明。
2.1 参数与配置
在使用合成功能之前,请先配置这些选项。
参数名 | 取值 | 说明 | 是否必须 | 默认值 |
---|---|---|---|---|
delegate | 对象 | 设置回调的对象 | 必须 | N/A |
refText | 字符串文本 | 设置须要合成的文本 | 必须 | N/A |
speed | float型 | 设置播放语速,范围是[0.7, 2],1表示正常语速,数值越小语速越快;默认是正常语速,如在控制台已调试好合成音,speed取合成音倍率的值 | 非必须 | 1.0 |
volume | float型 | 设置音量大小,范围是[1, 100],取值越大音量越大 | 非必须 | 80.0 |
speaker | 字符串,指定发音人,取值见以下内置发音人列表 | 设置发音人 | 非必须 | zhilingf |
ttsType | 字符串,取值:text/ssml | 指定refText类型 | 非必须 | text |
cache | BOOL型,取值YES|NO | 是否使用缓存 | 非必须 | NO |
mp3Quality | NSString型,取值low|high | 指定合成音频为mp3时,采用高或低编码率 | 非必须 | low |
audioType | NSString型,取值mp3|wav | 指定合成音频的格式 | 非必须 | mp3 |
内置发音人列表
发音人取值 |
说明 |
是否支持SSML |
---|---|---|
dlaf |
多拉爱梦;中英文;青年女声 |
是 |
swkm | 孙悟空;纯中文;青年男声 | 否 |
lzyinf | 小颖;纯中文;青年女声 | 是 |
hbrinf | 快乐智慧 纯中文 童声女声 | 是 |
zzxiangm | 赵忠祥 纯中文 中年男声 | 是 |
feyinf | 女老师风吟;女声;威严正式;中英混合 | 是 |
xiyaof | 标准女声小妖;女声;慵懒烟嗓;中英混合 | 是 |
lzliaf | 可爱男童连连;男声;活泼可爱;中英混合 | 是 |
xjingf | 飘逸女声小静;女声;商务知性;中英混合 | 是 |
lucyfa | 标准女声小浩;女声;干练;中英混合 | 是 |
zhilingfa | 甜美女神小玲;女声;甜美、自然、性感;中英混合 | 是 |
lzliafa | 可爱男童连连;男童;活泼可爱;中英混合 | 是 |
lili1f_yubo | 娱报女声璃璃;女声;娱乐播报、活力;中英混合 | 是 |
juyinf_guigushi | 鬼故事绝音;女声;自然;中英混合 | 是 |
cyangf | 女学生初阳;女声;可爱;中英混合 | 是 |
xiyaof_laoshi | 女老师小妖;女声;自然;中英混合 | 是 |
qianranfa | 可爱女童然然;女童;天真俏皮;中英混合 | 是 |
aningf | 标准女声安宁;女声;温婉;中英混合 | 是 |
yaayif | 女声杨阿姨;女声;和蔼可亲;中英混合 | 是 |
gdgm | 沉稳幽默纲叔;男声;传统;中英文混合 | 是 |
zhilingf | 甜美女神小玲;女声;甜美、自然、性感;中英混合 | 是 |
xizhef | 女老师行者;女声;严肃;中英混合 | 是 |
xijunm | 标准男声小军;男声;新闻播报;中英混合 | 是 |
xijunma | 标准男声小军;男声;新闻播报;中英混合 | 是 |
kaolam | 标准男声考拉;男声;标准;中英混合 | 是 |
qiumum | 标准男声秋木;男声;活泼开朗;中英混合 | 是 |
tzruim | 标准男声小睿;男声;活力朝气;中英混合 | 是 |
wjianm | 标准男声小江;男声;亲切友善;中英混合 | 是 |
qianranf | 可爱女童然然;女童;天真俏皮;中英混合 | 是 |
linbaf_qingxin | 清新女声零八;女声;自然;中英混合 | 是 |
linbaf_gaoleng | 高冷女声零八;女声;自然;中英混合 | 是 |
anonyg | 标准女童佚佚;女童;传统;中文 | 否 |
yukaim_all | 磁性男声俞老师;男声;自然;中英混合 | 是 |
xiyaof_qingxin | 清新女声小妖;女声;清新甜美;中英混合 | 是 |
hyanif | 邻家女声小妮;女声;温柔亲切;中文 | 是 |
xjingf_gushi | 故事女声小静;女声;自然;中英混合 | 是 |
zzherf | 标准女声朱株儿;女声;故事;中英混合 | 是 |
zzhuaf | 故事女声砖砖;女声;自然;中英混合 | 是 |
hyanifa | 邻家女声小妮;女声;温柔亲切;中英混合 | 是 |
lili1f_diantai | 电台女声璃璃;女声;电台、安静;中英混合 | 是 |
lanyuf | 标准女声蓝雨;女声;温柔甜美;中英混合 | 是 |
jjingf | 知性女声晶晶;女声;知性大方;中英混合 | 是 |
gqlanf | 温柔女声小兰;女声;温柔、邻家;中英混合 | 是 |
smjief | 清亮女声小洁;女声;亲和;中英混合 | 是 |
jlshim | 男声季老师;男声;成熟稳重;中英混合 | 是 |
zxcm | 风趣幽默星哥;男声;传统;中文 | 是 |
kaolaf | 清纯女声考拉;女声;端庄优雅;中英混合 | 是 |
boy | 标准男童堂堂;男童;憨厚;中英混合 | 是 |
lucyf | 标准女声小浩;女声;干练;中英混合 | 是 |
geyou | 淡定风趣葛爷;男声;传统;中英混合 | 是 |
lili1f_shangwu | 商务女声璃璃;女声;商务大气;中英混合 | 是 |
anonyf | 标准平和小佚;女声;传统;中英混合 | 是 |
2.2. 合成音数据参考
消耗参考
字符总数 | 中文字符总数 | 英文字符总数 | 中文标点总数 |
---|---|---|---|
244 | 219 | 9 | 16 |
数据参考
类型 | 内容 |
---|---|
合成文本 | "苏州思必驰信息科技有限公司是一家语音技术公司,专注于将领先的系列智能语音技术应用于移动互联、智能设备、客户联络中心等行业。公司的中文名字是思必驰,思想必将驰骋,寓意着公司孤立自由的思想,以创新为本。同时这个名字还是英文单词Speech的音译,同样代表了公司立足智能语音技术行业的决心。而推出的DUI平台是国内首个以对话为核心的一站式交互定制平台,覆盖多应用场景和第三方内容资源,内置国内最专业语音技能库,为物联网、移动互联网和互联网的开发者,提供单项技术服务和一站式对话交互定制解决方案。" |
格式 | mp3 |
数据大小 | 163.08kb |
2.3 使用Log测试服务
使用Log测试请先在程序入口处调用如下代码,打开Log开关。
log开关设置
[DUILiteAuth setLogEnabled:YES];
2.4 初始化
使用以下方法来初始化SDK:
初始化
//创建合成引擎对象
@property (nonatomic, strong) AISTTSPlayer* player;
设置音频策略
- (void)setAudioConfig{
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback withOptions:AVAudioSessionCategoryOptionDefaultToSpeaker error:nil];
[[AVAudioSession sharedInstance] setActive:YES error:nil];
}
//引擎初始化,设置相关参数
-(void)initTTS{
NSMutableDictionary *authConfigDic = [[NSMutableDictionary alloc] init];
[authConfigDic setObject:@"xxxxxxxxxx" forKey:K_PRODUCT_ID];
[authConfigDic setObject:@"xxxxxxxxxx" forKey:K_USER_ID];
[authConfigDic setObject:@"xxxxxxxxxx" forKey:K_API_KEYS];
[authConfigDic setObject:@"xxxxxxxxxx" forKey:K_PRODUCT_KEYS];
[authConfigDic setObject:@"xxxxxxxxxx" forKey:K_PRODUCT_SECRET];
[DUILiteAuth setAuthConfig:self config:authConfigDic];
if (!self.player) {
self.player = [[AISTTSPlayer alloc] init];
}
//设置协议委托对象
self.player.delegate = self;
//设置合成参数
self.player.refText = @"苏州思必驰信息科技有限公司";
self.player.speed = 1.0;
self.player.volume = 50.0;
self.player.speaker = @"zhilingf";
}
//实现回调函数
-(void)onAISTTSInitCompletion{
NSLog(@"语音合成完成");
}
-(void)onAISTTSPlayCompletion{
NSLog(@"播放完成");
}
-(void)onAISTTSError:(NSError *)error{
NSLog(@"错误信息: %@",error);
}
2.5 功能列表
2.5.1 启动合成引擎,等待播放
引擎启动接口
[self.player startTTS];
2.5.2 关闭合成引擎,停止合成
引擎关闭接口
[self.player stopTTS];
2.5.3 暂停合成引擎,暂停播放
引擎暂停接口
[self.player pauseTTS];
2.5.4 恢复合成引擎,继续播放
引擎恢复接口
[self.player continueTTS];
2.6 错误码描述
error id | 错误描述 | 原因及解决办法 |
---|---|---|
070901 | Cloud speech synthesis failed | 请检查合成类型和合成文本是否匹配,或者可能是服务返回的音频为空,请联系客服 |
070902 | Online voice playback failed | 请重新合成播放,或者联系客服 |
070903 | Cloud voice request synthesis failed | 检查网络是否畅通、检查是否是基础技术产品、检查产品是否已经发布 |
070904 | Synthetic sound text is empty | 检查参数refText传入的内容 |
070905 | Synthetic sound text does not match the composite type | 请检查是否是ssml合成文本,或者检查ssml本文书写是否正确 |