GenerateTestUserSig.h
文件:适用平台文件相对路径iOSiOS/TRTCScenesDemo/TXLiteAVDemo/Debug/GenerateTestUserSig.hMacMac/TRTCScenesDemo/TRTCDemo/TRTC/GenerateTestUserSig.hGenerateTestUserSig.h
文件中的相关参数:pod install
命令安装 TRTC SDK,或者执行pod update
命令,更新本地库版本。1,打开您的 Xcode 工程项目,选择要运行的 target , 选中Build Phases项。
项目结构
2,单击Link Binary with Libraries项展开,单击底下的“+”号图标去添加依赖库。
添加依赖库
3,依次添加所下载的 TRTC SDK Framework 及其所需依赖库libc++、Accelerate.framework和libresolv.tbd、AVFoundation.framework。
添加描述
4,授权摄像头和麦克风使用权限
使用 SDK 的音视频功能,需要授权麦克风和摄像头的使用权限。在 App 的 Info.plist 中添加以下两项,分别对应麦克风和摄像头在系统弹出授权对话框时的提示信息。
权限设置
5,在 Objective-C 或 Swift 代码中使用 SDK 有两种方式:
//1.TRTCAudioFrameDelegate 协议是 TRTC 获取音频源的协议,由于 ASR 识别16k或8k采样率的音频数据,所以需要设置 setAudioQuality 为 TRTCCloudDef#TRTC_AUDIO_QUALITY_SPEECH (流畅:采样率:16k;单声道;音频裸码率:16kbps)
- (void) onCapturedRawAudioFrame:(TRTCAudioFrame *)frame {//此方法为 TRTC 本地麦克风采集到的原始音频数据回调:
NSUInteger readLength = [frame.data length];
void *pcmBytes = (void *)frame.data.bytes;
[dataSource didRecordAudioData:pcmBytes length:readLength];
}
此方法在TRTCCloudDelegate中
ASR 音频源设置为第三方,并实现具体逻辑。
接入第三方音频源需要在 ASR 接入部分实现 QCloudAudioDataSource 协议。代码示例如下:
#import<QCloudSDK/QCloudSDK.h>
//1.使用第三方外部数据源传入语音数据,自定义 data source 需要实现 QCloudAudioDataSource 协议
QDAudioDataSource *dataSource = [[QDAudioDataSource alloc] init];
//2.创建 QCloudRealTimeRecognizer 识别实例
QCloudRealTimeRecognizer *realTimeRecognizer = [[QCloudRealTimeRecognizer alloc] initWithConfig:config dataSource:dataSource];
接入 ASR 的 QCloudAudioDataSource 协议如下,协议详情。代码可参考工程中 QDAudioDataSource.m 文件。
@interface QDAudioDataSource : NSObject<QCloudAudioDataSource>
@end
@implementation QDAudioDataSource
@synthesize running = _running;
//SDK 会调用此方法获取当前状态
- (BOOL)running{
return _recording;
}
//SDK 会调用 start 方法,实现此协议的类需要初始化数据源
- (void)start:(void(^)(BOOL didStart, NSError *error))completion{
_data = [[NSMutableData alloc] init];
}
//SDK 会调用 stop 方法,实现此协议的类需要停止提供数据
- (void)stop{
_recording = NO;
_data = nil;
}
//SDK 会调用实现此协议的对象的此方法读取语音数据
- (nullable NSData *)readData:(NSInteger)expectLength{
NSData *data = nil;
if ([_data length] >= _offset + expectLength) {
data = [_data subdataWithRange:NSMakeRange(_offset, expectLength)];
[_data replaceBytesInRange:NSMakeRange(_offset, expectLength) withBytes:NULL length:0];
}
return data;
}
//此处仅为演示,需用户自行完善音频数据源填充
- (void)didRecordAudioData:(void * const )bytes length:(NSInteger)length{
[_data appendBytes:bytes length:length];
}
@end
https://video-1302335295.cos.ap-guangzhou.myqcloud.com/videos/TRTC%2BASR/video.mp4
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有