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