您當(dāng)前的位置是:  首頁 > 新聞 > 文章精選 >
 首頁 > 新聞 > 文章精選 >

實(shí)時(shí)語音視頻通話SDK如何實(shí)現(xiàn)聽聲辨位

2017-11-07 16:17:38   作者:冼牛   來源:CTI論壇   評(píng)論:0  點(diǎn)擊:


  通過聽聲音可以辨別聲源的位置,這是我們習(xí)以為常的生活認(rèn)知。從技術(shù)的角度來說,聽聲辨位其實(shí)真的一點(diǎn)都不簡單。我們?nèi)祟悜?yīng)該感謝上天的造化,賦予我們一雙巧奪天工的耳朵,讓我們可以毫不費(fèi)力地做到聽聲辨位。在語音視頻實(shí)時(shí)通信的世界里,要實(shí)現(xiàn)聽聲辨位,卻是要耗費(fèi)一番心思的事情。
  雙耳效應(yīng)
  關(guān)于人耳聽聲辨位的原理,這里不再贅述。有需要了解的同學(xué)請(qǐng)自行搜索“雙耳效應(yīng)”問度娘。簡單地來說,聽聲辨位的基礎(chǔ)是左右耳朵從同一聲源獲得的聲音信息有細(xì)微的差別:
  1. 到達(dá)左右耳朵的時(shí)間不一樣
  2. 在左右耳朵空間上的相位不一樣
  3. 音色(頻率)不一樣
  4. 音級(jí)(波幅)不一樣
  人腦和雙耳就是根據(jù)這兩組聲音信息的細(xì)微區(qū)別,判斷出聲源的位置的。
  人類的雙耳在自然環(huán)境進(jìn)行聽聲辨位,已經(jīng)有過數(shù)百萬年的實(shí)戰(zhàn)經(jīng)驗(yàn),以至于我們認(rèn)為這是理所當(dāng)然的事情。然而,隨著科技的發(fā)展,我們習(xí)以為常的認(rèn)知遇到了突而其來的挑戰(zhàn)。
  二十世紀(jì)初遇到的第一個(gè)有代表性的挑戰(zhàn)是留聲機(jī)。立體聲技術(shù)較好地為模擬聲音解決了立體音效的問題;A(chǔ)的立體聲技術(shù)是采用兩個(gè)麥克風(fēng)進(jìn)行拾音,獲得兩組波形獨(dú)立的聲音信號(hào),然后進(jìn)行獨(dú)立的處理,在播放的時(shí)候采用兩個(gè)揚(yáng)聲器獨(dú)立地播放這兩組聲音信號(hào)。這樣,從播放端的角度來說,用戶聽到的是聲音本身的立體音效和用戶周遭空間的立體音效的疊加,能夠達(dá)到聽聲辨位的效果。
  二十一世紀(jì)的前二十年,語音視頻實(shí)時(shí)通信遇到了移動(dòng)互聯(lián)網(wǎng),立體聲技術(shù)也遇到技術(shù)限制。這些技術(shù)限制其實(shí)和應(yīng)用場景有關(guān)系。
  聽聲辨位的應(yīng)用場景
  第一個(gè)要提的是游戲場景,如果不是最重要,也是最重要之一。游戲可以分為競技類的和休閑類的。兩類游戲?qū)β犅暠嫖坏囊笠膊槐M相同。
  競技類的游戲,包括眾多玩家耳熟能詳?shù)腗MORPG、MOBA和FPS。玩過CS的同學(xué)都知道,在虛擬場景中是能聽到周遭其它玩家的腳步聲的,聽聲辨位很多時(shí)候比視野更加有效地幫助玩家判斷其它玩家在哪里,這往往是殺敵制勝和脫險(xiǎn)保命的關(guān)鍵手段。現(xiàn)在實(shí)時(shí)游戲語音技術(shù)可以讓玩家在CS中和隊(duì)友一邊并肩作戰(zhàn)一邊對(duì)話溝通。如果玩家通過游戲語音通話判斷出隊(duì)友的位置和通過游戲系統(tǒng)聲音判斷出隊(duì)友的位置不一致,以至于造成判斷錯(cuò)誤,在分秒必爭的虛擬槍戰(zhàn)中,這可是致命的誤導(dǎo)。要讓游戲系統(tǒng)聲音反映的虛擬位置和游戲語音通話反映的虛擬位置一致,其實(shí)是蠻難的。游戲系統(tǒng)和游戲語音SDK是完全獨(dú)立和解耦的,游戲系統(tǒng)的聲音產(chǎn)生涉及到游戲服務(wù)器和客戶端的協(xié)同,游戲語音SDK的語音是從遠(yuǎn)端用戶傳輸過來,考慮到兩個(gè)獨(dú)立系統(tǒng)和網(wǎng)絡(luò)傳輸,兩個(gè)者之間的步調(diào)要保持一致是十分有挑戰(zhàn)的任務(wù)。
  休閑類的游戲包括棋牌等人數(shù)較少節(jié)奏較慢的游戲,通過游戲語音邊玩邊聊天是一個(gè)剛性的社交需求。請(qǐng)各位閉眼想象,你和其它三個(gè)好友在線上打麻將,同時(shí)通過語音嘮叨家常。如果你能夠通過聽左、右和前方三個(gè)人的聲音,分辨出他們就像是坐在你左、右和前方三個(gè)位置,音效體驗(yàn)一下子就爆表了。狼人殺游戲更加不在話下,這種完全依托語音會(huì)話建立起來的社交游戲,如果能夠通過聽聲音就能辨別出講話的人的方位,閉著眼睛去感覺,就像是一伙朋友圍著圓桌面對(duì)面的玩狼人殺游戲呢。
  第二個(gè)對(duì)聽聲辨位有需求的場景是在線教育的小班課堂。舉一個(gè)比較具體的例子,在線少兒英語小班課,應(yīng)該是對(duì)線上互動(dòng)要求最高的一種在線課堂形態(tài),沒有之一。小朋友的注意力不容易集中,對(duì)課堂趣味性和互動(dòng)性的要求特別高。如果小朋友能夠通過聽聲感覺到老師就坐在正前方講臺(tái)的位置,其它小朋友坐在前后座位各個(gè)方位,由遠(yuǎn)而近多個(gè)距離層次都有小朋友,就像是在真實(shí)的擺滿書桌的教室里面的聲音效果一樣,這樣無疑是大大增強(qiáng)了小朋友的注意力集中程度。
  其它的一些應(yīng)用場景,比如說語音社交、視頻社交和互動(dòng)直播,聽聲辨位的效果也會(huì)讓用戶感到驚艷。如果你加入houseparty的視頻聊天房間,能聽到參加趴踢的朋友分布在你前后左右的各個(gè)位置,那種沉浸式的聽音感覺會(huì)讓你像是整個(gè)人一下子投入到趴踢的人群中去。
  這些應(yīng)用場景即構(gòu)ZEGO都有豐富的客戶案例,即構(gòu)ZEGO的聽聲辨位技術(shù)能讓用戶在這些應(yīng)用場景里獲得360度空間感的聽聲體驗(yàn)。然而,客戶越來越苛刻的需求,驅(qū)使著即構(gòu)ZEGO不斷的去打磨和升級(jí)其聽聲辨位技術(shù),來給予用戶最優(yōu)的體驗(yàn)。
  移動(dòng)終端的處理能力分秒不停地飛速發(fā)展,5G的推出如果不出意外也會(huì)在2019年到來,加上VR/AR技術(shù)的日漸成熟,沉浸式的語音視頻實(shí)時(shí)互動(dòng)通信將會(huì)成為一種生活方式。當(dāng)你帶著VR頭顯,環(huán)顧360度都看到遠(yuǎn)端的朋友的視頻影像的時(shí)候,你是不是也期待他們的聲音聽起來也像是從他們看起來的那個(gè)位置傳過來一樣?到那時(shí)候,聽聲辨位技術(shù)也會(huì)成為這種生活方式的必備支柱。
  硬件條件的限制
  上面對(duì)應(yīng)用場景的展望和抒情有點(diǎn)太超前了,我們稍微回到2017年下半年的現(xiàn)實(shí)中來。雖然夢(mèng)想很美好,但是現(xiàn)實(shí)很殘酷,現(xiàn)在手機(jī)硬件條件還存在諸多限制。
  目前,絕大部分的手機(jī)采集聲音的麥克風(fēng)只有一個(gè)。當(dāng)然有朋友反對(duì)說,iPhone不是有好幾個(gè)麥克風(fēng)嗎?其實(shí)采集語音的麥克風(fēng)還是只有一個(gè),其它的麥克風(fēng)是用來做噪聲抑制的。一個(gè)麥克風(fēng)采集到的聲音就是單聲道的,不會(huì)產(chǎn)生立體聲的效果,也就是不會(huì)讓你聽聲音就能辨別出聲源的位置。
  目前,絕大部分的手機(jī)只有一個(gè)揚(yáng)聲器,只有少數(shù)的手機(jī)是支持立體聲的。這里要區(qū)別分一下,打電話的時(shí)候聽電話那個(gè)喇叭不是揚(yáng)聲器,點(diǎn)了免提鍵后手機(jī)不需要貼到耳朵邊的時(shí)候發(fā)出聲音的那個(gè)喇叭才是揚(yáng)聲器,播放音樂的時(shí)候發(fā)聲音的喇叭也就是揚(yáng)聲器。既然只有一個(gè)揚(yáng)聲器,那么不管聲音信號(hào)是不是立體聲的,播放出來的聲音效果都是單聲道的。在渲染的時(shí)候,應(yīng)用程序把聲音數(shù)據(jù)放到一個(gè)緩沖區(qū),操作系統(tǒng)把聲音數(shù)據(jù)取出來播放,如果只有一個(gè)揚(yáng)聲器的話,巧婦難為無米之炊,臣妾也表示辦不到,即使是立體聲信號(hào)也會(huì)被降級(jí)為單聲道播放。當(dāng)然,耳機(jī)線有左右兩個(gè)喇叭,插入耳機(jī)線以后,手機(jī)就支持立體聲播放了。
  單聲道虛擬成立體聲
  如果發(fā)送端采用外部采集,采集的設(shè)備有兩個(gè)麥克風(fēng),或者本身就是立體聲麥克風(fēng),那么采集進(jìn)來的聲音信號(hào)就是立體聲的。立體聲信號(hào)包含兩組獨(dú)立的波形,由于這兩組波形有相關(guān)性,可以一起編碼傳輸,在接收端解碼以后再獨(dú)立地渲染,最終獲得立體聲的效果。
  如果發(fā)送端采用手機(jī)的唯一麥克風(fēng),采集進(jìn)來的聲音信號(hào)就是單聲道的。如果要在接收端獲得立體聲的效果,就要把單聲道的聲音信號(hào)虛擬成立體聲的。不是說巧婦難為無米之炊嗎?這里也不完全是“無米”,畢竟還是有一組單聲道波形數(shù)據(jù)的。
  具體的做法是,首先對(duì)聲音傳播路徑進(jìn)行建模,然后輸入原始的波形數(shù)據(jù),還有距離d和角度a兩個(gè)參數(shù),模型會(huì)輸出兩個(gè)獨(dú)立的波形,代表左右聲道的聲音信號(hào)。這兩個(gè)波形和原始的波形作比較,在相位,音色和音調(diào)都有所調(diào)整,盡量地逼近原始波形在自然環(huán)境中傳播到用戶的左右耳朵后形成的兩個(gè)不同的波形。這兩個(gè)波形有相關(guān)性,因此一起編碼后的帶寬是小于每一個(gè)波形帶寬的兩倍。虛擬立體聲信號(hào)數(shù)據(jù)到達(dá)接收端以后,結(jié)果解碼就可以得到兩個(gè)獨(dú)立的波形聲音信號(hào)數(shù)據(jù)。如果是在手機(jī)揚(yáng)聲器播放出來,效果還是單聲道的,如果通過耳機(jī)播放出來,就能呈現(xiàn)出立體聲的效果,用戶可以聽出聲音的空間感,并且依此進(jìn)行聽聲辨位。
  把單聲道波形虛擬成兩個(gè)獨(dú)立的立體聲波形,是在目前移動(dòng)端硬件限制條件下的一個(gè)技術(shù)處理手段。虛擬立體聲的處理可以在發(fā)送端進(jìn)行,也可以在接收端進(jìn)行。在哪里進(jìn)行虛擬化,要看具體的場景需要。如果有混音的需求,也就是要把語音信號(hào)和背景音樂混合在一起的話,那么比較適合在發(fā)送端來做虛擬立體聲;如果沒有混音的需求,那么比較適合在接收端做虛擬立體聲。背景音樂一般是立體聲的,而且是在發(fā)送端輸入的。如果需要進(jìn)行混音,而混音必須要在發(fā)送端進(jìn)行,那么背景音樂和語音信號(hào)都要是立體聲才能對(duì)應(yīng)得混合。因此,虛擬立體聲必須要發(fā)送端完成,然后虛擬出來的語音立體聲才能和背景音的立體聲混合,混合好以后再把立體聲信號(hào)進(jìn)行編碼傳輸,最后到了接收端解碼以后就可以把立體聲播放出來。如果不需要進(jìn)行混音,那么可以把單聲道聲音信號(hào)直接編碼發(fā)送,接收端收到后進(jìn)行解碼,再把單聲道聲音信號(hào)虛擬成立體聲,這樣傳輸?shù)膸捑涂梢宰龅阶畹汀?/div>
  當(dāng)互動(dòng)直播遇到立體聲
  隨著硬件的快速更新?lián)Q代,在不遠(yuǎn)的將來,手機(jī)很可能會(huì)支持立體聲,擁有雙麥克風(fēng)(考慮到手機(jī)的物理尺寸較小,筆者嚴(yán)重懷疑雙麥克風(fēng)的效果)和雙揚(yáng)聲器。也許你會(huì)覺得這是普大喜奔的好事情,再也不用費(fèi)腦去搞虛擬立體聲了,然而有個(gè)現(xiàn)實(shí)要讓你心碎:即使手機(jī)支持立體聲,在進(jìn)行互動(dòng)直播或者互動(dòng)語音視頻通話的時(shí)候,手機(jī)依然只能采用單聲道采集,因此,還是要繼續(xù)搞虛擬立體聲,這是跑不掉的事情。為什么在互動(dòng)直播的時(shí)候只能采取單聲道而不能采取立體聲呢?下圖展示了使用立體聲手機(jī)進(jìn)行回聲消除的邏輯,大家看一下此圖就理解互動(dòng)直播不能采取立體聲的緣由了。
  參照上圖,我們看一下語音數(shù)據(jù)的是如何流動(dòng)的:
  • 遠(yuǎn)端的左右兩個(gè)麥克風(fēng)分別采集左右聲道的語音數(shù)據(jù);
  • 近端的左右兩個(gè)揚(yáng)聲器分別播放左右聲道的語音數(shù)據(jù);
  • 近端左邊的揚(yáng)聲器發(fā)出的聲音經(jīng)過回聲饋路會(huì)被近端左右的兩個(gè)麥克風(fēng)采集進(jìn)去;
  • 近端右邊的揚(yáng)聲器和#3同理;
  • 近端左邊的麥克風(fēng)采集進(jìn)來的聲音信號(hào)包括了左右兩個(gè)揚(yáng)聲器產(chǎn)生的回聲;
  • 近端右邊的麥克風(fēng)和#5同理;
  • 對(duì)左邊麥克風(fēng)采集的聲音進(jìn)行回聲消除的時(shí)候,除了參考遠(yuǎn)端左聲道聲音信號(hào)消除左邊揚(yáng)聲器產(chǎn)生的回聲,還要參考遠(yuǎn)端右聲道聲音信號(hào)消除右邊揚(yáng)聲器產(chǎn)生的回聲;
  • 對(duì)右邊的麥克風(fēng)采集的聲音進(jìn)行回聲消除和7同理。
  也就是說,對(duì)左邊麥克風(fēng)采集進(jìn)來的聲音要消除左右兩個(gè)揚(yáng)聲器產(chǎn)生的回聲,對(duì)右邊麥克風(fēng)采集進(jìn)來的聲音進(jìn)行回聲消除也同理,總共要進(jìn)行四次回聲消除,并且要從每一個(gè)麥克風(fēng)采集進(jìn)來的聲音信號(hào)里消除兩個(gè)揚(yáng)聲器造成的回聲,計(jì)算量一下子變成單聲道情形的四倍,復(fù)雜度更是遠(yuǎn)超四倍。同等條件下,立體聲回聲消除的效果比起單聲道回聲消除的效果差。目前業(yè)界的實(shí)踐表明,立體聲回聲消除的效果并不理想。因此,在涉及到互動(dòng)直播或者互動(dòng)語音視頻實(shí)時(shí)通話的場景,還是要使用單聲道采集和渲染比較能簡單而且能保障效果。
  結(jié)語
  聽聲辨位是人們?cè)谧匀画h(huán)境中習(xí)以為常的事情,語音視頻實(shí)時(shí)通信的愿景就是要在互聯(lián)網(wǎng)上完美地還原自然環(huán)境的通話場景,這也是即構(gòu)ZEGO孜孜不倦地追求的使命。隨著AR/VR的發(fā)展,沉浸式的語音和視頻消費(fèi)方式成為常態(tài),在進(jìn)行語音視頻實(shí)時(shí)通話的時(shí)候,人們也會(huì)要求能夠做到聽聲辨位,在游戲語音、語音社交、視頻社交、視頻會(huì)議和在線教育等場景,會(huì)有廣泛的需求和應(yīng)用。
  作者介紹
  冼牛(微信xianniu1216,郵箱noahxian@zego.im,電話13266561305),即構(gòu)科技資深語音視頻專家,北京郵電大學(xué)計(jì)算機(jī)碩士,香港大學(xué)工商管理碩士,多年從事語音視頻云服務(wù)技術(shù)研究,專注互動(dòng)直播技術(shù)、語音視頻社交和實(shí)時(shí)游戲語音。
【免責(zé)聲明】本文僅代表作者本人觀點(diǎn),與CTI論壇無關(guān)。CTI論壇對(duì)文中陳述、觀點(diǎn)判斷保持中立,不對(duì)所包含內(nèi)容的準(zhǔn)確性、可靠性或完整性提供任何明示或暗示的保證。請(qǐng)讀者僅作參考,并請(qǐng)自行承擔(dān)全部責(zé)任。

專題