元宇宙場景下的實時互動RTI技術能力構建

元宇宙可謂是處在風口浪尖,無數的廠商都對元宇宙未來抱有非常美好的憧憬。正因如此,許許多多廠商都在用他們自己的方案,爲元宇宙更快、更好的實現,在自己的領域貢獻力量。LiveVideoStack 2022北京站邀請到了 ZEGO 即構科技的解決方案專家許明龍,爲我們介紹 ZEGO 在元宇宙場景中的底層技術能力構建。

文/許明龍

編輯/LiveVideoStack

圖片

ZEGO即構科技 , 解決方案開發專家

各位下午好。我是來自深圳 ZEGO 即構科技的解決方案專家許明龍。今天給大家分享的主題是《元宇宙場景下的實時互動 RTI 技術能力構建》。

圖片

我將從元宇宙與實時互動 RTI、元宇宙場景中的關鍵技術能力解析以及 ZEGO 元宇宙場景案例深度剖析這三個方面展開介紹。

-01-

元宇宙與實時互動RTI

圖片

即構認同元宇宙是未來的互聯網發展趨勢之一。隨着人工智能、RTC、遊戲研發、區塊鏈的升級與普適,元宇宙離我們越來越近,我們也相信元宇宙可以帶來全新的用戶體驗和商業閉環,以及更好的互動性和沉浸感,帶來接近現實甚至超越現實的全新體驗,從功能滿足躍遷爲情緒滿足,實現所見即所得的虛擬世界體驗。除此之外,還會帶來全新的身份認同和互動體驗建設,維護和沉澱數字資產,爲企業帶來更多的商業空間,同時沉澱有價值的數字資產。

圖片

出於這種認同,我們意識到實時通訊 RTC 已經無法概括所有的線上交流。元宇宙的場景下會更加強調互動。爲此我們進行了產品升級,從 RTC 升級到了實時互動 RTI**。**

圖片

從實時通訊 RTC 到實時互動 RTI,代表着 ZEGO 的產品能力和服務範圍也從以往的 RTC 升級到實時互動 RTI。RTI 代表 了ZEGO 能力的總和,同時也昭示着未來鑽研的方向——更好的互動體驗,滿足精神的需求。

圖片

從 RTC 到 RTI,即構做了以下技術能力提升:

  • **智能逼真畫質:**移動端實時超分,採用 AI 預測用更低流量成本實現更高分辨率;主體分割加上透明通道傳輸,用智能 AI 算法讓虛實交錯,實現直播的多樣玩法;自研 Z264 編碼器實現同等條件下更好的畫面質量,對於運動等複雜畫面的限制有了提升;

  • **身臨其境音質:**場景化 AI 降噪,通過智能識別不同場景的不同噪聲,進行噪聲消除,可以根據場景智能切換降噪模式;空間音頻可以讓用戶聽到來自不同方位的聲音,讓互動更有方位感;

  • **無限的場景與玩法:**多人狀態實時同步、虛擬人以及萬人音視頻互動,增加了大規模互動的可玩性。

-02-

元宇宙場景中的關鍵技術能力解析

介紹完 ZEGO RTI 的升級思路與相關概念後,我們再來具體看一下概念背後,與元宇宙相關的部分熱門技術能力。

2.1 萬人連麥

傳統的 RTC 認爲,超過一定人數開麥講話,聲音就會聽不清了。這樣的想法往往不是產品經理提的,更多的是技術實現上的考慮,因爲每一個開麥者都需要把音視頻從客戶端推流到服務端,人數很多會導致服務端承受非常大的壓力,所以傳統的 RTC 做法是在業務側限制或者在 SDK 內部限制了同個房間的同時開麥人數。

圖片

ZEGO RTI 與傳統不同,我們不再限制同時開麥人數。那麼我們實現的這個萬人連麥有用嗎?答案是肯定的,比如線上萬人會場、線上萬人音樂會,我們不僅需要聽唱歌人的聲音,還需要聽到很多很多觀衆的聲音,而不是幾個人的聲音,這樣的萬人連麥就非常有用,可以營造出真實的氛圍感和沉浸感。

圖片

