通過閱讀本文,您可以瞭解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 智能體會話的使用者識別碼 |
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]? | 通用參數 |