通过阅读本文,您可以了解iOS SDK涉及的数据类型。
数据结构概览
旧版本SDK中存在弃用参数、方法,建议您将SDK升级到最新版本,请参见iOS使用指南。
结构类型 | 数据类型 | 描述 |
Enum | 智能体类型 | |
智能体状态 | ||
音频编码配置 | ||
音频场景配置 | ||
智能体视图渲染模式 | ||
智能体视图镜像模式 | ||
智能体视图旋转模式 | ||
网络状态 | ||
智能体当前讲话被打断原因 | ||
Vad反馈结果 | ||
错误码 | ||
判断用户说话是否结束模式 | ||
Class | 智能体运行时信息 | |
通话音频配置 | ||
智能体视图配置,当智能体需要渲染时(例如:数字人)需要通过该类进行设置 | ||
视觉理解智能体运行配置 | ||
视觉理解智能体开启自定义截帧配置请求 Model | ||
给智能体发送文本消息请求 Model | ||
启动智能体通话的配置 | ||
用于启动通话的 TemplateConfig 参数 | ||
关联的 chat 智能体会话配置参数 | ||
分享智能体配置信息 | ||
通话本地视频配置 | ||
通话智能体启动与运行配置 | ||
语音识别配置 | ||
语音合成配置 | ||
大语言模型配置 | ||
数字人配置 | ||
打断配置 | ||
声纹降噪配置 | ||
轮次检测配置 | ||
VCR检测结果 | ||
VCR配置 | ||
VCR的基础检测配置 | ||
VCR的视频帧检测配置 | ||
实验参数,用于特定逻辑策略的控制 |
数据结构详情
Enum
ARTCAICallAgentType
智能体类型
枚举值 | 值 | 描述 |
VoiceAgent | 0 | 仅支持语音交互,无视觉形象 |
AvatarAgent | 1 | 具备虚拟形象,支持语音和视觉交互 |
VisionAgent | 2 | 主要负责视觉信息的理解与分析 |
VideoAgent | 3 | 视频通话,用户与智能体双向视频通话 |
ARTCAICallAgentState
智能体状态
枚举值 | 值 | 描述 |
Listening | 1 | 聆听中 |
Thinking | 2 | 思考中 |
Speaking | 3 | 讲话中 |
ARTCAICallAudioProfile
音频编码配置
枚举值 | 值 | 描述 |
LowQualityMode | 0x0000 | 音频低音质模式,默认 8000Hz 采样率,单声道,最大编码码率 12kbps |
BasicQualityMode | 0x0001 | 标准音质模式,默认 16000Hz 采样率,单声道,最大编码码率 24kbps |
HighQualityMode | 0x0010 | (默认)高音质模式,默认 48000Hz 采样率,单声道,最大编码码率 64kbps |
StereoHighQualityMode | 0x0011 | 立体声高音质模式,默认 48000Hz 采样率,双声道,最大编码码率 80kbps |
SuperHighQualityMode | 0x0012 | 超高音质模式,默认 48000Hz 采样率,单声道,最大编码码率 96kbps |
StereoSuperHighQualityMode | 0x0013 | 立体声超高音质模式,默认 48000Hz 采样率,双声道,最大编码码率 128kbps |
ARTCAICallAudioScenario
音频场景配置
枚举值 | 值 | 描述 |
DefaultMode | 0x0000 | 一般的音视频通信场景推荐使用 |
MusicMode | 0x0300 | 默认场景,音乐场景,高保真音乐音质,乐器教学等对音乐音质有要求的场景推荐使用 |
ARTCAICallAgentViewMode
智能体视图渲染模式
枚举值 | 值 | 描述 |
Auto | 0 | 自动模式 |
Stretch | 1 | 延伸模式 |
Fill | 2 | 填充模式 |
Crop | 3 | 裁剪模式 |
ARTCAICallAgentViewMirrorMode
智能体视图镜像模式
枚举值 | 值 | 描述 |
OnlyFrontCameraPreviewEnabled | 0 | 只有前置摄像头预览镜像,其余不镜像 |
AllEnabled | 1 | 镜像都开启 |
AllDisabled | 2 | 镜像都关闭 |
ARTCAICallAgentViewRotationMode
智能体视图旋转模式
枚举值 | 值 | 描述 |
Rotation_0 | 0 | 视频视图旋转角度 - 0 |
Rotation_90 | 1 | 视频视图旋转角度 - 90 |
Rotation_180 | 2 | 视频视图旋转角度 - 180 |
Rotation_270 | 3 | 视频视图旋转角度 - 270 |
ARTCAICallNetworkQuality
网络状态
枚举值 | 值 | 描述 |
Excellent | 0 | 网络极好,流程度清晰度质量好 |
Good | 1 | 网络好,流畅度清晰度和极好差不多 |
Poor | 2 | 网络有点差,音视频流畅度清晰度有瑕疵,不影响沟通 |
Bad | 3 | 网络差,视频卡顿严重,音频能正常沟通 |
VeryBad | 4 | 网络极差,基本无法沟通 |
Disconnect | 5 | 网络中断 |
Unknow | 6 | 未知 |
ARTCAICallSpeakingInterruptedReason
智能体当前讲话被打断原因
枚举值 | 值 | 描述 |
unknown | 0 | 未知原因 |
byWords | 1 | 因为识别到特定词 |
byVoice | 2 | 因为语音打断 |
byInterruptSpeaking | 3 | 因为调用了API:interruptSpeaking |
bySpeechBroadCast | 4 | 因为主动语音播报打断 |
byLlmQuery | 5 | 因为主动LLM查询打断 |
ARTCAICallVoiceprintResult
Vad反馈结果
枚举值 | 值 | 描述 |
Off | 0 | 没开启声纹降噪Vad,且关闭AIVad |
Unregister | 1 | 已开启声纹降噪Vad,但还完成声纹注册 |
DetectedSpeaker | 2 | 已开启声纹降噪Vad,识别到主讲人 |
UndetectedSpeaker | 3 | 已开启声纹降噪Vad,没识别到主讲人 |
DetectedSpeakerWithAIVad | 4 | 开启AIVad,识别到主讲人 |
UndetectedSpeakerWithAIVad | 5 | 开启AIVad,但没识别到主讲人 |
Unknown | 100 | 未知 |
ARTCAICallErrorCode
错误码
枚举值 | 值 | 描述 |
None | 0 | 成功 |
InvalidAction | -1 | 操作无效 |
InvalidParames | -2 | 参数错误 |
NetworkError | -3 | 网络错误 |
InternalError | -4 | 内部错误 |
BeginCallFailed | -10000 | 启动通话失败 |
ConnectionFailed | -10001 | 链接出现问题 |
PublishFailed | -10002 | 推流失败 |
SubscribeFailed | -10003 | 拉流失败 |
TokenExpired | -10004 | 通话认证过期 |
KickedByUserReplace | -10005 | 同名登录导致通话无法进行 |
KickedBySystem | -10006 | 被系统踢出导致通话无法进行 |
KickedByChannelTerminated | -10007 | 频道被销毁导致通话无法进行 |
LocalDeviceException | -10008 | 本地设备问题导致无法进行 |
AgentLeaveChannel | -10101 | 智能体离开频道了(智能体结束通话) |
AgentPullFailed | -10102 | 智能体拉流失败了 |
AgentASRFailed | -10103 | 智能体ASR失败 |
AvatarServiceFailed | -10201 | 数字智能体服务启动失败 |
AvatarRoutesExhausted | -10202 | 数字智能体超出并发路数 |
AgentSubscriptionRequired | -10203 | 发起通话,超出每天免费体验的额度 |
AgentNotFound | -10204 | 智能体未能找到(智能体ID不存在) |
ChatTextMessageSendFailed | -10301 | 文本消息发送失败 |
ChatTextMessageReceiveFailed | -10302 | 文本消息接收失败 |
ChatVoiceRecordFailed | -10310 | 语音消息录制失败 |
ChatVoiceMessageSendFailed | -10311 | 语音消息发送失败 |
ChatVoiceMessageReceiveFailed | -10312 | 语音消息接收失败 |
ChatPlayMessageReceiveFailed | -10321 | 播放消息接收失败 |
ChatLogNotFound | -10331 | 聊天记录未能找到 |
ChatAttachmentUploading | -10332 | 附件的还在上传中,需要上传完成后,才能发送消息 |
UnknowError | -40000 | 未知错误 |
ARTCAICallTurnDetectionMode
判断用户说话是否结束模式
枚举值 | 值 | 描述 |
Normal | 0 | 普通模式,不使用AI进行语义判断是否说话结束,使用ASR静默时间判断 |
Semantic | Semantic,用AI根据上下文语义,判断是否说话结束 |
Class
ARTCAICallAgentInfo
智能体运行时信息
属性名 | 类型 | 描述 |
agentId | String | 当前智能体 ID |
agentType | 智能体类型 | |
channelId | String | 智能体所在的 RTC 频道 ID |
uid | String | 智能体进入 RTC 频道的唯一标识 |
instanceId | String | 当前智能体运行的实例 ID |
requestId | String | 当前智能体启动的请求 ID |
region | String? | Agent 所在区域 |
ARTCAICallAudioConfig
通话音频配置
属性名 | 类型 | 描述 |
audioProfile | 音频编码配置,默认是 HighQualityMode | |
audioScenario | 音频场景配置,默认是 ARTCAICallAudioSceneMusicMode |
ARTCAICallViewConfig
智能体视图配置,当智能体需要渲染时(例如:数字人)需要通过该类进行设置
属性名 | 类型 | 描述 |
view | UIView | 渲染视图 |
viewMode | 画面渲染模式 | |
viewMirrorMode | 画面镜像模式 | |
viewRotationMode | 画面旋转模式 |
ARTCAICallVisionConfig
视觉理解智能体运行配置
属性名 | 类型 | 描述 |
preview | UIView? | 预览,为空表示不预览只推流 |
viewMode | 预览画面渲染模式 | |
viewMirrorMode | 预览画面镜像模式 | |
viewRotationMode | 预览画面旋转模式 | |
dimensions | CGSize | 推流分辨率 |
frameRate | Int | 推流帧率 |
bitrate | Int | 推流码率 |
keyFrameInterval | Int | 推流关键帧间隔(毫秒) |
useHighQualityPreview | Bool | 是否使用高清预览,否则 SDK 自动调整 |
cameraCaptureFrameRate | Int | 预览分辨率(默认为 15fps) |
ARTCAICallVisionCustomCaptureRequest
视觉理解智能体开启自定义截帧配置请求 Model
属性名 | 类型 | 描述 |
text | String | 请求多模态大模型时的文本参数 |
enableASR | Bool | 是否将 ASR 结果作为输入传给大模型 |
isSingle | Bool | 是否为单次截帧 |
eachDuration | UInt | 截帧间隔时长(秒) |
num | UInt | 每次截帧的图片数量 |
duration | UInt | 持续截帧的时长(秒),仅在持续截帧时生效 |
userData | String? | JSON 字符串,自定义业务信息 |
ARTCAICallSendTextToAgentRequest
给智能体发送文本消息请求 Model
属性名 | 类型 | 描述 |
text | String | 询问智能体的文本消息,例如:"这是什么?" |
ARTCAICallConfig
启动智能体通话的配置
属性名 | 类型 | 描述 |
agentId | String | 智能体 ID |
agentType | 智能体类型,必须是agentId的类型,否则启动智能体会报错 | |
agentUserId | String? | 智能体的 Uid,为空时由服务分配 |
region | String | 智能体服务所在区域,必须是agentId所在的区域,否则启动智能体会报错 |
userId | String | 当前用户 ID |
userJoinToken | String | 当前用户的入会 Token |
userData | [String: Any]? | 用户自定义信息,最终传给智能体 |
agentConfig | 用于启动通话的agentConfig参数 | |
audioConfig | 本地音频配置 | |
videoConfig | 本地视频配置,VisionAgent/VideoAgent时才能生效 | |
chatSyncConfig | 关联的 chat 智能体配置 | |
templateConfig | 已弃用,请使用 |
ARTCAICallTemplateConfig(弃用)
用于启动通话的 TemplateConfig 参数
该方法在2.5以上版本弃用,最新版请使用 ARTCAICallAgentConfig。
属性名 | 类型 | 描述 |
agentGreeting | String? | 智能体欢迎语,为空表示使用智能体配置值,最大长度100字符 |
userOnlineTimeout | Int32 | 用户未入会,智能体超时关闭任务的时间,小于0则使用服务端默认值 60s |
userOfflineTimeout | Int32 | 用户退会后,智能体超时关闭任务的时间,小于0则使用服务端默认值 5s |
workflowOverrideParams | [String: Any]? | 工作流覆盖参数 |
bailianAppParams | [String: Any]? | 百炼应用中心参数 |
asrMaxSilence | Int32 | 语音断句检测阈值,范围 200ms~1200ms,小于0使用服务端默认值 400ms |
volume | Int32 | 智能体说话的音量,范围 0~400,输出音量 = 工作流中的语音输出音量 * volume / 100,小于0使用服务端默认值 100 |
vadLevel | Int32 | 设置AIVad的灵敏度参数,默认值为3,取值范围:[0,10] |
enableVoiceInterrupt | Bool | 是否开启智能打断 |
agentVoiceId | String? | 智能体讲话音色 ID,为空表示使用智能体配置值 |
enableIntelligentSegment | Bool | 是否开启智能断句合并 |
useVoiceprint | Bool | 当前断句是否使用声纹降噪识别 |
voiceprintId | String? | 声纹 ID,如果不为空表示当前通话开启声纹降噪能力 |
agentMaxIdleTime | Int32 | 智能体闲时的最大等待时间(单位:秒),小于0使用服务端默认值 600s |
llmHistoryLimit | Int32 | LLM/Multimodal LLM 历史对话上下文最大保留轮次,小于0使用服务端默认值 10 |
enablePushToTalk | Bool | 是否开启对讲机模式 |
agentGracefulShutdown | Bool | 是否优雅下线:播报完当前句子再停止 |
agentAvatarId | String? | 数字人模型 ID,为空表示使用智能体配置值 |
asrLanguageId | String? | ASR 语种 ID,为空表示使用智能体配置值,可选:
|
wakeUpQuery | String? | 用户在通话启动前的指令,用于智能体在通话启动后立即响应 |
llmSystemPrompt | String? | LLM 系统提示词,例如:“你是一位友好且乐于助人的助手...” 注意:不支持 LLM 节点为百炼工作流类型 |
asrHotWords | [String]? | ASR热词列表,限制:500个词及以内,每个词不超过10个字符 |
interruptWords | [String]? | 触发对话打断的特定词汇或短语,例如:“打断一下”、“我知道了” |
ARTCAICallChatSyncConfig
关联的 chat 智能体会话配置参数
属性名 | 类型 | 描述 |
sessionId | String | 关联的 chat 智能体会话 ID |
agentId | String | 关联的 chat 智能体 ID(必须是同一账号同一区域) |
receiverId | String | 关联的 chat 智能体会话的用户 ID |
ARTCAICallAgentShareConfig
分享智能体配置信息
属性名 | 类型 | 描述 |
shareId | String? | 智能体分享 ID |
agentType | 智能体工作量类型 | |
expireTime | Date? | 过期时间 |
region | String? | Agent 所在区域 |
templateConfig | String? | 模板配置(JSON 字符串) |
userData | [String: Any]? | 用户自定义信息,该信息最终传给智能体 |
ARTCAICallVideoConfig
通话本地视频配置
属性名 | 类型 | 描述 |
dimensions | CGSize | 推流分辨率 |
frameRate | Int | 推流帧率 |
bitrate | Int | 推流码率 |
keyFrameInterval | Int | 推流关键帧间隔(毫秒) |
useHighQualityPreview | Bool | 是否使用高清预览,否则SDK根据推流分辨率自动调整 |
cameraCaptureFrameRate | Int | 预览分辨率 |
useFrontCameraDefault | Bool | 是否默认启动前置摄像头 |
ARTCAICallAgentConfig
通话智能体启动与运行配置
属性名 | 类型 | 描述 |
agentGreeting | String? | 智能体欢迎语,为空表示使用智能体配置值 |
wakeUpQuery | String? | 用户在通话启动前的指令,用于智能体在通话启动后立即响应 |
agentMaxIdleTime | Int32 | 智能体闲时的最大等待时间(单位:秒),超时智能体自动下线,默认值为600s |
userOnlineTimeout | Int32 | 用户未入会,智能体超时关闭任务的时间,默认值为60s |
userOfflineTimeout | Int32 | 用户退会后,智能体超时关闭任务的时间,默认值为5s |
enablePushToTalk | Bool | 是否开启对讲机模式 |
agentGracefulShutdown | Bool | 是否优雅下线 |
volume | Int32 | 智能体说话的音量,范围为 0~400,默认值为100 |
workflowOverrideParams | [String: Any]? | 工作流覆盖参数 |
enableIntelligentSegment | Bool | 智能断句开关 |
asrConfig | 语音识别配置 | |
ttsConfig | 语音合成配置 | |
llmConfig | 大语言模型配置 | |
avatarConfig | 数字人配置 | |
interruptConfig | 打断配置 | |
voiceprintConfig | 声纹降噪配置 | |
turnDetectionConfig | 轮次检测配置 | |
experimentalConfig | 非产品化定制化配置 | |
vcrConfig | VCR配置 |
ARTCAICallAgentAsrConfig
语音识别配置
属性名 | 类型 | 描述 |
asrLanguageId | String? | ASR语种Id,为空表示使用智能体配置值 |
asrMaxSilence | Int32 | 语音断句检测阈值,静音时长超过该阈值会被认为断句,默认值为400ms,参数范围 200ms~1200ms |
asrHotWords | [String]? | ASR热词列表,限制:500个词及以内,每个词不超过10个字符 |
vadLevel | Int32 | 设置AIVad的灵敏度参数,默认值为3,取值范围:[0,10] |
customParams | String? | 自接入ASR时,传入运行时参数,使用URL参数形式,例如:"mode=fast&sample=16000&format=wav" |
vadDuration | Int32 | 语音活动检测的最短持续时间阈值用于调节打断的灵敏度。默认为0,表示关闭此功能;有效范围为200到2000毫秒,常用范围为[200,500],对应1到4个字。如果设置的值小于0,则该值将不会发送至服务端(服务端默认关闭此功能)。 |
ARTCAICallAgentTtsConfig
语音合成配置
属性名 | 类型 | 描述 |
agentVoiceId | String? | 智能体讲话音色Id,为空表示使用智能体配置值 |
pronunciationRules | [[String: Any]]? | 发音规则数组,最多支持 20 条规则。若为 nil 或空数组,则不使用任何规则。示例如下:
|
speechRate | Double | TTS播报语速,支持所有TTS类型,取值范围为[0.5, 2.0],默认值为1.0,小于0则不会发给服务端(使用控制台配置值)。 |
languageId | String? | TTS播报语种代码,当TTS类型为MiniMax有效。 |
emotion | String? | TTS播报情绪类型,当TTS类型为MiniMax有效。 |
modelId | String? | TTS模型Id,当前仅支持minimax,可选值:speech-01-turbo / speech-02-turbo。 |
ARTCAICallAgentLlmConfig
大语言模型配置
属性名 | 类型 | 描述 |
llmHistoryLimit | Int32 | 历史对话上下文最大保留轮次,默认值为10 |
llmSystemPrompt | String? | LLM的系统提示词 |
bailianAppParams | [String: Any]? | 百炼应用中心参数 |
llmCompleteReply | boolean | 是否发送完整的LLM结果。 说明 开启后,LLM生成结果之后,会通过onLLMReplyCompleted事件回调完整llm结果。 |
openAIExtraQuery | String? | 额外的OpenAI协议LLM的查询参数。 说明 参数必须使用key=value格式,多个参数用&连接,所有值必须为字符串类型。 |
ARTCAICallAgentAvatarConfig
数字人配置
属性名 | 类型 | 描述 |
agentAvatarId | String? | 数字人模型Id,为空表示使用智能体配置值 |
ARTCAICallAgentInterruptConfig
打断配置
属性名 | 类型 | 描述 |
enableVoiceInterrupt | Bool | 是否开启智能打断 |
interruptWords | [String]? | 触发对话打断的特定词汇或短语 |
ARTCAICallAgentVoiceprintConfig
声纹降噪配置
属性名 | 类型 | 描述 |
useVoiceprint | Bool | 当前断句是否使用声纹降噪识别 |
voiceprintId | String? | 声纹Id,如果不为空表示当前通话开启声纹降噪能力 |
ARTCAICallAgentTurnDetectionConfig
轮次检测配置
属性名 | 类型 | 描述 |
turnEndWords | [String]? | 断句特定词,例如:“完毕”、“我讲完了” |
mode | 判断用户说话是否结束模式,默认是Semantic,使用AI进行语义判断是否说话结束 | |
semanticWaitDuration | Int32 | 语义断句自定义等待时间,单位:毫秒,范围:[0, 10000];如果小于0则不会发给服务端(使用服务端默认值-1,AI自动判断合适的等待时间) 说明 如果是ARTCAICallTurnDetectionMode.Normal模式,semanticWaitDuration字段无效。 |
ARTCAICallAgentVcrResult
VCR检测结果
属性名 | 类型 | 描述 |
resultData | [String]? | 智能体返回的所有的VCR检测结果 |
stillFrameMotionResult | FrameMotionResult? | VCR的静音帧检测结果 |
invalidFrameMotionResult | FrameMotionResult? | VCR的无效帧检测结果 |
peopleCountResult | PeopleCountResult? | VCR的实时画面人数检测结果 |
equipmentResult | EquipmentResult? | VCR的电子设备检测结果 |
headMotionResult | HeadMotionResult? | VCR的头部动作检测结果 |
ARTCAICallAgentVcrConfig
VCR配置
属性名 | 类型 | 描述 |
data | [String]? | 当用户传json对象进来时,缓存起来,后面生成json字符串时,使用该对象,这样可以做到自定义扩展 |
stillFrameMotion | VCR的静音帧检测配置 | |
invalidFrameMotion | VCR的无效帧检测配置 | |
peopleCount | VCR的实时画面人数检测配置 | |
equipment | VCR的电子设备检测配置 | |
headMotion | VCR的头部动作检测配置 |
ARTCAICallAgentVcrBaseConfig
VCR的基础检测配置
属性名 | 类型 | 描述 |
enable | Boolean | 是否启用,默认开启 |
ARTCAICallAgentVcrFrameMotionConfig
VCR的视频帧检测配置
属性名 | 类型 | 描述 |
callbackDelay | Int32 | 多少毫秒后触发回调,默认3000ms |
ARTCAICallExperimentalConfig
实验参数,用于特定逻辑策略的控制
属性名 | 类型 | 描述 |
rtcSdkParams | [String: Any]? | rtcsdk参数 |
commonParams | [String: Any]? | 通用参数 |