首頁(yè) > 新聞 > 專家觀點(diǎn) >

聲網(wǎng)Agora高澤華:VR實(shí)時(shí)語(yǔ)音,帶著最好的武器去戰(zhàn)斗

2016-05-05 10:08:43   作者:   來(lái)源:CTI論壇   評(píng)論:0  點(diǎn)擊:


  高澤華,11年音樂(lè)語(yǔ)音編解碼學(xué)習(xí)經(jīng)驗(yàn)。理解幾十種音頻編解碼標(biāo)準(zhǔn)。先后在中磊電子、士蘭微電子、虹軟科技主導(dǎo)音頻項(xiàng)目。任職YY期間負(fù)責(zé)語(yǔ)音音頻技術(shù)工作。對(duì)音頻算法在芯片設(shè)計(jì)、嵌入式系統(tǒng)、桌面軟件。在互聯(lián)網(wǎng)應(yīng)用和專利分析方面有多年研發(fā)經(jīng)驗(yàn)和積累。目前負(fù)責(zé)聲網(wǎng)Agora.io的音頻開發(fā)工作。
  高澤華在GMIC2016(全球移動(dòng)互聯(lián)網(wǎng)大會(huì))上發(fā)表了演講,以下是演講全文。
  VR
  首先,我們來(lái)看看什么是VR游戲需要什么?VR是一個(gè)很大的概念,我嘗試在一兩個(gè)點(diǎn)上去理解它的需求。
  第一,VR視頻的網(wǎng)絡(luò)傳輸,需要高并發(fā)高容量的實(shí)時(shí)網(wǎng)絡(luò)支持。
  去年受我們同事,前Facetime視頻技術(shù)架構(gòu)師樓劍先生的引薦,到他的老師虞露教授的實(shí)驗(yàn)室參觀,當(dāng)時(shí)虞露老師給我們展示了72路視頻輸入的True 3D Video Coding技術(shù)。通過(guò)多路視頻編碼和后處理技術(shù),可以實(shí)現(xiàn)視頻的任意角度觀看視頻,任意放大縮小視頻也不會(huì)失真。我個(gè)人呢,是NBA球迷,當(dāng)時(shí)我就想,這要是用在賽事直播上,并能互動(dòng)選擇視角和方向,簡(jiǎn)直太酷了。而實(shí)際上,我們的CEO趙斌先生認(rèn)為,都說(shuō)現(xiàn)在網(wǎng)絡(luò)帶寬冗余,家家都是光纖到戶,但是如果真正的VR實(shí)時(shí)視頻在網(wǎng)絡(luò)上傳輸,即使只傳差額信息,帶寬還是遠(yuǎn)遠(yuǎn)不夠用的。
  我對(duì)VR的第二個(gè)理解是,VR對(duì)音頻的要求提高了。今年3月,我參加了清華的竇唯蓓老師召集的中國(guó)音頻VR技術(shù)需求研討會(huì),這是國(guó)內(nèi)第一次召開VR音頻的相關(guān)會(huì)議?梢哉f(shuō)音頻VR壓縮處理傳輸在中國(guó)還是剛剛起步,實(shí)際應(yīng)用也非常缺乏。與會(huì)的專家認(rèn)為,VR給音頻提出很大挑戰(zhàn),一個(gè)設(shè)計(jì)錯(cuò)誤的VR音頻系統(tǒng),不僅會(huì)使得臨場(chǎng)感急劇下降;錯(cuò)誤的聲音定位,也會(huì)導(dǎo)致人的眩暈感。所以,在VR音頻處理上,需要多聲道,低延時(shí)的實(shí)時(shí)音頻通信系統(tǒng)。
  游戲
  談完VR,我們?cè)僬務(wù)動(dòng)螒颉?/strong>這兩年游戲直播非;稹3年前我們給游戲提供直播和通信技術(shù)服務(wù)的時(shí)候,游戲主播還是靠直播中賣零食賺錢。這兩年不一樣啦,估計(jì)好的游戲主播收購(gòu)幾個(gè)零食生產(chǎn)商是問(wèn)題不大啦。但是我們不眼紅,讓有才藝的人去賺大錢,讓有才能的人來(lái)提供最好技術(shù)服務(wù),一直是聲網(wǎng)Agora.io的宗旨。一個(gè)游戲屏幕視頻轉(zhuǎn)發(fā),兩個(gè)游戲主播和海量觀眾實(shí)時(shí)互動(dòng)溝通,是游戲直播的標(biāo)配。
  除了游戲直播,還有游戲?qū)?zhàn)。今年,我認(rèn)為將是手機(jī)游戲互動(dòng)元年,無(wú)論是《王者榮耀》,還是小米游戲的《CK公正對(duì)決》都是把PC游戲的實(shí)時(shí)對(duì)戰(zhàn)搬到手機(jī)上。而這些實(shí)時(shí)對(duì)戰(zhàn),團(tuán)戰(zhàn)游戲,通常花了極大手筆用于音效制作,力圖給游戲玩家強(qiáng)烈的臨場(chǎng)感。但是不同于PC,手機(jī)音頻系統(tǒng)像是一個(gè)攔路虎,給手機(jī)互動(dòng)音頻開發(fā)提出了極大的困,一旦開啟實(shí)時(shí)通信,游戲音效將受到極大損傷。
  在實(shí)時(shí)游戲語(yǔ)音通信中,游戲玩家最關(guān)心游戲語(yǔ)音的實(shí)時(shí)性。天下武功,唯快不破。高對(duì)戰(zhàn)游戲處處要求快,要求低延時(shí)。我個(gè)人不太玩游戲,但是3年前在廣州工作的時(shí)候,我有幸認(rèn)識(shí)一個(gè)女玩家,我問(wèn)她網(wǎng)游中什么角色最容易上手最好玩。她說(shuō)不知道,但是她知道什么角色最不容易上手、最難用。那就是負(fù)責(zé)給團(tuán)隊(duì)加血的那個(gè)角色,因?yàn)樗o及時(shí)團(tuán)隊(duì)的每個(gè)人加血,是他們的保姆。一旦這個(gè)人加血加慢了,導(dǎo)致一個(gè)人犧牲。在激烈的時(shí)候,損失一個(gè)人的代價(jià)基本就宣判團(tuán)隊(duì)的死刑。所以,加血的角色最容易挨罵。對(duì)配合要求也最高,通常不會(huì)換。其實(shí),他們要求的不是加血快,是加血的流程快。我們之前和強(qiáng)大的競(jìng)爭(zhēng)對(duì)手競(jìng)爭(zhēng)PC上游戲通信軟件地位的時(shí)候,是什么案例讓我們活下來(lái),就是一個(gè)加血的案例。我們用對(duì)手的軟件,隊(duì)友說(shuō),加血,加血。結(jié)果等了1s~2s才傳到保姆那里?上攵,血還沒(méi)加,就掛了。而用我們的軟件,加血成功的概率提高了幾倍幾十倍。就算跨國(guó)玩游戲,我們延時(shí)也不過(guò)百毫秒。所以當(dāng)時(shí),玩家像愛(ài)惜槍一樣愛(ài)惜、使用我們的軟件。
  VR Game到底需要什么
  說(shuō)了這么多,VRGame到底需要什么,我們可以總結(jié)一下,
  高容量、高可靠網(wǎng)絡(luò)、互動(dòng)游戲直播、多聲道音效、低延時(shí)
  這些恰恰是聲網(wǎng)Agora音視頻引擎通過(guò)多年研發(fā)和技術(shù)積累能給大家提供的技術(shù)特性和產(chǎn)品特性。聲網(wǎng)Agora.io實(shí)時(shí)云技術(shù)團(tuán)隊(duì),曾經(jīng)提供10億分鐘每天的運(yùn)營(yíng)支撐,最多180w人同時(shí)在一個(gè)頻道內(nèi)實(shí)時(shí)視頻直播服務(wù)。并且可以提供多聲道甚至帶有垂直聲道的音頻音效系統(tǒng)。并提供“軍用”級(jí)的低延時(shí)傳輸系統(tǒng)。通過(guò)這些來(lái)助力VR游戲?qū)崿F(xiàn)通信和直播的業(yè)務(wù)需求。
  那么下一個(gè)問(wèn)題來(lái)了,聲網(wǎng)Agora.io如何做到這些的。
  聲網(wǎng)Agora.io如何做到這些
  通常整套的實(shí)時(shí)云通信系統(tǒng)概述下來(lái)包括后臺(tái)技術(shù)、客戶端技術(shù)和運(yùn)維技術(shù)等等,我暫時(shí)沒(méi)法從頭到尾把聲網(wǎng)Agora.io的全部技術(shù)特性給大家一一介紹。一方面,有些部分我不夠?qū)I(yè),專業(yè)人做專業(yè)事一直是聲網(wǎng)Agora.io的宗旨。今天我給大家?guī)?lái)的是:
  聲網(wǎng)實(shí)時(shí)云的全高清音頻通信系統(tǒng)
  提到全高清音頻通信系統(tǒng),首先要怎么搭建這樣一個(gè)系統(tǒng),通常搭建一個(gè)最小音頻子系統(tǒng)分成下面幾個(gè)步驟:
  第一步,采集播放。如果把采集的數(shù)據(jù)存成文件,或是交給播放,就形成一個(gè)閉環(huán),我稱他為第一閉環(huán),也可以稱為ADM(audio device module)。
  第二步,編碼解碼。只有采集播放還不夠,數(shù)據(jù)量太大,還要加上編碼解碼,進(jìn)行數(shù)據(jù)壓縮,采集壓縮后的數(shù)據(jù)再解壓縮播放,我稱他為第二閉環(huán),加上的這個(gè)編解碼模塊叫作ACM(audio coding module)。
  第三步,網(wǎng)絡(luò)模塊。實(shí)現(xiàn)網(wǎng)絡(luò)發(fā)送接收,ANM(audio network module),我叫他第三閉環(huán)。
  第四步,前后處理模塊。也就是第四閉環(huán),Audio Processing module。這個(gè)模塊主要實(shí)現(xiàn)3A引擎:回聲消除AEC,增益控制AGC,噪聲抑制ANS。
  1.回聲消除
  在ANM,APM,ACM,ADM四個(gè)模塊中,每個(gè)模塊都有很多要考慮的細(xì)節(jié)。雖然現(xiàn)在有了WebRtc,好像WebRtc把這一切都解決了。但是事實(shí)真的是這樣的嗎?不是的。我從2008年開始接觸WebRtc,過(guò)去的幾年內(nèi)。幾乎每個(gè)月都有人問(wèn)我這樣一個(gè)問(wèn)題:大牛,怎么做回聲消除,你的回聲消除模塊賣嗎?2014年我去一家公司拜訪,他就私下找我買AEC模塊,今年我再去,他們還找我買。就在上周,我的QQ群里還有一個(gè)上海的游戲公司找我買AEC模塊。為什么回聲消除就這么難解決,今天我在這里,稍微分享一下我的理解,希望大家以后不要在軟件回聲消除的層面嘗試購(gòu)買什么回聲消除模塊。
  AEC只是3A引擎的一部分,是很重要的一部分,為什么第一個(gè)問(wèn)題就是它。因?yàn)槟闷痣娫挘悄愦虿煌,打通了,不管質(zhì)量怎么樣,聲音一出來(lái)就是回聲,我在音頻行業(yè)做了11年,說(shuō)長(zhǎng)不長(zhǎng)說(shuō)短不短,深知國(guó)內(nèi)公司做音頻通常有個(gè)一很好的標(biāo)準(zhǔn),“出聲就行”。但是沒(méi)有回聲消除,你出聲就是噪聲,最基本的底線都滿足不了。
  那么,是什么問(wèn)題困擾我們這么久,它就是回聲,準(zhǔn)確說(shuō)是聲學(xué)回聲。自己的聲音傳到遠(yuǎn)端再通過(guò)遠(yuǎn)端的麥克風(fēng)錄音傳回來(lái),就是回聲。回聲從信號(hào)特性上看,有線性部分和非線性部分;芈曄褪且ㄟ^(guò)信號(hào)處理算法消除這些回聲,消除回聲的線性部分和非線性部分。有電話的年頭就有回聲,早期是線路回聲,都是線性的,很好處理,一個(gè)自適應(yīng)濾波器,搞定了。
  回聲消除的算法算算也有幾十年了,為什么今天還要研究?不是搞定了嗎,一個(gè)自適應(yīng)濾波就搞定了。不是的,回聲問(wèn)題和設(shè)備緊密相關(guān)。一個(gè)回聲消除算法的設(shè)計(jì)實(shí)現(xiàn)和其他算法設(shè)計(jì)實(shí)現(xiàn)有很大的區(qū)別,因?yàn)樗驮O(shè)備緊密相關(guān),和系統(tǒng)狀態(tài)緊密相關(guān)。早期,GIPS和某些AEC算法提供公司,通常設(shè)計(jì)AEC模塊的時(shí)候,都是給固定電話和移動(dòng)電話設(shè)備設(shè)計(jì),是給定的一款設(shè)備,也就是說(shuō),芯片廠商設(shè)計(jì)公版硬件,找合作伙伴或是自己設(shè)計(jì)AEC模塊,然后針對(duì)該款設(shè)備調(diào)試AEC參數(shù),調(diào)好之后就不變了,以后所有該款設(shè)備的出貨都用這組參數(shù),一旦換了設(shè)備,軟件要重新調(diào)。當(dāng)初GIPS,SpritDSP就是做這些事情的公司。如果有人參與過(guò)手機(jī)出廠的回聲消除設(shè)計(jì),你就知道每款手機(jī)的回聲消除參數(shù)都不同。
  那么為什么回聲消除為什么和手機(jī)設(shè)備關(guān)系這么大呢?是信號(hào)特性決定的,回聲是聲音經(jīng)過(guò)揚(yáng)聲器傳導(dǎo)到mic,經(jīng)過(guò)了多少路徑就被處理多少次。通常手機(jī)由于聲腔的原因,沒(méi)辦法設(shè)計(jì)的音量很大所以當(dāng)你放大音量的時(shí)候,如果是10格調(diào)整的音量放大器,前5格還是線性放大,5格以上就是非線性放大,這是揚(yáng)聲器第一級(jí)處理。聲音從外部傳給mic,經(jīng)過(guò)空氣和手機(jī)殼,設(shè)備殼的特性的傳導(dǎo)作用產(chǎn)生第二級(jí)的非線性影響。不同的手機(jī)殼,鐵殼,塑料殼,甚至手機(jī)殼發(fā)熱導(dǎo)致聲傳導(dǎo)特性不一樣,都會(huì)影響聲音傳導(dǎo)的處理,導(dǎo)致回聲消除算法不一樣。我們就遇到過(guò),一套收回聲消除算法,換不換殼,就能決定工不工作。這是手機(jī)。還有pc,如果pc外接音箱,音箱一般多少都會(huì)自帶功放,又是非線性放大。設(shè)備mic的位置也緊密相關(guān),早期有一款thinkpad,mic和speaker離的非常近,極其難處理。談來(lái)談去,好像都是非線性放大的問(wèn)題嘛,是的,線性的東西是科學(xué),非線性的東西是藝術(shù)?梢哉f(shuō),設(shè)備的差異性導(dǎo)致非線性問(wèn)題,非線性信號(hào)的處理是回聲消除技術(shù)的第一個(gè)攔路虎。
  非線性回聲問(wèn)題是不是全部呢?不是的。我前面說(shuō)了,回聲消除除了和設(shè)備有關(guān),還和系統(tǒng)有關(guān)和系統(tǒng)有什么關(guān)系,回聲消除兩大模塊,自適應(yīng)濾波和非線性處理,一個(gè)是線性處理,一個(gè)是非線性處理。前面說(shuō)了非線性處理,線性處理部分還有問(wèn)題,自適應(yīng)濾波前置第一個(gè)模塊就是延時(shí)搜索,其實(shí)WebRtc本身的延時(shí)搜索技術(shù)是非常先進(jìn)的,是由這個(gè)領(lǐng)域的大牛Keilgn大師設(shè)計(jì)的專利技術(shù)。但是大師東西雖好,但是有個(gè)依賴,延時(shí)估計(jì)要在一定范圍內(nèi)估計(jì),就是要有一個(gè)預(yù)先設(shè)計(jì)的值,如果在一個(gè)很大的范圍內(nèi)搜索,會(huì)極大消耗CPU資源。而這個(gè)預(yù)設(shè)的delay值通常不準(zhǔn),為什么不準(zhǔn)呢?因?yàn)榘沧肯到y(tǒng)線程調(diào)度設(shè)計(jì)不是很實(shí)時(shí)導(dǎo)致。一旦資源搶占,會(huì)在安卓底層buffer產(chǎn)生莫名的延時(shí)導(dǎo)致delay不準(zhǔn)。還是那個(gè)問(wèn)題,每款手機(jī)甚至每個(gè)手機(jī)都不一樣。我們遇到過(guò)那種狀況,某國(guó)內(nèi)手機(jī)品牌,不同款手機(jī)delay不準(zhǔn),同款手機(jī)不同子款比如(帶不帶s)。同款手機(jī)不同批次,delay不同,同款手機(jī)同一批次不同時(shí)間測(cè)試delay都不同。如何拿到穩(wěn)定的低延時(shí)的聲音信號(hào),為此,谷歌專門有個(gè)一視頻教程。無(wú)奈,安卓手機(jī)的碎片化和私人裁剪導(dǎo)致這個(gè)問(wèn)題無(wú)法一致性解決。
  那么Agora怎么做的呢,Agora的回聲消除技術(shù),發(fā)展到今天,已經(jīng)是第四代回聲消除技術(shù)。
  我們的第三代回聲消除技術(shù),通過(guò)逐個(gè)機(jī)型的適配。累計(jì)適配了幾百款機(jī)型,而我們的第四代“免”適配技術(shù)保證我們實(shí)現(xiàn)4000款機(jī)型的適配。有人問(wèn),你前面說(shuō)了那么多設(shè)備特性問(wèn)題,要適配要適配,怎么到這里又不用適配了呢。這不是矛盾嗎。我告訴大家,不矛盾。第一,我們的“免”適配,免帶一個(gè)小引號(hào)。為什么,我們的免適配和適配相互配合的,適配的機(jī)型,效果更好。不適配的機(jī)型是公版算法,基本也沒(méi)有大問(wèn)題,一般不會(huì)出現(xiàn)整句回聲。只會(huì)間或的出現(xiàn)小回聲,比如2分鐘1次,或是10分鐘1次的殘留回聲。很小的回聲也會(huì)有,不想適配過(guò)的手機(jī),你完全聽(tīng)不到回聲。適配的機(jī)型,我們有整套測(cè)試方法驗(yàn)證,免適配的機(jī)型,我們依靠線上數(shù)據(jù)的反饋,判斷“免”的效果。也正是依賴我們線上數(shù)據(jù)的反饋,我們才能做到“免”適配。如果線上數(shù)據(jù)反映效果不好,我們會(huì)嘗試聯(lián)系用戶和采購(gòu)機(jī)型進(jìn)行適配。正是因?yàn)槲覀兂浞诌m配了足夠多的機(jī)型,接觸過(guò)各式各樣的回聲消除技術(shù)和歷史才有這個(gè)把握掌握開發(fā)進(jìn)階技術(shù)。如果“免”適配技術(shù)無(wú)法滿足,立刻有適配技術(shù)補(bǔ)上。結(jié)合我們網(wǎng)絡(luò)傳輸?shù)膬?yōu)勢(shì),“免”適配和適配互相配合,助力我們實(shí)現(xiàn)很好的回聲消除效果。當(dāng)然回聲消除只是我們APM引擎的一部分。在APM里,還有降噪技術(shù),單麥克降噪雙麥克降噪,我們?cè)趥(gè)別機(jī)型上開啟了雙mic降噪功能。還有增益控制技術(shù),如何控制音量不會(huì)忽高忽低。還有噪聲環(huán)境下的音質(zhì)增強(qiáng)等等。時(shí)間原因,APM這塊,我沒(méi)法一一展開。
  2.測(cè)試評(píng)估
  第二個(gè)問(wèn)題,我分享下我們高清音頻通信系統(tǒng)的測(cè)試評(píng)估方法,我們的評(píng)估體系有三個(gè)層次:
  第一層次,客觀測(cè)試。我們把手機(jī)出廠測(cè)試和VOIP測(cè)試相結(jié)合,提出了我們的測(cè)試方法、這個(gè)測(cè)試方法是ITU、3GPP、ETSI或是電信運(yùn)營(yíng)商要求測(cè)試的標(biāo)準(zhǔn)通信測(cè)試的交集?梢哉f(shuō),按照這套方法,我們經(jīng)常會(huì)去泰爾實(shí)驗(yàn)室做客觀測(cè)試。可以說(shuō),國(guó)內(nèi)我們是第一個(gè)互聯(lián)網(wǎng)廠家把這套測(cè)試用在云服務(wù)標(biāo)準(zhǔn)上的。
  第二個(gè)層次,主觀測(cè)試。因?yàn)榭陀^測(cè)試只是一個(gè)基本測(cè)試,很多手機(jī)出廠都做,但是出廠之后還是有很多很多問(wèn)題,尤其對(duì)我們這樣的全平臺(tái)多機(jī)型通信引擎,只做客觀測(cè)試是不夠的,所以我們定義出很多細(xì)的標(biāo)準(zhǔn),比如,聲音質(zhì)量、卡、失真、回聲情況、雙講情況、是否有切音、延時(shí)等等。安排測(cè)試人員,對(duì)海量機(jī)型,逐個(gè)機(jī)器逐個(gè)機(jī)型的去聽(tīng),去感受我們音頻的效果。
  第三個(gè)層次,線上測(cè)試。也就是線上用戶的使用反饋,我們兩個(gè)Demo APP,一個(gè)就是我們的Beckon,可以在AppStore搜索到,這個(gè)APP是我們用來(lái)做實(shí)驗(yàn)和演示的。用戶可以體驗(yàn)Beckon的效果,我們收集用戶的反饋,判斷我們音頻系統(tǒng)的質(zhì)量。
  通過(guò)這三個(gè)層次的測(cè)試,我們能保證提供最好的音頻通信引擎。高清音頻通信引擎,整個(gè)通信系統(tǒng)都是32khz音頻采樣頻率,對(duì)系統(tǒng)的ADM,APM,ACM,ANM要求的處理算法都針對(duì)32Khz。可以說(shuō),我們比通信標(biāo)準(zhǔn)更早的把32Khz代入實(shí)際應(yīng)用,今天VoLTE還沒(méi)有普及全高清音頻傳輸系統(tǒng),而我們做到了。
分享到: 收藏

專題