傳統的方法是從客戶端推流到服務端,通過服務端進行轉發,對於萬人連麥這樣的架構很明顯是行不通的。現在我們將客戶端的音視頻流推流到服務端,再經過服務器層層選路匯聚到邊緣節點,最後再拉流到客戶端。聽到的聲音基本囊括了所有開麥者的信息,最大程度的保證其真實感和氛圍感不會丟失。

圖片

整體包括的服務框架和職責有:SDK、網絡接入層、調度層、服務層和儲存層。

萬人連麥一定有對應的客戶端 SDK,接入時就通過 SDK 進行。接入時有信令層的接入網關和媒體網關。調度層分爲信令統一調度、媒體調度以及流匯聚服務調度。服務層分爲房間服務、萬人房間服務、推流節點、服務拉流節點服務和音頻匯聚服務。

圖片

接下來重點介紹萬人連麥的整體服務架構。

這張圖是簡化版的架構示意圖。這裏有兩個連麥者,連麥者 1 和連麥者 n,一大部分是房間的服務,另一大部分是媒體服務,想要連麥就必須有一個共同的房間號,無論這個房間有多少人,用戶都需要先去登錄。登錄是指用戶去獲取房間服務,房間服務會維護用戶的登錄信息。連麥時,流媒體會從客戶端推流到服務,當房間內人數較少時,流媒體調度是直接從源站進行拉流,不需要之前提到的匯聚服務。當房間人數非常多時,之前設置的大房間以及分層匯聚服務就開始發揮作用。大房間會進行大房間流信息的緩存與分發,匯聚服務會根據每一層的選路情況來匯聚。

ZEGO 目前設計了三層的匯聚服務,所有的數據最後都會匯聚到推流節點,最後經過調度層出口,經過拉流調度之後,再通過拉流節點拉到匯聚的流,最終實現萬人連麥服務。

圖片

雖然配套的客戶端看起來接口和能力比較簡單,實際上很多都是在服務端完成的,其實客戶端也存在推拉流調度上、選路上、異常情況的音頻去重、音畫同步、用戶信息獲取等能力。

圖片

萬人連麥也存在一定的挑戰。

首先萬人連麥需要面對高併發的情況,傳統的房間不一定可以支持萬人連麥所帶來的高併發要求。ZEGO 通過改進,現在可以支持單房間 100 萬人同時在線。

第二個挑戰也是最大的挑戰,匯聚網絡流量過大,計算量過大。ZEGO 將音頻和視頻分離,只匯聚音頻。一些過大的數據,客戶端會進行一定量的預計算,以保證服務端不需要再一次進行計算,可以直接選路。

最後一個挑戰是保證音頻流暢不掉字。萬人連麥是一個動態變化的過程,如果不進行相關優化,會出現掉字的情況。ZEGO 通過優化,每個選路環節優先保證音頻數據的完整性不被選路策略打斷。

2.2 多人狀態實時同步

圖片

多人實時狀態同步,更多的應用在元宇宙場景中。在非元宇宙場景中,用戶的狀態會少一點,一般會有麥克風狀態、攝像頭狀態等。但是在元宇宙場景中,還會包括移動狀態、虛擬人的動作狀態、表情狀態,物品狀態等非常多非常複雜的狀態數據。這些狀態數據的同步要求也都非常實時,否則沒有辦法進行良好互動,產品體驗也無法滿足。現在 ZEGO 可以做到實時信令 60ms 左右的延遲。ZEGO 的狀態同步信令之所以能做到 60ms 的信令,是因爲 ZEGO 對信令進行全球統一實時監控調度,實時計算邊緣節點是否就近接入。

在服務端側,引入了用戶視野的概念。服務端可以動態劃分視野範圍,客戶端會有相關的視野事件通知,同時和 RTC 進行深度結合,將方位感、空間感落地到語音中。

圖片

元宇宙場景缺少不了 3D 引擎,通常會使用 Unity 或者 UE 構建。ZEGO SDK 底層以 C 語言進行開發,對外輸出接口則爲 C++/Unity C#,整體模塊支持混合編程構建。3D 虛擬場景開發者或者業務應用 APP 開發者都可以使用各自熟悉的語言進行編程構建,沒有額外的學習成本。除了客戶端便於集成外,服務端引入狀態同步服務器,通過狀態同步服務器,業務側服務器可以訂閱所有用戶的所有狀態信息,以便做業務的其它控制行爲。

