开发环境
1. 支持 iOS 9.0 及以上版本。
2. 需要手机能够连接网络。
3. 语音合成 iOS SDK。
4. 流式语音合成 SDK 包体增:121.83KB;xcframework 库体积:434KB。
导入 SDK
直接导入
将 SDK 文件夹内的 QCloudStreamTTS.xcframework、VoiceCommon.framework 添加到项目的链接库中即可。
CocoaPods 导入
如果已有 podfile 文件,添加补充即可:
pod 'QCloudStreamTTS'
如果没有 podfile:
确保已安装 CocoaPods(终端执行
pod --version 检查)。podfile 是 CocoaPods 的配置文件,需要放在项目的根目录(与 .xcodeproj 文件同级目录)。
编辑 podfile 内容,编辑完成后保存。
platform :ios, '9.0' # 设置最低支持的 iOS 版本target 'YourAppTargetName' do # 将 YourAppTargetName 替换为你的实际 Target 名称# 添加 QCloudStreamTTS 依赖pod 'QCloudStreamTTS'end
执行
pod install。安装完成后,不再使用 .xcodeproj 文件,而是使用新生成的 .xcworkspace 文件打开项目。
接口说明
QCloudStreamTTSController
流式文本合成控制器
@protocol QCloudStreamTTSController <NSObject>/** 发送合成文本,需要在onReady后调用,否则发送的文本不会处理* @param text 需要合成的文本*/-(void)synthesis:(nonnull NSString*)text;/** 取消合成任务*/-(void)cancel;/** 停止合成任务*/-(void)stop;@end
QCloudStreamTTSConfig
流式文本合成配置
@interface QCloudStreamTTSConfig : NSObject@property (nonnull) NSString* appID; // 腾讯云 appid@property (nonnull) NSString* secretID; // 腾讯云 secretID@property (nonnull) NSString* secretKey; // 腾讯云 secretKey@property (nonnull) NSString* token; // 临时token,不为空字符时生效,使用临时token时,secretId,secretKey需为临时密钥@property int connectTimeout; // 大于0生效,单位为ms,默认为0/** 设置传入后台的api的参数,参数可参考文档https://cloud.tencent.com/document/product/1073/108595 说明* @param key 参数名称* @param value 参数值,参数值为nil会删除已设置的key*/- (QCloudStreamTTSConfig*)setApiParam:(nonnull NSString*)key value:(nullable NSString*)value;- (QCloudStreamTTSConfig*)setApiParam:(nonnull NSString*)key ivalue:(NSInteger)value;- (QCloudStreamTTSConfig*)setApiParam:(nonnull NSString*)key fvalue:(float)value;- (QCloudStreamTTSConfig*)setApiParam:(nonnull NSString*)key bvalue:(BOOL)value;/** 创建流式语音合成控制器* @param listener 用于回调合成任务的接口及中间信息*/- (id<QCloudStreamTTSController>)build:(id<QCloudStreamTTSListener>)listener;@end
QCloudStreamTTSListener
@protocol QCloudStreamTTSListener <NSObject>@required/** 合成任务结束*/-(void)onFinish;/** 合成任务出错* @param error 错误信息*/-(void)onError:(nonnull NSError*)error;@optional/** 合成日志* @param value 日志信息* @param level 日志等级*/-(void)onLog:(nonnull NSString*)value level:(int)level;/** 服务端返回的音频数据,可参考文档https://cloud.tencent.com/document/product/1073/108595 说明* @param data 服务端返回的音频数据*/-(void)onData:(nonnull NSData*)data;/** 服务端返回的json数据,可参考文档https://cloud.tencent.com/document/product/1073/108595 说明* @param msg 服务端返回的json数据*/-(void)onMessage:(nonnull NSString*)msg;/** 服务端返回ready事件*/-(void)onReady;@end
错误码
合成任务的 NSError 仅通过 QCloudStreamTTSListener 的 onError 回调出来。
enum : NSInteger {STREAMTTSPARAMETERERROR = 2000, // 参数错误,SDK配置项设置有问题,一般为授权信息没有设置STREAMTTSWEBSOCKETERROR = 2001, // websocket错误,网络问题STREAMTTSCANCELERROR = 2002, // 取消错误,成功调用cancel返回此错误STREAMTTSSERVERERROR = 2003, // 服务端返回错误,可通过取userInfo中的Message获取详细信息};
SDK log 组件设置
用于宿主层对 SDK log 等级设置以及本地逻辑、回调功能实现。导包 <VoiceCommon/QCloudVoiceLogger.h>
// (可选)设置log等级,默认为VOICE_SDK_ERROR_LEVEL[QCloudVoiceLogger setLoggerLevel:VOICE_SDK_DEBUG_LEVEL];// (可选)将log写入本地磁盘,默认为 NO[QCloudVoiceLogger needLogFile:YES];// (可选)注册log回调[QCloudVoiceLogger registerLoggerListener:^(VoiceLoggerLevel loggerLevel, NSString * _Nonnull logInfo) {NSLog(@"[ASR]-%@",logInfo);} withNativeLog:YES];