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