簡單4步,快速搭建數字人實時視頻通話功能
?
引言:
在數字人應用日益廣泛的當下,實現與數字人的實時視頻通話已成為許多開發者的需求。即構實時互動AI AGENT憑借其強大的功能和便捷的集成方式,讓這一需求的實現變得簡單高效。只需4步,就能快速搭建起數字人視頻通話系統,下面就為大家詳細介紹。
第一步:注冊賬號,開啟數字人視頻通話之旅
首先需要在即構ZEGO控制臺注冊賬號并創建項目。在注冊過程中,要確保信息的準確性,這是后續一切操作的基礎。創建項目后,你將獲得有效的AppID和ServerSeret,這兩個關鍵信息在后續的開發過程中會頻繁用到,是接入即構服務的重要憑證,就像一把鑰匙,能打開即構服務的大門。

第二步:開通服務,解鎖數字人視頻通話能力
完成賬號注冊和項目創建后,就需要聯系ZEGO技術支持開通相關服務。這包括數字人PaaS服務、AI Agent相關服務以的相關配置信息。只有開通了這些服務,才能真正具備實現數字人視頻通話的能力。

值得一提的是,在接入測試期間(AI Agent服務開通2周內),可以將LLM和TTS的鑒權參數設置為“zego_test”來使用相關服務,這為開發者的測試工作提供了便利,讓開發者能在測試階段快速體驗服務的功能。
即構實時互動AI AGENT在數字人視頻通話方面有著顯著的優勢。其數字人僅需一張上半身的真人或二次元照片或圖片,就能達到1080P的高清效果,口型準確且形象逼真。而且互動延遲超低,數字人驅動延遲<200ms,結合AI Agent互動延遲<1.5s,相比傳統方案,能帶來更真實沉浸的互動體驗。同時,它支持多語種口型準確呈現,尤其對中英文效果更佳,還支持輕微的身體動作,面部表情自然不變形。

第三步:后臺配置,搭建數字人視頻通話的核心架構
后臺配置是實現數字人視頻通話的核心環節, 主要包括注冊智能體、 創建數字人智能體實例和刪除智能體實例等操作。

?
①注冊智能體
注冊智能體用于設定智能體基礎配置,包括智能體名稱、LLM、TTS、ASR等相關配置。注冊后可以將該智能體作為模板創建多個實例與多個真實用戶進行互動。通常智能體是相對固定的,一旦設定好相關參數(人設形象)就不會經常改動。
需要注意的是,一個智能體只能注冊一次(同一個ID),如果重復注冊會返回錯誤碼410001008。以下是調用注冊智能體接口的示例代碼:
// 請將以下示例中的 LLM 和 TTS 的 ApiKey、appid、token 等鑒權參數換成你實際的鑒權參數。
async registerAgent(agentId: string, agentName: string) {
// 請求接口:https://aigc-aiagent-api.zegotech.cn?Action=RegisterAgent
const action = 'RegisterAgent';
const body = {
AgentId: agentId,
Name: agentName,
LLM: {
Url: "https://ark.cn-beijing.volces.com/api/v3/chat/completions",
ApiKey: "zego_test",
Model: "doubao-lite-32k-240828",
SystemPrompt: "你是一個智能體,請根據用戶的問題回答。"
},
TTS: {
Vendor: "ByteDance",
Params: {
"app": {
"appid": "zego_test",
"token": "zego_test",
"cluster": "volcano_tts"
},
"audio": {
"voice_type": "zh_female_wanwanxiaohe_moon_bigtts"
}
}
}
};
// sendRequest 方法封裝了請求的 URL 和公共參數。詳情參考:https://doc-zh.zego.im/aiagent-server/api-reference/accessing-server-apis
return this.sendRequest<any>(action, body);
}
在配置過程中,要確保LLM和TTS所有參數都按照其服務提供商官方文檔填寫正確,否則可能導致智能體無法正常輸出文本內容或語音。
②創建數字人智能體實例
可以用已注冊的智能體為模板創建多個數字人智能體實例,加入不同房間與不同用戶進行實時互動。創建成功后,數字人智能體實例會自動登錄房間并推流,同時拉真實用戶的流,且會返回數字人配置給客戶端,客戶端根據該配置初始化數字人SDK后即可進行實時互動。
默認情況下一個賬號下最多同時存在10個數字人智能體實例,超過限制后創建會失敗,如需調整可聯系ZEGO商務。以下是創建數字人智能體實例接口的示例代碼:
async createDigitalHumanAgentInstance(agentId: string, userId: string, rtcInfo: RtcInfo, digitalHuman: DigitalHumanInfo, messages?: any[]) {
// 請求接口:https://aigc-aiagent-api.zegotech.cn?Action=CreateDigitalHumanAgentInstance
const action = 'CreateDigitalHumanAgentInstance';
const body = {
AgentId: agentId,
UserId: userId,
RTC: rtcInfo,
DigitalHuman: digitalHuman, // 測試時可使用公共 ID :c4b56d5c-db98-4d91-86d4-5a97b507da97
MessageHistory: {
SyncMode: 1, // Change to 0 to use history messages from ZIM
Messages: messages && messages.length > 0 ? messages : [],
WindowSize: 10
}
};
// sendRequest 方法封裝了請求的 URL 和公共參數。詳情參考:https://doc-zh.zego.im/aiagent-server/api-reference/accessing-server-apis
const result = await this.sendRequest<any>(action, body);
console.log("create agent instance result", result);
// 返回的 DigitalHumanConfig 是數字人配置,客戶端根據數字人配置初始化數字人 SDK ,然后即可與數字人進行實時互動。
return result.AgentInstanceId, result.DigitalHumanConfig;
}
③刪除智能體實例
當互動結束后,需要刪除智能體實例,刪除后智能體實例會自動退出房間并停止推流。以下是刪除智能體實例接口的示例代碼:
async deleteAgentInstance(agentInstanceId: string) {
// 請求接口:https://aigc-aiagent-api.zegotech.cn?Action=DeleteAgentInstance
const action = 'DeleteAgentInstance';
const body = {
AgentInstanceId: agentInstanceId
};
// sendRequest 方法封裝了請求的 URL 和公共參數。詳情參考:https://doc-zh.zego.im/aiagent-server/api-reference/accessing-server-apis
return this.sendRequest(action, body);
}
第四步:客戶端配置,實現數字人視頻通話的前端交互
客戶端配置主要是集成ZEGO Express SDK完成實時通信和集成數字人SDK完成數字人渲染。即構提供了Android、iOS和Web等多個平臺的客戶端示例代碼,開發者可以參考這些示例代碼實現登錄、推流、拉流、退出房間等基本功能。
以Web客戶端為例,參考示例代碼完成相關配置后,用戶登錄房間并推流,數字人智能體登錄房間并推流、拉用戶流,用戶拉智能體流并且把幀數據和SEI數據傳給數字人SDK,從而實現與數字人的實時視頻互動。

完成以上四個步驟后,就成功實現了與數字人智能體的實時視頻互動。在整個開發過程中,由于LLM和TTS等參數較多且復雜,容易出現配置錯誤導致的異常問題,所以強烈建議在接入測試過程中監聽異常回調,并根據回調信息快速排查問題。
總結:
即構實時互動AI AGENT憑借其簡單易用的集成方式和強大的功能優勢,讓數字人視頻通話的實現變得輕松高效,適用于數字人1V1互動視頻、數字人客服、數字人直播等多種場景,為開發者帶來了極大的便利。
以上內容僅供參考,開發中可參考 開發者文檔 獲取更多細節。
?

浙公網安備 33010602011771號