通过阅读本文,您可以了解Android SDK涉及的数据类型。
数据结构概览
旧版本SDK中存在弃用参数、方法,建议您将SDK升级到最新版本,请参见Android使用指南。
结构类型 | 数据类型 | 描述 |
Enum | AI Agent类型 | |
机器人当前的状态 | ||
当前AI通话出现了错误 | ||
ASR反馈状态码 | ||
智能体语音被打断原因 | ||
音频编码配置 | ||
音频场景配置 | ||
视频渲染模式 | ||
视频旋转角度 | ||
视频渲染镜像模式 | ||
判断用户说话是否结束模式 | ||
Class | 通话配置对象 | |
视频配置参数 | ||
音频配置参数 | ||
通话可配置的参数项 | ||
同步消息对话智能体聊天记录配置 | ||
智能体运行时信息 | ||
发送文本到智能体的请求对象 | ||
视觉大模型自定义截帧请求对象 | ||
视频渲染配置对象 | ||
通话可配置的参数项 | ||
语音识别配置 | ||
语音合成配置 | ||
大语言模型配置 | ||
数字人配置 | ||
打断配置 | ||
声纹降噪配置 | ||
轮次检测配置 | ||
VCR检测结果 | ||
VCR的视频帧检测结果 | ||
VCR的人数检测结果 | ||
VCR的电子设备检测结果 | ||
VCR的头部动作检测结果 | ||
VCR配置 | ||
VCR的基础检测配置 | ||
VCR的视频帧检测配置 | ||
实验参数,用于特定逻辑策略的控制 |
数据结构详情
Enum
ARTCAICallAgentType
AI Agent类型
枚举名 | 描述 |
VoiceAgent | 纯语音通话 |
AvatarAgent | 数字人通话 |
VisionAgent | 视觉理解通话 |
VideoAgent | 视频通话 |
ChatBot | 消息对话 |
ARTCAICallRobotState
机器人当前的状态
枚举名 | 描述 |
Listening | 聆听中 |
Thinking | 思考中 |
Speaking | 讲话中 |
AICallErrorCode
当前AI通话出现了错误
枚举名 | 描述 |
None | 无 |
InvalidAction | 无效的接口调用 |
InvalidParams | 接口传入的参数非法 |
StartFailed | 启动通话失败 |
AgentSubscriptionRequired | 发起通话失败,超出每天免费体验的额度 |
AgentNotFund | 智能体没找到 |
TokenExpired | 通话认证Token过期 |
ConnectionFailed | 链接失败,通话中断 |
KickedByUserReplace | 相同UserId的不同设备加入同一个通话登录导致通话无法进行 |
KickedBySystem | 被系统踢出导致通话无法进行 |
LocalDeviceException | 本地设备问题导致无法进行 |
AgentLeaveChannel | 智能体离开频道了,通话结束 |
AgentConcurrentLimit | 数字人-智能体到达并发限制 |
AgentAudioSubscribeFailed | 订阅智能体音频失败 |
AiAgentAsrUnavailable | 第三方ASR服务启动失败 |
AvatarAgentUnavailable | 数字人服务不可用 |
ChatLogNotFound | 聊天记录未能找到 |
InternalError | 内部错误 |
VoicePrintStatusCode
ASR反馈状态码
枚举名 | 描述 |
Disable | 没开启声纹降噪Vad,且关闭AIVad |
EnableWithoutRegister | 已开启声纹降噪Vad,但还完成声纹注册 |
SpeakerRecognized | 已开启声纹降噪Vad,识别到主讲人 |
SpeakerNotRecognized | 已开启声纹降噪Vad,没识别到主讲人 |
DetectedSpeakerWithAIVad | 开启AIVad,识别到主讲人 |
UndetectedSpeakerWithAIVad | 开启AIVad,没识别到主讲人 |
Unknown | 未知状态 |
ARTCAICallSpeakingInterruptedReason
智能体语音被打断原因
枚举名 | 描述 |
UnKnown | 未知原因 |
ByWorks | 因为识别到了特定打断词 |
ByVoice | 因为识别到语音被打断 |
ByInterruptSpeaking | 因为调用了API:interruptSpeaking()接口被打断 |
BySpeechBroadCast | 因为主动语音播报打断 |
ByLlmQuery | 因为主动LLM查询打断 |
ARTCAICallAudioProfile
音频编码配置
枚举名 | 描述 |
ARTCAICallAudioLowQualityMode | 音频低音质模式,默认8000Hz采样率,单声道,最大编码码率12kbps |
ARTCAICallAudioBasicQualityMode | 标准音质模式,默认16000Hz采样率,单声道,最大编码码率24kbps |
ARTCAICallAudioHighQualityMode | (默认)高音质模式,默认48000Hz采样率,单声道,最大编码码率64kbps |
ARTCAICallAudioStereoHighQualityMode | 立体声高音质模式,默认48000Hz采样率,双声道,最大编码码率80kbps |
ARTCAICallAudioSuperHighQualityMode | 超高音质模式,默认48000Hz采样率,单声道,最大编码码率96kbps |
ARTCAICallAudioStereoSuperHighQualityMode | 立体声超高音质模式,默认48000Hz采样率,双声道,最大编码码率128kbps |
ARTCAICallAudioScenario
音频场景配置
枚举名 | 描述 |
ARTCAICallAudioSceneDefaultMode | 一般音视频通信场景推荐使用 |
ARTCAICallAudioSceneMusicMode | 音频场景配置,高保真音乐音质,乐器教学等对音乐音质有要求的场景推荐使用 |
ARTCAICallVideoRenderMode
视频渲染模式
枚举名 | 描述 |
ARTCAICallVideoRenderModeAuto | 自动模式 |
ARTCAICallVideoRenderModeStretch | 拉伸平铺模式 ,如果外部输入的视频宽高比和推流设置的宽高比不一致时,将输入视频拉伸到推流设置的比例,画面会变形 |
ARTCAICallVideoRenderModeFill | 裁剪模式,如果外部输入的视频宽高比和推流设置的宽高比不一致时,将输入视频宽或者高进行裁剪,画面内容会丢失 |
ARTCAICallVideoRenderModeNoChange | 不改变 |
ARTCAICallVideoRotationMode
视频旋转角度
枚举名 | 描述 |
ARTCAICallVideoRotationMode_0 | 0度 |
ARTCAICallVideoRotationMode_90 | 90度 |
ARTCAICallVideoRotationMode_180 | 180度 |
ARTCAICallVideoRotationMode_270 | 270度 |
ARTCAICallVideoRenderMirrorMode
视频渲染镜像模式
枚举名 | 描述 |
ARTCAICallVideoRenderMirrorModeOnlyFront | 只有前置摄像头预览镜像,其他不镜像 |
ARTCAICallVideoRenderMirrorModeAllEnabled | 全部镜像 |
ARTCAICallVideoRenderMirrorModeAllDisable | 全部不镜像 |
ARTCAICallTurnDetectionMode
判断用户说话是否结束模式
枚举名 | 描述 |
ARTCAICallTurnDetectionNormalMode | 普通模式,不使用AI进行语义判断是否说话结束,使用ASR静默时间判断。 |
ARTCAICallTurnDetectionSemanticMode | Semantic,用AI根据上下文语义,判断是否说话结束 |
Class
ARTCAICallConfig
通话配置对象
参数 | 类型 | 含义 |
agentId | String | 智能体Id |
agentType | 智能体类型,必须是agentId的类型,否则启动智能体会报错 | |
agentUserId | String | 智能体的Uid,为空时由智能体服务分配uid |
region | String | 智能体服务所在的区域,必须是agentId所在的区域,否则启动智能体会报错 |
userData | String | 用户自定义信息,该信息最终传给智能体 |
enableAudioDelayInfo | boolean | 是否开启对话延迟统计信息,默认开启 |
agentConfig | 用于启动通话的agentConfig参数 | |
audioConfig | 本地音频配置 | |
videoConfig | 本地视频配置,VisionAgent/VideoAgent时才能生效 | |
chatSyncConfig | 关联的chat智能体配置,如果设置了,那么在通话过程中会把通话记录同步到chat智能体上 | |
mAiCallVideoConfig | 视频相关配置(2.5以上版本起弃用) | |
mAliCallAudioConfig | 音频相关配置(2.5以上版本起弃用) | |
mAiCallAgentTemplateConfig | 创建AI音视频通话可配置的参数项(2.5以上版本起弃用) | |
mAiCallChatSyncConfig | 聊天同步配置,用于将通话类智能体和消息对话智能体聊天内容整合到一个会话中(2.5以上版本起弃用) |
ARTCAICallVideoConfig
视频配置参数
参数 | 类型 | 含义 |
useHighQualityPreview | boolean | 是否使用本地高清预览 |
useFrontCameraDefault | boolean | 是否默认启动前置摄像头 |
cameraCaptureFrameRate | int | 摄像头采集帧率 |
useSurfaceView | boolean | 是否使用SurfaceView渲染,如果设置false,则使用TextureView渲染 |
videoEncoderWidth | int | 视频编码宽度 |
videoEncoderHeight | int | 视频编码高度 |
videoEncoderFrameRate | int | 视频编码帧率 |
videoEncoderBitRate | int | 视频编码码率 |
videoEncoderKeyFrameInterval | int | 关键帧间隔,单位毫秒 |
isCameraMute | boolean | 是否静音本地视频,默认不静音 |
ARTCAICallAudioConfig
音频配置参数
参数 | 类型 | 含义 |
audioProfile | 音频编码配置,默认是ARTCAICallAudioHighQualityMode,可以通过设置该参数指定音频采样率和声道数 | |
audioScenario | 音频场景配置,默认是ARTCAICallAudioSceneMusicMode,如果想要指定蓝牙采集,可以使用ARTCAICallAudioSceneDefaultMode | |
enableSpeaker | boolean | 扬声器播放还是听筒播放,默认开启扬声器播放,设置成false切换成听筒播放 |
isMicrophoneOn | boolean | 是否开启麦克风,默认开启 |
ARTCAICallAgentTemplateConfig(弃用)
通话可配置的参数项
该类型在2.5以上版本已弃用,最新版请使用ARTCAICallAgentConfig。
参数 | 类型 | 含义 |
aiAgentId | String | 智能体ID,通过AICallKit的call接口发起智能体呼叫,设置该字段。 说明 智能体ID必须要设置,不可为空。 |
aiAgentRegion | String | 智能体服务所在的区域,默认值:cn-shanghai。 说明 您需要根据智能体指定不同的区域。 |
aiAgentUserId | String | 智能体对应的用户Id,如果不设置,AI Server会为智能体生成随机的userId |
userExtendData | String | 业务扩展信息,需要使用JSON字符串,该信息最终传给LLM。 |
aiAgentGreeting | String | 智能体欢迎语,AI智能体在用户入会后主动说的一句话 |
aiAgentUserOnlineTimeout | int | 用户未入会,智能体超时关闭任务的时间。单位:秒。默认值:60 秒 |
aiAgentUserOfflineTimeout | int | 用户退会后,智能体超时关闭任务的时间。单位:秒。默认值:5 秒 |
aiAgentWorkflowOverrideParams | String | 工作流覆盖参数,默认无 |
aiAgentBailianAppParams | String | 百炼应用中心参数。详情,请参见将用户信息透传给百炼。 |
aiAgentAsrMaxSilence | int | 语音识别最大静音时长,单位:毫秒,取值范围:200ms~1200ms,默认值:400ms。 |
aiAgentVolume | int | 智能体说话的音量,取值范围:-1~100,默认值:-1,若不填:默认使用阿里云推荐的自适应音量模式。 |
enableVoiceInterrupt | boolean | 是否支持语音打断,默认 true。 |
enableIntelligentSegment | boolean | 智能断句开关,默认 true。 |
enableVoicePrint | boolean | 是否使用声纹识别,默认 false,如果需要开启声纹识别,需要打开enableVoicePrint开关并设置voiceprintId。 |
voiceprintId | String | 声纹Id,如果enableVoicePrint设置成true且voiceprintId不为空,表示当前通话开启声纹降噪能力,为空表示不启用声纹降噪能力。 |
aiAgentVoiceId | String | 智能体讲话音色Id。 |
aiAgentMaxIdleTime | int | 智能体闲时的最大等待时间(单位:秒),超时智能体自动下线,设置为-1表示闲时不退出,默认600s。 |
llmHistoryLimit | int | llm/mllm 历史对话上下文最大保留轮次,小于0则使用服务端默认值 10 次。 |
aiAgentGracefulShutdown | boolean | 是否优雅下线,默认 false。 说明 优雅下线是指当智能体被停止(如通话挂断)时,会完整播报完当前语句后再停止,最长持续10秒。 |
enablePushToTalk | boolean | 是否开启对讲机模式,默认 false |
aiAgentAvatarId | String | 数字人模型Id,当智能体类型是AvatarAgent时,可以指定数字人模型Id。 |
asrLanguageId | String | asr语种Id,为空表示使用智能体默认配置值,可选:
|
wakeUpQuery | String | 唤醒词,用户在通话启动前的指令,用于智能体在通话启动后立即响应,例如:“今天天气怎么样?”。 |
llmSystemPrompt | String | LLM的系统提示词,例如:“你是一位友好且乐于助人的助手,专注于为用户提供准确的信息和建议。” 说明 不支持LLM节点为百炼工作流类型。 |
interruptWords | List<String> | 对话打断的触发词,例如:“打断一下”、“我知道了”。 |
aiAgentLlmHistoryLimit | int | llm/mllm 历史对话上下文最大保留轮次,默认 10 次。 |
aiAgentVadLevel | int | 设置AIVad的灵敏度参数,通过该参数的设定可以抗人声干扰。取值范文[0-10],客户端默认开启AIVad且值为3。 |
ARTCAICallChatSyncConfig
同步消息对话智能体聊天记录配置
参数 | 类型 | 含义 |
sessionId | String | 一个用户和智能体对话的唯一标识,默认为空。 |
chatBotAgentId | String | 关联到消息对话的智能体ID。 |
receiverId | String | 消息对话智能体接收者ID,用户UserId。 |
ARTCAICallAgentInfo
智能体运行时信息
参数 | 类型 | 含义 |
agentId | String | 当前智能体ID。 |
agentType | 智能体类型。 | |
agentUserId | String | 智能体在RTC房间中的用户ID。 |
channelId | String | 智能体所在的RTC频道ID。 |
instanceId | String | 当前智能体运行的实例ID。 |
requestId | String | 当前智能体运行的请求ID。 |
ARTCAICallSendTextToAgentRequest
发送文本到智能体的请求对象
参数 | 类型 | 含义 |
text | String | 询问智能体的文本消息,例如:这是什么? |
ARTCAICallVisionCustomCaptureRequest
视觉大模型自定义截帧请求对象
参数 | 类型 | 含义 |
text | String | 请求多模态大模型时的文本参数。 |
enableASR | boolean | 是否把人声的asr结果作为大模型的输入,如果为true,则使用人声asr结果与截帧一起送给大模型;反之,则使用text字段与截帧一起送给大模型。 说明 仅在持续截帧时生效 |
isSingle | boolean | 为true时表示单次截帧,截帧后立即退出自定义截帧状态; 为false时表示持续截帧,达到duration后会自动退出自定义截帧状态。 |
eachDuration | int | 截帧间隔时长(秒)。 |
num | int | 每次截帧的图片数量。 |
duration | int | 持续截帧的时长(秒),如果isSingle=true,则忽略,否则达到该设定时长时会结束自定义截帧状态。 |
userData | String | json字符串,自定义业务信息,跟随text和图片帧一同传给大模型,用于企业做业务处理。 |
ARTCAICallVideoCanvas
视频渲染配置对象
参数 | 类型 | 含义 |
renderMode | 渲染模式,默认值为 ARTCAICallVideoRenderModeAuto。 | |
mirrorMode | 镜像模式,默认值为ARTCAICallVideoRenderMirrorModeOnlyFront。 | |
rotationMode | 旋转角度,默认值为 ARTCAICallVideoRotationMode_0。 | |
zOrderOnTop | boolean | 用于设置SurfaceView是否应该在所有其它窗口之上的显示层,默认值为true |
zOrderMediaOverlay | boolean | 用于设置SurfaceView是否应该在MediaPlayer、Camera和类似窗口之上的显示层,默认值为true |
ARTCAICallAgentConfig
通话可配置的参数项
参数 | 类型 | 含义 |
agentGreeting | String | 智能体欢迎语,为空表示使用智能体配置值,最大长度100字符 |
wakeUpQuery | String | 用户在通话启动前的指令,用于智能体在通话启动后立即响应 |
agentMaxIdleTime | int | 智能体闲时的最大等待时间(单位:秒),超时智能体自动下线,默认值为600s |
userOnlineTimeout | int | 用户未入会,智能体超时关闭任务的时间,默认值为60s |
userOfflineTimeout | int | 用户退会后,智能体超时关闭任务的时间,默认值为5s |
enablePushToTalk | boolean | 是否开启对讲机模式 |
agentGracefulShutdown | boolean | 是否优雅下线:播报完当前句子再停止 |
volume | int | 智能体说话的音量,范围为 0~400,默认值为100 |
workflowOverrideParams | String | 工作流覆盖参数 |
enableIntelligentSegment | boolean | 智能断句开关 |
asrConfig | 语音识别配置 | |
ttsConfig | 语音合成配置 | |
llmConfig | 大语言模型配置 | |
avatarConfig | 数字人配置 | |
interruptConfig | 打断配置 | |
voiceprintConfig | 声纹降噪配置 | |
turnDetectionConfig | 轮次检测配置 | |
experimentalConfig | 非产品化定制化配置 | |
ARTCAICallAgentVcrConfig | VCR配置 |
ARTCAICallAgentAsrConfig
语音识别配置
参数 | 类型 | 含义 |
asrLanguageId | String | asr语种Id,为空表示使用智能体配置值 |
asrMaxSilence | int | 语音断句检测阈值,静音时长超过该阈值会被认为断句,默认值为400ms,参数范围 200ms~1200ms |
asrHotWords | List<String> | ASR热词列表,限制:500个词及以内,每个词不超过10个字符 |
vadLevel | int | 设置AIVad的灵敏度参数,默认值为3,取值范围:[0,10] |
customParams | String | 自接入ASR时,传入运行时参数,使用URL参数形式,例如:"mode=fast&sample=16000&format=wav" |
vadDuration | int | 语音活动检测的最短持续时间阈值,用于控制打断的灵敏度。默认为0表示关闭此功能;有效范围:200到2000毫秒,常用[200,500] 对应1-4个字。 |
ARTCAICallAgentTtsConfig
语音合成配置
参数 | 类型 | 含义 |
agentVoiceId | String | 智能体讲话音色Id,为空表示使用智能体配置值 |
pronunciationRules | List | 发音规则数组,最多支持 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 | int | 历史对话上下文最大保留轮次,默认值为10 |
llmSystemPrompt | String | llm的系统提示词 |
bailianAppParams | String | 百炼应用中心参数 |
llmCompleteReply | boolean | 是否发送完整的LLM结果。 说明 开启后,LLM生成结果之后,会通过onLLMReplyCompleted事件回调完整llm结果。 |
openAIExtraQuery | String | 额外的 OpenAI 协议 LLM 的查询参数。 说明 参数必须使用 key=value 格式,多个参数用 & 连接,所有值必须为字符串类型。 |
ARTCAICallAgentAvatarConfig
数字人配置
参数 | 类型 | 含义 |
agentAvatarId | String | 数字人模型Id,为空表示使用智能体配置值 |
ARTCAICallAgentInterruptConfig
打断配置
参数 | 类型 | 含义 |
enableVoiceInterrupt | boolean | 是否开启智能打断 |
interruptWords | List<String> | 触发对话打断的特定词汇或短语 |
ARTCAICallAgentVoiceprintConfig
声纹降噪配置
参数 | 类型 | 含义 |
useVoiceprint | boolean | 当前断句是否使用声纹降噪识别 |
voiceprintId | String | 声纹Id,如果不为空表示当前通话开启声纹降噪能力 |
ARTCAICallAgentTurnDetectionConfig
轮次检测配置
参数 | 类型 | 含义 |
turnEndWords | List<String> | 断句特定词,例如:“完毕”、“我讲完了” |
mode | 判断用户说话是否结束模式,默认为语义断句模式,用AI根据上下文语义,判断是否说话结束。默认值为ARTCAICallTurnDetectionSemanticMode。 | |
semanticWaitDuration | int | 语义断句自定义等待时间,单位:毫秒,范围:[0, 10000]; 默认 -1,AI自动判断合适的等待时间 说明 如果是ARTCAICallTurnDetectionNormalMode模式,semanticWaitDuration字段无效 |
ARTCAICallAgentVcrResult
VCR 检测结果
参数 | 类型 | 含义 |
resultData | Object | 智能体返回的所有的VCR检测结果 |
stillFrameMotionResult | VCR的静止帧检测结果 | |
invalidFrameMotionResult | VCR的无效帧检测结果 | |
peopleCountResult | VCR的实时画面人数检测结果 | |
equipmentResult | VCR的电子设备检测结果 | |
headMotionResult | VCR的头部动作检测结果 |
FrameMotionResult
VCR的视频帧检测结果
参数 | 类型 | 含义 |
duration | int | 多久前发送的(单位:毫秒) |
PeopleCountResult
VCR的人数检测结果
参数 | 类型 | 含义 |
count | int | VCR识别到的人数 |
EquipmentResult
VCR的电子设备检测结果
参数 | 类型 | 含义 |
mobilePhoneCount | int | 设备数总数 |
watchCount | int | 手表数量 |
headPhoneCount | int | 耳机数量 |
HeadMotionResult
VCR的头部动作检测结果
参数 | 类型 | 含义 |
nodDetected | boolean | 点头 |
shakeDetected | boolean | 摇头 |
ARTCAICallAgentVcrConfig
VCR配置
参数 | 类型 | 含义 |
data | JSONObject | 当用户传json对象进来时,缓存起来,后面生成json字符串时,使用该对象,这样可以做到自定义扩展 |
stillFrameMotion | VCR的静音帧检测配置 | |
invalidFrameMotion | VCR的无效帧检测配置 | |
peopleCount | VCR的实时画面人数检测配置 | |
equipment | VCR的电子设备检测配置 | |
headMotion | VCR的头部运动检测配置 |
ARTCAICallAgentVcrBaseConfig
VCR的基础检测配置
参数 | 类型 | 含义 |
enable | boolean | 是否启用 |
ARTCAICallAgentVcrFrameMotionConfig
VCR的视频帧检测配置
参数 | 类型 | 含义 |
callbackDelay | int | 多少毫秒后触发回调 |
ARTCAICallExperimentalConfig
实验参数,用于特定逻辑策略的控制
参数 | 类型 | 含义 |
rtcSdkParams | JSONObject | rtcsdk参数 |
commonParams | JSONObject | 通用参数 |
IARTCAICallService详情
generateAIAgentShareCall
请求启动分享的智能体通话
/**
* 请求启动分享的智能体通话
* @param userId 当前登录的用户id
* @param aiAgentId 智能体id
* @param aiAgentType 智能体类型
* @param artcaiCallConfig 智能体配置
* @param callback 请求回调
*/
void generateAIAgentShareCall(String userId, String aiAgentId, ARTCAICallEngine.ARTCAICallAgentType aiAgentType, ARTCAICallEngine.ARTCAICallConfig artcaiCallConfig, IARTCAICallServiceCallback callback);
ARTCAIAgentUtil详情
parseAiAgentShareInfo
解析分享智能体的信息
/**
* 解析分享智能体的信息
* @param shareInfoText
* @return 分享智能体的结构化配置
*/
public static ARTCAIAgentShareInfo parseAiAgentShareInfo(String shareInfoText);
parseAiAgentInfo
解析智能体启动的响应信息
/**
* 解析智能体启动的响应信息
* @param jsonObject 智能体启动的响应信息
* @return 智能体启动响应的结构化信息
*/
public static ARTCAIAgentInfo parseAiAgentInfo(JSONObject jsonObject);