-01-
ORTC簡介
首先簡單介紹一下ORTC:它是OPPO實時音視頻平臺,是OPPO萬物互融戰(zhàn)略下的重要基礎設施,面向終端和業(yè)務提供音視頻實時通信基礎能力。ORTC目前支持視頻會議、視頻通話、云游戲、云渲染等產品。
ORTC架構分為兩部分,端側和服務側。端側包括APP層、SDK層、核心庫,以及系統層和硬件層。服務端分為業(yè)務服務器和ORTC服務器:業(yè)務服務器主要管理如認證、監(jiān)控和調度等;ORTC服務器主要有信令服務器、媒體服務器,以及STUN、TURN、MCU和網關服務器等。所有這些服務器都是基于OPPO混合云架構之上的微服務。
接下來通過一個應用場景介紹ORTC交互流程。
如圖是一個點對點視頻通話場景,業(yè)務管理服務器用于資源分配,信令服務器用于鏈路建立以及SDK協商,媒體轉發(fā)服務器用于媒體流收發(fā)。
ORTC作為一個PaaS平臺,不只提供簡單的應用,還可以進一步擴展,它是對開發(fā)者開放的。此外,作為OPPO三大戰(zhàn)略之一的潘塔納爾系統也是借助PRTC來實現原廠互聯通信能力的。
-02-
AI=>ORTC
接下來我們看AI能夠從哪些方面給ORTC帶來驚喜的呢?
我們知道,RTC的核心要素包括音頻、視頻和網絡傳輸。接下來我們從這三個方面分析AI師如何促進ORTC能力躍遷的。
首先是音頻部分。在RTC交互過程中,音頻處理的上行流程包括音頻采集、音頻前處理、壓縮編碼、RTP封包和弱網對抗。在前處理和弱網對抗部分都可適當引入AI。在云端還包括合流轉碼和云端增強。在下行部分中,AI也可以發(fā)揮很大的作用。
接下來就從音頻前處理的幾個常用場景介紹下。
首先是AI語音降噪。AI降噪基于大量語料練習,應用深度學習技術,實現將人聲和噪音分離,有效抑制環(huán)境中的各種噪音。在這個過程中,我們所做的主要包括模型訓練以及算法執(zhí)行。 在模型的訓練過程中,需要對含噪語音進行前處理、 短時傅里葉變換,經過深度學習網絡后,得到增強語音,再將增強語音與干凈語音輸入到損失函數模塊,得到損失值來指導模型更新,直至收斂。在這個過程中,對于降噪效果的指標衡量,取決于訓練目標和損失函數。 常用的訓練目標包括掩碼類和映射類。掩碼類描述了干凈語音與噪音之間的時頻關系,包括基于幅度的理想二值掩碼等;映射類通過訓練神經網絡模型直接學習帶噪語音和純凈語音之間的映射關系,包括頻譜映射和波形映射。 有了訓練目標后,再疊加損失函數,如MSE、SDR、PESQ等,最終使模型得到很好的收斂。
在網絡模型方面,CRN是融合了卷積和循環(huán)神經網絡的一種網絡模型。在此基礎上,DCCRN融合了復數卷積概念,ORTC正是基于此模型進行語音降噪的。 下一步的演進過程需要考慮分場景進行。因為有些降噪算法的引入會增加功耗和復雜度,我們會綜合運用傳統WebRTC降噪、DCCRN降噪以及基于視覺輔助的AI降噪(視覺語音降噪是利用視覺信息,如嘴唇運動,把跟目標聲音相關的背景人聲過濾掉)。
回聲包括線性回聲和非線性回聲。 在進行回聲消除時,首先進行延遲估計(將參考信號和麥克風信號對齊),然后做一個線性自適應濾波器(去除線性回聲),第三步是非線性處理(抑制殘留噪聲)。 AI回聲消除是通過語音分離方式,基于長短記憶模型(LSTM)和卷積神經網絡(CNN)進行回聲場景的算法建模,直接消除線性回聲和非線性回聲。 訓練策略包括頻譜映射、波形映射、掩碼和時域。
ORTC視頻端到端處理流程如圖所示。在流程中,AI算法的應用場景還是很豐富的。
基于此,OPPO提供了基于“云-端-芯”的三層架構和“端云協同部署,端芯加速計算”的技術方案,為移動業(yè)務提供安全快速的端側能力。 AIDeploy是云端AI部署平臺,為端側AI能力提供線上部署更新和運行監(jiān)控能力,通過異常預警和用戶行為分析持續(xù)演進算法能力,從而增強端側AI服務,為用戶帶來更好的體驗。 AIUnit是端側AI能力平臺,基于自主創(chuàng)新的雙驅引擎架構,可以自由部署各種算法模型,為App提供輕量API可快速集成AI能力。 AIBoost是AI算法加速框架,結合ColosOS系統調度和硬件計算,提供模型加速、異構計算、推理轉換等能力,支持TensorFlow、Pytorch等算法框架。
在實時視頻交互過程中,會遇到視頻過暗、過淡、抖動等需要處理的場景,很多AI算法也已支持解決此類問題。在ORTC視頻增強架構中,CameraUnit SDK實現層提供了AI算法的能力接入,在視頻前處理如抖動、美顏、視頻增強等做能力提升。
在視頻前處理中,美顏主要使用雙曲線磨皮和高低頻磨皮。 雙曲線磨皮通過Y通道求高反差,進行RGB通道提亮和壓暗處理,最后進行圖像融合。此方法在磨皮程度的度量和處理色塊上都有一定的缺陷和局限性。 于是,我們針對高低頻磨皮進行了一些改進。首先對圖像進行濾波,生成中間結果,利用圖像的方差圖來反映圖像的頻率分布,將圖像劃分為不同頻段的區(qū)域并為其設置不同的權重,根據相應的權重將原圖和濾波后的圖進行融合疊加。 在此過程中我們也遇到了一些問題,例如中高光壓制過多導致圖像通透性差,對應的解決方案是細化分頻區(qū)域,減小對高光的壓制。另外,針對圖像鋸齒和小人臉效果不佳的問題,我們通過降低縮放尺度或不縮放以解決此問題。
接下來介紹在RTC處理過程中的自適應編碼部分,AI帶來了哪些提升。 RTC系統中最大的成本在于帶寬,而帶寬和清晰度是相輔相成的。一方面希望節(jié)省帶寬成本,另一方面希望傳輸高質量圖像,這是不可兼得的。那如何在有限帶寬的網絡環(huán)境中,實現更清晰、更低成本的視頻傳輸呢?我們提出了窄帶高清的需求。 在窄帶高清的要求下,比較常用的是內容感知編碼,即對視頻幀進行感知分析,識別出感興趣區(qū)域,預測最佳編碼數據,實現基于場景復雜度的智能感知編碼。這里的關鍵在于ROI即感興趣區(qū)域的識別,引入ROI視頻編碼后,就變得比較容易。 我們在SDK接入層提供ROI封裝能力,三方通過接口調用硬件平臺提供的底層ROI編碼 功能。
圖像超分在端側和云端都有實現機會,可以在低帶寬情況下實現更高質量的圖像。目前ORTC視頻超分的AI應用主要在服務側,稍后在架構部分會進一步講解。
在網絡傳輸部分,AI可以帶來哪些提升呢?目前包括幾個方面:
WaveNetEQ,即一種改進版的PLC系統,用于語音合成的遞歸神經網絡模型,能更好解決音頻丟包問題;
基于神經網絡的自適應傳輸;
基于強化學習的擁塞控制算法;
基于RNN的丟包恢復;
-03-
ORTC=>AI
在端側無論如何優(yōu)化,都會有一些AI無法克服的困難,比如計算復雜度過高、訓練數據集不足、模型普適性差、無法應對大規(guī)模應用等。這些端側的痛點,可以利用ORTC低時延、高保真的特性來解決。
基于此,我們提供了ORTC和AI融合的架構,可以有效借助開發(fā)框架引入AI算法服務。例如,在對實時性要求較高的場景,可以借助云端虛擬SDK引入流輔助AI做分析處理;如果是對幀率要求高、時延要求不高的場景,可以借助平臺分發(fā)實現AI算法服務進行流轉發(fā)。
在語音分析和自然語言處理方面,ORTC可以補充AI在實時語音翻譯/字幕、實時變聲、對話機器人等方面的能力。另外,基于ORTC SDK通道的能力,我們還可以做一些較復雜的場景運用,如遠程聽診。用戶和醫(yī)生之間不僅可以實時通話,同時還可以借助同一個通道傳輸高保真音頻。
在視頻分析及處理方面,ORTC可以在遠程活體檢測、數字人驅動建模、輔助駕駛、遠程心率測量等場景幫助AI落地。
-04-
ORTC與AI融合
接下來介紹AI和ORTC之間融合的一些實踐探索。
在RTC云端AI處理關鍵流程中,視頻和音頻基本可以實時處理(端到端500ms內),同時視頻超分在云端利用GPU進行計算之后,可以對視頻圖像做增強,然后回流到ORTC中。
在ORTC融合AI架構中,ORTC可以讓AI算法得到很好的實踐落地,如前述提到的借助ORTC可以實現流的分發(fā),或實現AI對圖像實時的抽幀和流轉發(fā)流程處理。同時,視頻處理后的智能流可以很好反饋回流到ORTC系統中去。
以背景建模場景為例,AI不僅可以使網絡傳輸質量得到很好的提升,對背景區(qū)域進行虛化,還可以保證隱私。此外,我們還可以把通過背景建模算法提取到的背景幀作為長期參考幀,以提升抗弱網的能力。
基于ORTC和AI的相互作用,我們還做了很多的探索和實踐,例如圖示的實時音視頻多模態(tài)分析。
此外,在元宇宙場景也有相關探索,例如多模態(tài)驅動虛擬數字人,以及云渲染+ORTC串流。
我的分享就到這里,謝謝!
審核編輯:劉清
-
SDR
+關注
關注
7文章
233瀏覽量
50494 -
RTC
+關注
關注
2文章
538瀏覽量
66600 -
傅里葉變換
+關注
關注
6文章
441瀏覽量
42606 -
MSE
+關注
關注
0文章
6瀏覽量
6579
原文標題:ORTC與AI相互成就之道
文章出處:【微信號:livevideostack,微信公眾號:LiveVideoStack】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論