实时语音合成

最近更新时间:2025-09-12 17:56:31

我的收藏

开发环境

1. 支持 iOS 9.0 及以上版本。
2. 需要手机能够连接网络。

导入 SDK

直接导入
将 SDK 文件夹内的 QCloudRealTTS.xcframework、VoiceCommon.framework 添加到项目的链接库中即可。
CocoaPods 导入
pod 'QCloudRealTTS'

接口说明

QCloudRealTTSController

实时语音合成控制器
@protocol QCloudRealTTSController <NSObject>
/*
* 取消合成任务
*/
-(void)cancel;

@end

QCloudRealTTSConfig

实时语音合成配置
@interface QCloudRealTTSConfig : 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/94308 说明
* @param key 参数名称
* @param value 参数值,参数值为nil会删除已设置的key
*/
- (QCloudRealTTSConfig*)setApiParam:(nonnull NSString*)key value:(nullable NSString*)value;
- (QCloudRealTTSConfig*)setApiParam:(nonnull NSString*)key ivalue:(NSInteger)value;
- (QCloudRealTTSConfig*)setApiParam:(nonnull NSString*)key fvalue:(float)value;
- (QCloudRealTTSConfig*)setApiParam:(nonnull NSString*)key bvalue:(BOOL)value;

/*
* 创建实时语音合成控制器
* @param listener 用于回调合成任务的接口及中间信息
*/
- (id<QCloudRealTTSController>)build:(id<QCloudRealTTSListener>)listener;
@end

QCloudRealTTSListener

实时语音合成结果回调
@protocol QCloudRealTTSListener <NSObject>

/*
* 合成任务结束
*/
-(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/94308 说明
* @param data 服务端返回的音频数据
*/
-(void)onData:(nonnull NSData*)data;
/*
* 服务端返回的json数据,可参考文档https://cloud.tencent.com/document/product/1073/94308 说明
* @param msg 服务端返回的json数据
*/
-(void)onMessage:(nonnull NSString*)msg;

@end

错误码

合成任务的 NSError 仅通过 QCloudStreamTTSListener的onError 回调出来。
enum : NSInteger {
REALTTSPARAMETERERROR = 2000, // 参数错误,SDK配置项设置有问题,一般为授权信息没有设置
REALTTSWEBSOCKETERROR = 2001, // websocket错误,网络问题
REALTTSCANCELERROR = 2002, // 取消错误,成功调用cancel返回此错误
REALTTSSERVERERROR = 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];