新建⽇期: 2021-10-30 修改⽇期: 2023-05-22
GJDigitalSDK.framework、WebRTC.framework
开发⼯具: Xcode
将 GJDigitalSDK.framework和webrtc⽂件拖拽至工程的资源目录下:
Info.plist文件中添加相机权限和录音权限
详细⻅GJDigitalSDKDemo⽬,关键代码样例:
/// 初始化数据
//有1个iceserver获多个iceserver配置(中继或集群) 所以放入数组
NSMutableArray * stunlist=[[NSMutableArray alloc] init];
DigitalSever * digitalSever=[[DigitalSever alloc] init];
digitalSever.urlStrings=@[@"stun:47.114.110.197:23478"];
digitalSever.username=@"";
digitalSever.credential=@"";
[stunlist addObject:digitalSever];
[DigitalConfig shareConfig].serverIP = @"vshow.guiji.ai";// 信令控制服务器地址
[DigitalConfig shareConfig].servePort = 5222;// 信令控制服务器端口
[DigitalConfig shareConfig].robotCode = @"1536644575861542912";/// 机器人编号用来选择对接的对象
[DigitalConfig shareConfig].robotMode = @"";//客户端驱动
[DigitalConfig shareConfig].iceList = [stunlist copy];///// stun地址,ice服务器
[DigitalConfig shareConfig].userJID = @"iray-proxy-duix@guiji.ai";/// 对方会话id,默认 iray-proxy@guiji.ai
[DigitalConfig shareConfig].isShowLocalVideo = YES;//是否显示本地视频view
[DigitalConfig shareConfig].isShowLocalAudio = YES;/// 是否播放本地语音(默认YES)
[DigitalConfig shareConfig].isOpenCamera = YES;//是否打开摄像头
[DigitalConfig shareConfig].usingFrontCamera = YES;//是否使用前置摄像头
[DigitalConfig shareConfig].openAsr = @"true";/// openAsr(非必传)true:开启识别,false:不开启识别
[DigitalConfig shareConfig].groupId = @"duix-public";/// 内部用的传dhrtcpc,客户的用duix-public,默认dhrtcdev
[DigitalConfig shareConfig].isAsr = NO;// 一句话识别(不使用音视频):no,长链接识别:yes,
[DigitalConfig shareConfig].uuid = [NSString stringWithFormat:@"%@", [[DigitalConfig shareConfig] uuidString]];///// 每次新建会话生成的唯一编号,不能重复
//加载view和代理
[DigitalManager manager].remote_view=self.view;//远程视频
[DigitalManager manager].delegate=self;//代理
[[DigitalManager manager] toStart];//开始通讯
[DigitalManager manager].local_view=self.localView;//本地视频
//默认配置
+(DigitalManager*)manager;
//开始初始化通讯并且是否开启本地摄像头
-(void)toStart;
// 结束通讯
-(void)toStop;
// 客户端控制开启、关闭asr识别 // isOpen yes:打开,no:关闭
-(void)changeAsrEvent:(BOOL)isOpenAsr;
//打开本地摄像头
-(void)toOpenCamera;
//关闭本地摄像头
-(void)toStopCamera;
//发送说话内容给中控 robotMode=@"bot"模式answer事件 robotMode=@""客户端模式发送Command事件
-(void)sendContent:(NSString *)content;
// 给中控发送文本(驱动模式robotMode为空) // @param content 文本内容
-(void)commandEvent:(NSString *)content;
//识别出来的asr数据 -(void)detectedSpeech:(NSString*)asrText;
// 对话模式用answer事件 // @param content 语音地址或文本内容 // @param isAudio 是否是语音(yes:语音,no:文本)
-(void)answerCommandEvent:(NSString *)content isAudio:(BOOL)isAudio;
//YES关闭静音 NO静音
-(void)setMute:(BOOL)isEnabled;
/// 打断数字人播报
/// 和后台约定自定义事件
@protocol DigitalViewDelegate
-(void)onError:(NSInteger)error_code;
/* *会话建立成功 */
-(void)onChatCreate;
/* *远程视频通讯完成 */
-(void)onRTCReomteSuccess;
/* *中控获取到渲染端信息后通知客户端 *@param ID id *@param name name */
-(void)onRender:(NSString *)ID name:(NSString *)name;
/* *中控获取到播放话术后将字幕以及话术指令推送给客户端 *@param dic 字幕以及话术指令 */
-(void)onCommand:(NSDictionary *)dic;
/* *识别出来的asr数据 *@param asrText asr内容 */
-(void)detectedSpeech:(NSString*)asrText;
/* *当前中端回调的事件 *@param msg 事件名字 */
-(void)onCustomMsg:(NSString *)msg;
/* *webrtc连接状态回调 *@param state RTCIceConnectionState */
-(void)didIceConnectionChange:(RTCIceConnectionState)state;
/* *中控获取不到渲染端信息后通知客户端繁忙 */
-(void)onBusy;
/* *中控结束通话,发送bye事件 */
-(void)onByeBye;
/* *是否成功加载数字人 */
-(void)onVideoShow:(BOOL)isSuccess :(float)progress;
/* *获取本地视频的视频流 */
-(void)capturer:(RTCVideoCapturer *)capturer didCaptureVideoFrame:(RTCVideoFrame *)frame;
@end
(1)我们将依据相关法律法规,对人工智能生成合成内容添加相应标识(如在生成合成内容或者交互场景界面中添加的显式标识,采用技术措施在生成合成内容的文件元数据中添加的隐式标识)。您应确保您已仔细阅读并理解《人工智能生成合成内容标识办法》及其他相关的标识管理要求。您不得使用或尝试使用任何技术手段或其他方法删除、篡改、伪造、隐匿该等生成合成内容标识,不得为他人实施删除、篡改、伪造、隐匿该等生成合成内容标识行为提供工具或者服务,不得通过不正当标识手段损害他人合法权益。
(2)在特定场景下,为更好地满足您的使用需求,我们可能根据您的申请为您提供没有添加显式标识的人工智能生成合成内容。如您申请我们提供没有添加显式标识的生成合成内容的,您需承诺并保证:
①不利用该内容发布、传播任何虚假信息或从事其他任何违法违规活动;
②在发布或传播基于深度学习、虚拟现实、深度合成、生成式人工智能等新技术制作的非真实信息,或其他可能引发公众误解或混淆的信息内容时,应当以显著方式标识;
③在向第三方分享该内容或使用网络信息内容传播服务发布该内容或以其他方式使用该内容时,主动声明其为人工智能生成合成内容;
④遵守其他相关法律、法规、政策、办法的规定。
(3)如您违反上述约定,您应自行承担由此引起的所有责任,并赔偿由此给我们及第三方造成的全部损失(包括但不限于直接损失、间接损失、诉讼费、仲裁费、公证费、鉴定费、律师费、差旅费、保全费用、保全保险费、向任何第三方承担的责任、行政处罚、罚款等)。