数据结构

通过阅读本文,您可以了解iOS SDK涉及的数据类型。

数据结构概览

说明

旧版本SDK中存在弃用参数、方法,建议您将SDK升级到最新版本,请参见iOS使用指南

结构类型

数据类型

描述

Enum

ARTCAICallAgentType

智能体类型

ARTCAICallAgentState

智能体状态

ARTCAICallAudioProfile

音频编码配置

ARTCAICallAudioScenario

音频场景配置

ARTCAICallAgentViewMode

智能体视图渲染模式

ARTCAICallAgentViewMirrorMode

智能体视图镜像模式

ARTCAICallAgentViewRotationMode

智能体视图旋转模式

ARTCAICallNetworkQuality

网络状态

ARTCAICallSpeakingInterruptedReason

智能体当前讲话被打断原因

ARTCAICallVoiceprintResult

Vad反馈结果

ARTCAICallErrorCode

错误码

ARTCAICallTurnDetectionMode

判断用户说话是否结束模式

Class

ARTCAICallAgentInfo

智能体运行时信息

ARTCAICallAudioConfig

通话音频配置

ARTCAICallViewConfig

智能体视图配置,当智能体需要渲染时(例如:数字人)需要通过该类进行设置

ARTCAICallVisionConfig

视觉理解智能体运行配置

ARTCAICallVisionCustomCaptureRequest

视觉理解智能体开启自定义截帧配置请求 Model

ARTCAICallSendTextToAgentRequest

给智能体发送文本消息请求 Model

ARTCAICallConfig

启动智能体通话的配置

ARTCAICallTemplateConfig(弃用)

用于启动通话的 TemplateConfig 参数

ARTCAICallChatSyncConfig

关联的 chat 智能体会话配置参数

ARTCAICallAgentShareConfig

分享智能体配置信息

ARTCAICallVideoConfig

通话本地视频配置

ARTCAICallAgentConfig

通话智能体启动与运行配置

ARTCAICallAgentAsrConfig

语音识别配置

ARTCAICallAgentTtsConfig

语音合成配置

ARTCAICallAgentLlmConfig

大语言模型配置

ARTCAICallAgentAvatarConfig

数字人配置

ARTCAICallAgentInterruptConfig

打断配置

ARTCAICallAgentVoiceprintConfig

声纹降噪配置

ARTCAICallAgentTurnDetectionConfig

轮次检测配置

ARTCAICallAgentVcrResult

VCR检测结果

ARTCAICallAgentVcrConfig

VCR配置

ARTCAICallAgentVcrBaseConfig

VCR的基础检测配置

ARTCAICallAgentVcrFrameMotionConfig

VCR的视频帧检测配置

ARTCAICallExperimentalConfig

实验参数,用于特定逻辑策略的控制

数据结构详情

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

ARTCAICallAgentType

智能体类型

channelId

String

智能体所在的 RTC 频道 ID

uid

String

智能体进入 RTC 频道的唯一标识

instanceId

String

当前智能体运行的实例 ID

requestId

String

当前智能体启动的请求 ID

region

String?

Agent 所在区域

ARTCAICallAudioConfig

通话音频配置

属性名

类型

描述

audioProfile

ARTCAICallAudioProfile

音频编码配置,默认是 HighQualityMode

audioScenario

ARTCAICallAudioScenario

音频场景配置,默认是 ARTCAICallAudioSceneMusicMode

ARTCAICallViewConfig

智能体视图配置,当智能体需要渲染时(例如:数字人)需要通过该类进行设置

属性名

类型

描述

view

UIView

渲染视图

viewMode

ARTCAICallAgentViewMode

画面渲染模式

viewMirrorMode

ARTCAICallAgentViewMirrorMode

画面镜像模式

viewRotationMode

ARTCAICallAgentViewRotationMode

画面旋转模式

ARTCAICallVisionConfig

视觉理解智能体运行配置

属性名

类型

描述

preview

UIView?

预览,为空表示不预览只推流

viewMode

ARTCAICallAgentViewMode