圖片

雖然聽起來很複雜,但是使用起來非常方便,創建之後登錄,背後會進行狀態劃分通知,業務側只需要關注業務側需要關注的點即可。

2.3 ZEGO 虛擬人

圖片

目前由於 AI 的發展,特別是 ChatGPT 應用的快速普及,AI 虛擬人十分常見,那麼AI 生成的虛擬人和 ZEGO 的虛擬人有什麼區別呢?右邊是 ZEGO 虛擬人的生成過程,ZEGO 的虛擬人不是通過 AI 生成的,ZEGO 的虛擬人生成過程比較複雜,需要經過原畫階段的建模、設計、動畫、渲染等。原畫需要通過原畫師自己畫,建模我們也有一套自己的建模標準,動畫階段也是。每個環節都有 ZEGO 的設計規範,設計出來的虛擬人是完完整整的人,不是缺胳膊少腿的,同時有配套的衣服、掛件、配件等等,是齊全完備甚至是豐富的。結合ZEGO的設計規範再配套上 ZEGO 的 AI 能力,ZEGO 虛擬人它就像是一個真人一樣。總的來說,ZEGO 虛擬人最大的特點是可以通過簡單編程實現對虛擬人的精細化控制。

圖片

ZEGO 提供 AI 捏臉和手動捏臉兩種方式。AI 捏臉是通過強大穩定的臉部識別,對人臉進行海量分析和訓練,從而實現虛擬形象對真人人臉的臉型、五官特徵精準還原。手動捏臉通過骨骼實現對人臉各部位特徵的參數調節,融合合成人臉,並配套妝容配飾等美術素材,可以在虛擬形象上自然替換綁定。

表情隨動、肢體隨動下文會細說。

聲音驅動指通過語音的聲波信息來實時驅動當前虛擬現實人物的臉部和嘴部表情,使得虛擬形象自動生成和真人一樣自然的表情表達;文本驅動指輸入文字即可驅動虛擬形象自然地朗讀出聲,也可搭載業務層 ASR 及 NLP 能力使虛擬形象對文字或語音內容進行對答。

圖片

這是一部分虛擬人的形象展示。

在虛擬人風格形態上,ZEGO 的設計團隊也設計了多種不同風格的虛擬人,有擬人風格、Q版風格、二次元風格等。

圖片

上圖可以看到捏臉可以調整的參數有很多種,調整的範圍也很大,可以隨心調整以達到想要的效果。這樣的調整可以通過APP自己手動調整,也可以交由程序接口由業務側去調整進行,還可以通過AI來調整,當拍照或者上傳圖像後,AI 會從圖像中提取人臉五官及臉型、髮型等特徵,生成與真人高還原度的虛擬形象。

圖片

表情驅動

文本驅動

驅動能力分爲兩部分,包括表情驅動和肢體驅動。表情驅動的驅動源可以有兩類,可以通過攝像頭來實時驅動,也可以通過動態文字來驅動。攝像頭驅動基於領先的人臉關鍵點精準識別,實時還原面部表情形態。文本驅動輸入文字即可驅動虛擬形象自然地朗讀出聲,也可搭載業務層 ASR 及 NLP 能力使虛擬形象對文字或語音內容進行對答。

圖片

肢體驅動

肢體的驅動可以通過攝像頭實時識別動作,提取肢體位置信息,不依賴動作捕捉設備即可實時驅動。通過攝像頭驅動對環境和動作還是有所要求的,一旦攝像頭拍攝不到將難以驅動,但在不少場景下還是可以用到的。

圖片

ZEGO 也提出了虛擬人和 RTC 融合的方案,實現多個虛擬人在同一個空間內進行互動。一個虛擬人可以在同一個空間中看到另外的虛擬人的移動、表情、嘴型變化、動作、音視頻互動等情況,得益於這樣的方案融合,可以讓用戶在虛擬世界中也可以像現實世界一樣感受到對方的情感變化。

