遊戲多媒體引擎(GME)技術原理介紹

  • 2019 年 12 月 6 日
  • 筆記

遊戲語音的處理有特定的門檻,除了採集、處理、編碼、傳輸、解碼、渲染等各個環節本身需要的技術能力和經驗之外,還需要很強的工程實力,解決幾千種機型的適配和音頻兼容性問題,以及海量高並發的處理能力。面對這些問題,騰訊多媒體實驗室在服務數個億萬用戶量級產品的過程中已經積累了很多經驗。基於騰訊多媒體實驗室技術能力開發的遊戲多媒體引擎(Game Multimedia Engine),相比於市面上同類產品,有顯著的優勢:

1. 功能全面完善,提供全方位語音體驗

  • 支援平台涵蓋主流遊戲平台win,ios,android,mac+主機端,三大主流遊戲引擎Unity
  • 3D、Unreal、Cocos等通用遊戲框架全覆蓋,四行程式碼極速接入;
  • 與WWise合作,GME和Wwise匯流排交互音頻流,可以使遊戲玩家的語音處理和實際遊戲場景集合起來,使聊天更加沉浸。同時,完美解決了手機遊戲開啟語音後,音質下降的問題。
  • 支撐遊戲產品特性功能:小隊語音,語義消息,3d語音、語音鑒黃、錄製、多國離線語音轉文本等
  • 支援大房間10W+用戶在同一房間

2. 遊戲場景深度優化,關鍵技術指標業內領先

GME基於多媒體實驗室自研的靜音檢測、自動增益控制、回聲抵消、雜訊抑制以及智慧流控演算法。針對遊戲場景的音頻編解碼器進行深度優化在碼率、延時、系統資源消耗等關鍵技術指標達到業界領先。

(1)GME體驗為先,保證低延遲、高抗性、低消耗:

GME在不同場景下提供不同的音質體驗和不同的抗網路損傷技術,力求給用戶帶來最佳的遊戲體驗,主要體現在:

  • 低延遲:實時語音音質在網路無損的場景下的平均MOS分達到4.38(滿分5分),平均延時低於200ms。
  • 高抗性:通過先進的丟包恢復技術,丟包補償演算法以及優秀的網路抗性,即使在50%以上丟包、100ms的網路抖動下,也能保持順暢的溝通和很好的音質。
  • 資源消耗低:例如MOBA類遊戲中,在保證正常的語音溝通和良好的性能前提下,移動網路模式每分鐘流量消耗低於500KB,CPU佔用率平均在10% 以下等。

(2)GME 音頻處理流及SDK技術實現

a) GME中音頻數據流處理流程,如下圖所示:

A. 採集端的數據流: Cap負責採集音頻數據 —-> EC節點負責回聲消除和降噪 —-> 到Prep模組做AGC與VAD —-> Aux In模組混入伴奏 —-> Enc模組編碼 —-> 包頭和FEC 編碼 —-> NetSink發送數據。

B. 接收端的數據流: NetSrc收到TRAE層的數據包 —-> DMX按UIN解析為多路不同的數據 —-> 每路數據都有解碼鏈來處理(包含FEC解碼、包頭解碼、Jitter快取區中快取)。

C. 播放端的數據流: Rnd負責拉取PCM數據播放 —-> 通過TEE節點把播放數據同步EC 的參考訊號 —-> 通過mix混音拉取各路Jitter快取的數據並解碼 —-> 然後獲取PCM數據進行混音。

D. 伴奏的數據流: 通過Aux Src從外部傳入, 可以給到播放的Mix作為耳返播放, 也可以給到Aux In作為伴奏數據混音發送給遠端其他用戶。

音頻數據流處理流程

b) GME 客戶端SDK架構

GME為了支援多平台多引擎,故架構設計上考慮了跨平台通用業務邏輯以及平台相關處理邏輯以及針對不同平台和不同遊戲引擎進行了針對性的介面封裝,在提供了對多平台可支援性的同時增強了GME SDK本身的易用性。

  • 硬體及編解碼層,主要針對不同設備平台進行封裝適配,並提供平台相關的編碼器供上層使用。
  • 業務邏輯層,使用C++跨平台實現,對業務邏輯進行封裝,包括網路與協議。
  • 適配層,提供了針對不同平台、不同程式語言和遊戲引擎的適配封裝,方便開發者調用。

3. 騰訊雲頂級基礎設施,為語音服務保駕護航

(1)穩定的雲支撐環境

GME基於騰訊雲自建萬兆雲機房,全球覆蓋,配備20線BGP頂級網路,800+節點讓玩家暢享穩定而極速的體驗。

(2)靈活多層次的調度系統

GME後台調度支援系統,能支援:

  • 億級用戶在線,億級群數規模;實時監控,異地容災,智慧調度,保證服務安全可靠
  • 專業網路接入:復用 QQ 接入部署和調度策略,有效解決弱網路環境下的連通問題,連通率高達 99.995% ;
  • 超強服務承載:承載 QQ 服務支撐能力,支援億級用戶在線,億級群數規模;實時監控,異地容災,智慧調度,保證服務安全可靠;