预览画面渲染模式

viewMirrorMode

ARTCAICallAgentViewMirrorMode

预览画面镜像模式

viewRotationMode

ARTCAICallAgentViewRotationMode

预览画面旋转模式

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

ARTCAICallAgentType

智能体类型,必须是agentId的类型,否则启动智能体会报错

agentUserId

String?

智能体的 Uid,为空时由服务分配

region

String

智能体服务所在区域,必须是agentId所在的区域,否则启动智能体会报错

userId

String

当前用户 ID

userJoinToken

String

当前用户的入会 Token

userData

[String: Any]?

用户自定义信息,最终传给智能体

agentConfig

ARTCAICallAgentConfig?

用于启动通话的agentConfig参数

audioConfig

ARTCAICallAudioConfig?

本地音频配置

videoConfig

ARTCAICallVideoConfig?

本地视频配置,VisionAgent/VideoAgent时才能生效

chatSyncConfig

ARTCAICallChatSyncConfig?

关联的 chat 智能体配置

templateConfig

ARTCAICallTemplateConfig(弃用)?

已弃用,请使用 agentConfig

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,为空表示使用智能体配置值,可选:

  • zh_mandarin 中文

  • en 英文

  • zh_en 中英混

  • es 西班牙语

  • jp 日语

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

ARTCAICallAgentType

智能体工作量类型

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

ARTCAICallAgentAsrConfig

语音识别配置

ttsConfig

ARTCAICallAgentTtsConfig

语音合成配置

llmConfig

ARTCAICallAgentLlmConfig

大语言模型配置

avatarConfig

ARTCAICallAgentAvatarConfig

数字人配置

interruptConfig

ARTCAICallAgentInterruptConfig

打断配置

voiceprintConfig

ARTCAICallAgentVoiceprintConfig

声纹降噪配置

turnDetectionConfig

ARTCAICallAgentTurnDetectionConfig

轮次检测配置

experimentalConfig

ARTCAICallExperimentalConfig

非产品化定制化配置

vcrConfig

ARTCAICallAgentVcrConfig

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,表示关闭此功能;有效范围为2002000毫秒,常用范围为[200,500],对应14个字。如果设置的值小于0,则该值将不会发送至服务端(服务端默认关闭此功能)。

ARTCAICallAgentTtsConfig

语音合成配置

属性名

类型

描述

agentVoiceId

String?

智能体讲话音色Id,为空表示使用智能体配置值

pronunciationRules

[[String: Any]]?

发音规则数组,最多支持 20 条规则。若为 nil 或空数组,则不使用任何规则。示例如下:

 [
  {
      "Word": "重叠",                       // 目标词
      "Pronunciation": "宠叠",              // 替换发音
      "Type": "replacement"                // 多音字规则
  },
  {
      "Word": "行动",
      "Pronunciation": "航动",
      "Type": "replacement"
  }
]

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

ARTCAICallTurnDetectionMode

判断用户说话是否结束模式,默认是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

ARTCAICallAgentVcrFrameMotionConfig?

VCR的静音帧检测配置

invalidFrameMotion

ARTCAICallAgentVcrFrameMotionConfig?

VCR的无效帧检测配置

peopleCount

ARTCAICallAgentVcrBaseConfig?

VCR的实时画面人数检测配置

equipment

ARTCAICallAgentVcrBaseConfig?

VCR的电子设备检测配置

headMotion

ARTCAICallAgentVcrBaseConfig?

VCR的头部动作检测配置

ARTCAICallAgentVcrBaseConfig

VCR的基础检测配置

属性名

类型

描述

enable

Boolean

是否启用,默认开启

ARTCAICallAgentVcrFrameMotionConfig

VCR的视频帧检测配置

属性名

类型

描述

callbackDelay

Int32

多少毫秒后触发回调,默认3000ms

ARTCAICallExperimentalConfig

实验参数,用于特定逻辑策略的控制

属性名

类型

描述

rtcSdkParams

[String: Any]?

rtcsdk参数

commonParams

[String: Any]?

通用参数