开发环境
1. 支持 iOS 9.0 及以上版本。
2. 需要手机能够连接网络。
3. 语音合成 iOS SDK。
导入 SDK
直接导入
将 SDK 文件夹内的 QCloudStreamTTS.xcframework、VoiceCommon.framework 添加到项目的链接库中即可。
CocoaPods 导入
pod 'QCloudStreamTTS'
接口说明
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];