該方案爲 Avatar + RTC。Avatar SDK 是 ZEGO 的虛擬人 SDK, Express SDK 是 ZEGO 的RTC SDK。攝像頭將採集到的畫面傳輸到 Avatar SDK,Avatar 在得到數據以後,通過 AI 提取面部表情數據,再通過實時渲染的方式將表情渲染出來。畫面渲染出來以後,將畫面交給Express SDK,經過網絡層的傳輸,Express SDK 採集的音視頻信息也會隨數據傳輸,最後Avatar SDK 將數據彙總,輸出表情渲染。

圖片

在面對虛擬人直播、虛擬人帶貨直播、虛擬人客服等場景時,上方圖片的方案會更加適合。長時間的實時渲染客戶端會喫不消,在客服 H5、小程序、瀏覽器、Webview等場景普遍純在這樣的訴求。攝像頭還是交由 Avatar SDK 採集,採集之後虛擬形象的渲染是在 Avatar SDK 中進行,之後交由 RTC SDK,這樣就獲得了虛擬人的視頻形象幀。同時,RTC SDK 也會採集音頻信息推流。推流之後拉流端就不需要進行本地實時渲染虛擬形象了。因爲推流出來的流是視頻流,在哪裏播放對客戶端是沒有要求的。

-03-

ZEGO 元宇宙場景案例剖析

講完 ZEGO 虛擬人,來看一個完整的案例。

圖片

該案例中,虛擬人可以換裝捏臉,整個場景是一個 KTV 房間。這裏有虛擬人和虛擬物的交互,例如坐在椅子上、拿着話筒唱歌送禮物、舞蹈動作等,也有虛擬和現實的交互,虛擬人和真人一起唱歌聊天,在真人不想顯示真實面部的情況下可以很好的捕捉真人的面部,及時渲染表情以及音頻的驅動。

圖片

整體框架包括兩大部分,一部分是程序,另外一部分是 3D 美術資源的設計。ZEGO 設計有資源編排工具,針對資源進行編排和打包,之後上傳到美術素材中心。APP 提供 MetaWorld SDK 形式,可以動態加載美術資源進行實時渲染以達到預想的場景效果。

圖片

ZEGO 與多個專業 3D 美術團隊有深度合作,可以提供多個場景白模。上方右圖展現的是通過白模的編排與設計,貼上不同的皮膚和元素動態更新。更新完之後,使用 ZEGO 的編排工具進行編排。

圖片

客戶也可以自己設計原畫以及建模,然後將由 ZEGEO SDK 進行交互編排,最後實現動態加載進行落地。

圖片

軟件系統方案較爲複雜,分爲多進程、雙進程和單進程。尤其是 Unity,當進程殺掉以後,整個APP 都會被殺掉,爲此我們提供了兩套解決方案,這裏展現的是雙進程的解決方案,整個方案分爲三部分,宿主 APP 運行 RTC 主業務,整個元宇宙環境運行在一個獨立進程。Unity 展示虛擬環境 UI,調用 ZEGO 驅動能力,與通信能力進行進程間的通訊,實現虛擬人位置信令和狀態同步信令之間的互通,最後通過 ZEGO 的服務器實現多端通信。

圖片

MetaWorld SDK 不僅提供簡單的基礎能力,還提供更爲高級的能力,比如交互組件化能力,超級屏幕、編排主體分割形象等可以實現一些看起比較有意思的玩法。除了靜態編排外,其實我們還提供了動態編排的能力,可以完全通過 APP 內的接口能力實現動態的編排資源,包括資源的樣式、資源的位置、人物和物品的交互方式編排等。ZEGO 官網上線了一個虛擬小窩的解決方案,正是用了這套動態編排資源的方案,開局只提供一個空房間,全靠玩家裝修實現屬於自己的小窩。

以上就是 ZEGO 即構科技在元宇宙底層關鍵技術的全部分享內容,謝謝大家!


圖片

LiveVideoStackCon 2023上海講師招募中

LiveVideoStackCon是每個人的舞臺,如果你在團隊、公司中獨當一面,在某一領域或技術擁有多年實踐,並熱衷於技術交流,歡迎申請成爲LiveVideoStackCon的講師。請提交演講內容至郵箱:[email protected]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章