iOS SDK
智能体开启/关闭
SDK初始化
1- (id)initWithParams:(AgentEngineParams*) params delegate:(id<BaiduChatAgentDelegate>)delegate;
初始化SDK。
初始化SDK时调用。设置 AppID、日志等参数
AgentEngineParams
参数 | 类型 | 描述 |
---|---|---|
appId | NSString* | RTC 基础业务单元的唯一标识 |
config | NSString* | 服务器端接口下发数据 { "cid": 1, "token": "xxx-aa-bb" } |
instanceId | NSInteger | 实例id 服务器端下发,当前调试默认即可 |
verbose | BOOL | 日志开关 |
regionServer | NSString * | 海外服务器配置,参考 BaiduChatAgentRegionType |
licenseKey | NSString * | 授权 key |
userId | NSString * | 用户 ID |
enableVoiceInterrupt | BOOL | 是否允许自动打断 |
userAudioLevelInterrupt | NSInteger | 本地音频打断能量值 默认80 |
enableExternalAudioDevice | BOOL | 本地音频打断能量值 默认80 |
audioSampleRate | int | 音频采样率,目前仅外部音频生效 |
enableDumpAudioInput | BOOL | 是否 dump 采集音频数据(PCM格式,每次 call/hangup 形成一个录音文件,录制目录:Documents/audio_dump) |
返回
返回 SDK 实例,nil 表示初始化失败
启动本地智能体
1- (void)call:(NSString *)token instanceId:(NSInteger)instanceId;
该函数在 initSDKWithAppID后调用,启动本地的智能体本地端
参数
参数 | 类型 | 描述 |
---|---|---|
token | NSSTring* | 通过url获取远端的智能体的返回的参数,token |
instanceId | NSString* | instanceId 实例id |
返回
无
挂断本地退出
1- (void)hangup;
主动退出远端和本地智能体
参数
无
返回
资源销毁
1- (void)destroy;
销毁本地资源
返回
无
智能体交互控制
打断智能体会话
1- (void)interrupt;
打断智能体的对话指令,开启新的回话。
参数 无
返回
静音播放
1- (void)mutePlayback:(BOOL)isMute;
开启和关闭静音智能体的播放
参数
参数 | 类型 | 描述 |
---|---|---|
isMute | BOOL | YES/NO |
返回
void
静音mic
1- (void)muteMic:(BOOL)isMute;
采集接口静音操作
参数
参数 | 类型 | 描述 |
---|---|---|
isMute | BOOL | YES/NO |
返回
无
切换听筒和扬声器
1-- (void)switchToSpeaker:(BOOL)speaker;
听筒和外放切换
参数
参数 | 类型 | 描述 |
---|---|---|
speaker | BOOL | YES 扬声器 NO 听筒 |
返回
无
预置扬声器状态
1- (void)presetLoudSpeaker:(BOOL)isSpeaker;
预置听筒/扬声器播放语音,在 initWithParams 之后,call 之前调用
参数
参数 | 类型 | 描述 |
---|---|---|
isSpeaker | BOOL | YES 扬声器 NO 听筒 |
返回
无
发送文本给智能体
1- (void)sendTextToAIAgent:(NSString *)text;
发送文本信息
参数
参数 | 类型 | 描述 |
---|---|---|
text | NSString * | 发送文本信息 |
返回
无
发送文本给智能体,打断播报
1- (void)sendTextToAIAgentAndInterrupt:(NSString *)text;
发送文本给智能体,并且打断当前播报
参数
参数 | 类型 | 描述 |
---|---|---|
text | NSString * | 发送文本信息 |
返回
无
发送文本给TTS
1- (void)sendTextToTTS:(NSString *)text;
发送文本给TTS,直接进行播报
参数
参数 | 类型 | 描述 |
---|---|---|
text | NSString * | 发送文本信息 |
返回
无
FunctionCall处理结果返回
1- (void)sendFunctionCallResult:(NSString*) functionID result:(NSString *)msg;
处理结果返回
参数
参数 | 类型 | 描述 |
---|---|---|
functionID | NSString* | fuction的默认ID |
msg | NSString* | 返回结果 |
返回
无
上传文件
1- (BOOL)uploadFile:(NSString *)path expire:(NSInteger)expire;
上传本地文件进行互动,目前仅支持图片
参数
参数 | 类型 | 描述 |
---|---|---|
path | NSString* | 上传文件的路径 |
expire | NSInteger | 文件互动过期时间,默认 180s |
返回
上传是否成功
相机控制
打开相机及视频预览视图,以使用视频互动功能
打开相机
1- (void)startCameraPreview;
打开相机。打开相机后可以进行视频互动,具体过程请参考Demo实现
关闭相机
1- (void)stopCameraPreview;
关闭相机。
翻转相机
1- (void)switchCamera;
切换前后摄像头
视频预览
设置相机视图
1- (void)setLocalDisplay:(RTCLocalVideoView *)localVideoView;
设置相机画面显示的View
参数
参数 | 类型 | 描述 |
---|---|---|
remoteVideoView | RTCRemoteVideoView | RTC里面的通用显示view |
RTCRemoteVideoView 使用BRTC的View
返回
无
设置数字人视图
1-(void)setDigitalDisplay:(RTCRemoteVideoView *) remoteVideoView;
开启设置数字人的显示的View
参数
参数 | 类型 | 描述 |
---|---|---|
remoteVideoView | RTCRemoteVideoView | RTC里面的通用显示view |
返回
无
音频相关
外部音频
1- (void)setAudioExternalDeviceDelegate:(id<BaiduRtcRoomApiAudioExternalDeviceDelegate>)audioExternalDelegate;
设置外部音频设备进行采集和播放。
需要在 call 之前设置 AgentEngineParams.enableExternalAudioDevice 为 YES 启用该功能,
设置 AgentEngineParams.audioSampleRate 调整音频采样率。
代理具体使用方法参考 Demo BCAAudioExternalDevice 实现
参数
参数 | 类型 | 描述 |
---|---|---|
audioExternalDelegate | id |
外部音频设备代理 |
返回
无
事件回调
错误信息回调
1-(void)onError:(NSInteger)errCode errMsg:(NSString *)errMsg extInfo:(nullable NSDictionary*)extInfo;
错误信息回调
参数
参数 | 类型 | 描述 |
---|---|---|
errCode | NSInteger | errno |
errMsg | NSString * | 错误文本 |
extInfo | NSDictionary* | 错误的json串返回 |
智能体登录状态改变通知
1 - (void)onCallStateChange:(AGentCallState)state;
错误信息回调
参数
参数 | 类型 | 描述 |
---|---|---|
state | NSInteger | 状态信息 AGentCallState |
回调事件
1typedef NS_ENUM(NSInteger, AGentCallState) {
2 AGENT_CALL_BEGIN = 1,
3 AGENT_CALL_END
4};
链路状态信息回调
1 - (void)onConnectionStateChange:(AGentConnectState)state;
智能体链路信息回调
参数 | 类型 | 描述 |
---|---|---|
state | NSInteger | 状态信息 AGentCallState |
回调事件
1typedef NS_ENUM(NSInteger, AGentCallState) {
2 AGENT_CONNECTION_STATE_DISCONNECTED = 1,
3 AGENT_CONNECTION_STATE_CONNECTING,
4 AGENT_CONNECTION_STATE_CONNECTED,
5 AGENT_CONNECTION_STATE_RECONNECTING
6};
本地语音Asr文本识别返回
1 - (void)onUserAsrSubtitle:(NSString *)text isFinal:(BOOL)isFinal;
链接状态变更回调
参数
参数 | 类型 | 描述 |
---|---|---|
text | NSString * | ASR 返回内容 |
isFinal | BOOL | 是否是结尾 |
远端语音TTS文本识别返回
1 - (void)onAIAgentSubtitle:(NSString *)text isFinal:(BOOL)isFial;
视频渲染首帧回调
参数
参数 | 类型 | 描述 |
---|---|---|
text | NSString * | TTS返回文本内容 |
isFinal | BOOL | 是否是结尾 |
AI智能体音频状态变化
1 - (void)onAIAgentAudioStateChange:(AGentAudioState)newState;
智能体音频状态变化
参数
参数 | 类型 | 描述 |
---|---|---|
newState | AGentAudioState | 用户uid |
1typedef NS_ENUM(NSInteger, AGentAudioState) {
2 AGENT_STOPPED = 1,
3 AGENT_SPEAKING
4};
用户声音状态变化
1 - (void)onUserAudioStateChange:(AGentAudioState)newState;
远端用户离开事件
参数
参数 | 类型 | 描述 |
---|---|---|
newState | AGentAudioState | 用户uid |
1typedef NS_ENUM(NSInteger, AGentAudioState) {
2 AGENT_STOPPED = 1,
3 AGENT_SPEAKING
4};
智能体音频能量
1 - (void)(void)onAIAgentAudioLevel:(NSInteger)level;
远端智能体的音量返回
参数
参数 | 类型 | 描述 |
---|---|---|
level | NSInteger | 返回智能体的音量 |
用户音频能量
1 - (void)onUserAudioLevel:(NSInteger)level;
本地用户音量返回
参数
参数 | 类型 | 描述 |
---|---|---|
level | NSInteger | 返回本地的音量 |
回调functionCall事件
1 - (void)onFunctionCall:(NSString*) functionID param:(NSString*) params;
本地用户音量返回
参数
参数 | 类型 | 描述 |
---|---|---|
functionID | NSString* | 返回function的ID |
params | NSString* | 返回的function的详细json串 |