国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

游戲語音視頻SDK如何解決回聲消除難題

新聞 Android
音視頻社交將是社交網絡的發展趨勢,畢竟音視頻才是人類最自然的社交方式。在自然的社交環境中,回聲是十分影響溝通體驗的。而回聲消除一直是音視頻技術的難點。

 社交網絡一路走來,先是文字 + 表情,接著是圖片 + 短視頻,現在是音視頻社交強勢崛起并成為潮流的時代。音視頻社交將是社交網絡的發展趨勢,畢竟音視頻才是人類最自然的社交方式。在自然的社交環境中,回聲是十分影響溝通體驗的。而回聲消除一直是音視頻技術的難點。

游戲語音就是音視頻社交在游戲領域的一個典型的應用。如果你不希望討厭戴耳機的用戶放棄你的游戲,那么在游戲實時語音中實現回聲消除是必須的。

無論是競技類還是休閑類的游戲,游戲實時語音都成了標配。競技類的游戲,包括 MMORPG、MOBA、和 FPS,需要快節奏和高頻率的團隊協同,游戲語音就像戰時通訊裝備一樣必不可少。休閑類的游戲,包括棋牌和狼人殺,需要慢節奏但是零距離的在線社交,玩家在通過游戲建立的社交紐帶中進行多人實時聊天,游戲實時語音讓玩家們像坐在同一個房間玩牌一樣。

在業界,回聲消除技術是公認難啃的硬骨頭。它本質上是一個復雜的數學問題的工程化。音頻工程師往往是數學或者物理專業而不是計算機專業出身的,沒有過相關經驗的工程師根本就無從下手。回聲消除技術做得比較好的產品有 Tencent QQ 和 Microsoft Skype,開源的項目有 WebRTC 和 Speex。在這些開源項目之前,回聲消除技術是大廠的獨門武藝,其它團隊只能靠自己一點一滴地摸索積累。在這些開源項目之后,WebRTC 和 Speex 提供開源的 AEC 模塊,成為業界不錯的教材。

AEC 的原理

回聲消除的原理很多文章介紹過,這里只簡單介紹筆者在工作中的實踐。簡單地來說,遠端的聲音信號首先通過揚聲器播放出來,然后在房間中經過多個傳播和反射路徑,最后和近端的聲音一起被麥克風采集進去。如果沒有做回聲消除處理,那么遠端就會把重新采集進去的遠端聲音信號播放出來,而且和原始的遠端聲音有一定的延遲時間。這就是回聲產生的原理。

要消除回聲,其實真的很難。這有點像把紅墨水倒進藍墨水里,混合在一起,然后要求把紅墨水從藍墨水中分離出來。對于采集端來說,無論是近端的聲音,還是揚聲器播放出來的聲音,都是從空氣中無差別地采集到的聲音。對機器來說,遠端信號播放出來的聲音和近端的聲音是沒有任何區別的,就像對水來說紅墨水和藍墨水沒有區別一樣。回聲消除的工作就是要把沒有任何區別的遠端回聲和近端聲音分離。這項工作其實比想象中要難得多。

幸運的是,我們并非沒有任何辦法可以找到遠端回聲和近端聲音的邊界。

遠端的聲音信號和回聲是相關的。也許有朋友會一拍腦袋煥然大悟地說:那就直接把遠端聲音從采集到的聲音中減掉就可以了。然而事情并沒有那么簡單。

遠端的聲音信號并非等同于回聲。遠端的聲音從揚聲器播放出來,到被采集端采集,經歷過揚聲器 - 房間 - 麥克風(Loudspeaker-Room-Microphone,LRM)這樣的回聲饋路。在 LRM 回聲饋路中傳播的時候,遠端聲音一方面經過多次反射,另外一方面經過多次疊加,最后變得和遠端聲音信號有差別了。我們把這個差別用一個函數來表示:

fe=f(fs)

其中,

fs=far-end signal(遠端信號);

fe=far-end echo (遠端回聲);

如果能夠對這個函數求解,那么就可以根據遠端聲音信號和遠端回聲之間的相關性進行建模。這個模型是對回聲饋路 LRM 的模擬,會高度逼近回聲饋路 LRM。

等到這個模型穩定時,輸入遠端聲音信號 fs,就可以輸出高度接近遠端回聲的信號 fe。通過濾波器生成反相的信號,和采集到的聲音信號進行疊加,就可以把回聲信號消除掉。這就是回聲消除 AEC 的基本原理。

這個函數求出來的解不大可能和遠端回聲完全一致,只能高度逼近。該函數求出來的解和遠端回聲越逼近,回聲消除的效果就越好。

靜音、單講和雙講

雖然實時語音的通話是雙工模式,但是可以分為不同的情形:靜音、單講和雙講。針對不同的情形要采取不同的回聲消除策略。

1)靜音

即沒有人說話的情形。

在語音段才需要做回聲消除,在非語音段不會有回聲,不需要做回聲消除,甚至不需要發送語音信息,從而可以降低碼率,節約帶寬成本。

因此,準確探測語音活動十分重要。語音的探測算法叫 VAD(Voice Activity Detection)。不同的廠商有不同的 VAD 實現方法。我們是利用基音周期實現 VAD,有效地提高 VAD 判斷的準確性,避免將非語音段誤判為語音段。

2)單講

即只有遠端說話的情形。

由于只有遠端說話,從麥克風采集進來的語音信號只包含遠端的回聲,而不包含近端的語音。單講情形下的回聲消除相對比較容易處理,可以采取比較激進的處理策略。

如果確定單講是高概率事件的情況下,可以直接地把所有語音信號都干掉,然后適當地填充舒適噪音。一般來說,在單講情形下,用線性自適應濾波器跟蹤回聲饋路,可以很好地消除回聲,大概能夠抑制掉 18dB 的回聲。

3)雙講

有多方同時說話的情形。

由于有多方同時說話,從麥克風采集進來的語音信號就包含了遠端的回聲和近端的語音,兩者混合在一起。雙講情形下的回聲消除就十分困難:一方面要保護近端的語音信號不被損傷,另外一方面還要盡量地把回聲消除干凈。

這里不但有“紅墨水藍墨水分離”的難題,而且還有“投鼠忌器”的困境。一般來說,在遠端回聲比近端語音要高大概 6dB~8dB 的情況下,如果要把遠端回聲消除干凈,那么肯定會或多或少地損傷到近端語音。

另外,如果遠端回聲比近端語音要高出 18dB 以上,比如說揚聲器離麥克風太近,遠端回聲把近端語音完全掩蓋掉了,那么回聲消除的效果肯定是不好的。這種情形下,可以采取比較激進的策略,把遠端回聲和近端語音一起干掉,然后適當地填充舒適噪音。

因此,回聲消除模塊要有能力區分這三種情形,才能針對各種情形采取不同的算法。通過 VAD 可以區分非語音段和語音段。如何區分單講和雙講的方法將在下面討論。

AEC 的實現

回聲消除主要包含兩個步驟:線性自適應濾波和非線性處理。

線性自適應濾波就是對 fe=f(fs) 求解,建立遠端回聲的語音模型,進行第一輪回聲消除。

非線性處理又分為兩個步驟:殘留回聲處理和非線性剪切處理。殘留回聲處理進行第二輪回聲消除,處理殘留回聲;非線性剪切處理就是對衰減量達到閾值的語音信號進行比較激進的剪切處理。

線性自適應濾波和非線性剪切處理在學術論文和開源項目中能找到東西學習。殘留回聲處理就很難,一般都是要靠團隊自行摸索、積累和創新。正是因為如此,語音技術的門檻才如此的高。

(點擊放大圖像)

回聲消除的原理與實現

線性自適應濾波

以遠端聲音信號和遠端回聲的相關性為基礎,建立遠端回聲的語音模型,利用它對遠端回聲進行估計,目的是獲得對遠端回聲盡量逼近的估計。我們可以把回聲饋路 LRM 看作一個“環境濾波器”。

經過它的處理,遠端聲音信號被變成遠端回聲。回聲消除就是要構建一個“算法濾波器”,基于對遠端回聲的語音模型,不斷地調整該濾波器的系數,使得估計值更加逼近真實的回聲。估計值越逼近真實回聲,回聲消除效果就越好。

自適應濾波器收斂后得到的就是需要求解的回聲饋路函數 fe=f(fs)。當濾波器收斂穩定之后,輸入遠端聲音信號 fs,就可以輸出相對準確的對遠端回聲信號的估計值 fe。把采集到的信號減去遠端回聲信號的估計值 fe,就得到實際要發送的語音信號。

實現線性自適應濾波器有兩個難點:

  1. 快速收斂

    在收斂階段,采集到聲音信號要求只有遠端的回聲信號,不能混有近端的語音信號。近端的語音信號和遠端的參考語音信號沒有相關性,會對自適應濾波器的收斂過程造成擾亂。

    因此,我們的策略是讓自適應濾波器收斂的時間盡量地短,短到收斂過程的時間段里采集進來的信號只有遠端的回聲信號,這樣自適應濾波器收斂的效果就會很好。在收斂好之后,濾波器就穩定下來了,就可以用來過濾遠端的回聲信號了。

  2. 動態自適應

    在收斂好穩定下來以后,自適應濾波器還要隨時自動適應回聲饋路的變化。自適應濾波器要能夠判斷回聲饋路是否發生變化,并且能夠重新學習和對其進行建模,不斷地調整該濾波器的系數,進入一個新的收斂過程,最后快速地逼近新的回聲饋路。

    這種情況在手游的場景中是十分常見的,用戶拿著手機邊走邊玩游戲,游戲語音周遭的回聲饋路時刻發生著變化,自適應濾波器就要時刻自動重新收斂來適應新的回聲饋路。

這兩個難點是一對矛盾的特征,要求自適應濾波器一方面要能夠快速收斂后保持系數高度穩定,另外一方面要能夠隨時保持更新狀態跟蹤回聲饋路的變化。

非線性處理

殘留回聲處理

通過自適應濾波器來消除回聲,并不能百分之一百把回聲消除干凈,還需要進一步消除殘留的回聲。

一般來說,殘留回聲消除的策略是利用自適應濾波器處理后的殘留回聲與遠端參考語音信號的相關性,進一步消除殘留回聲。相關性越大,說明殘留回聲越多,需要對殘留回聲進一步消除的程度越大;反之,相關性越小,說明殘留回聲較少,需要對殘留回聲進一步消除的程度越小。

因此,首先要通過計算殘留回聲與參考信號的相關矩陣,得到一個反映消除程度的衰減因子;然后將殘留回聲乘以衰減因子,從而進一步消除殘留回聲。

在線性自適應濾波做完了以后,可以利用殘留回聲和麥克風采集到的遠端回聲信號的相關性來檢測是處于單講還是雙講狀態。根據單講還是雙講狀態,可以進一步調整衰減因子。

如果處于遠端單講狀態,因為近端沒有聲音信號(沒人說話),可以盡量多地抑制回聲,讓衰減因子盡量地小;如果處于雙講狀態,因為線性自適應濾波器是在盡量不損傷近端語音音質的前提下消除回聲,回聲抑制量不會太大,所以衰減因子相對較大。

消除殘留回聲的算法難度甚高。在論文或者開源項目中甚少有可參考的東西,各家廠商都是通過私有的算法來實現的,甚至很多廠商都選擇不實現。

非線性剪切處理

在完成了上述處理以后,其實剩下的回聲一般都比較小了,但不排除仍有一些殘留的可以感知的小回聲。為了進一步消除這些小回聲,要根據前面處理得到的衰減量來做進一步的抑制處理。

在這里要為衰減量設定一個閾值。一般來說,這個衰減量閾值要設定得比較保守(比較高)。

如果衰減量達到或者超過設定的閾值,就表明回聲消除量比較大,采集進來的語音信號很可能全部都是回聲信號,那么就直接將語音信號全部消除掉,并填充舒適噪聲,防止聲音聽感起伏。能達到那么大的衰減量,一般是處于遠端單講狀態,或者遠端回聲信號要遠遠大于近端語音信號的雙講狀態。

正常的雙講狀態下,為了保護近端語音的音質,自適應濾波器是不會做大幅的回聲消除的。因此,只要衰減量達到或者超過設定閾值,把采集到的語音信號全部消除掉是不會影響正常聽音效果的。

如果衰減量沒有超過設定的閾值,那么就不要進一步做回聲消除了。這種情形可能是雙講狀態,要保護本地語音的音質,避免本地語音被當成回聲誤殺。

業界一般有兩種做法:一種是允許對近端聲音有些許損傷也要把遠端回聲消除干凈,另外一種是允許保留些許遠端回聲也不要對近端聲音造成損傷。如果過分消除回聲,就會造成斷續的聽音感覺。回聲消除就是要在這兩種做法之間找平衡點。

筆者在工作中的實踐表明,在音視頻社交行業,回聲消除是客戶高度關注的一個技術特征。與此同時,回聲消除也是音視頻社交中最有難度的技術,沒有之一。即使是王者榮耀這種頂級的游戲,也十分重視回聲消除的效果。在以用戶體驗為生命線的游戲行業,特別在手游做得越來越重的今天,回聲消除技術做得好不好,往往決定了用戶是否繼續玩你的游戲。

作者

冼牛,即構科技 Zego 技術專家,北京郵電大學計算機碩士,香港大學工商管理碩士,多年從事語音視頻云服務技術研究,專注互動直播技術和實時游戲語音。

【特別推薦】

視頻直播一路走來,經歷了怎樣的變革?

在線抓娃娃、直播答題、小程序直播、AI等風口又會怎樣推動直播技術的發展?

3月17日,即構科技主辦的ZEGO Meetup,將攜手直播行業的4位技術大咖,和大家一起暢談視頻直播的技術與未來。這里有:

《視頻直播的這十年》

《連麥互動直播 X 微信小程序》

《秀色直播的技術實踐之路》

《AI賦能直播:反欺詐技術為直播平臺保駕護航》

干貨滿滿,就等你來!

活動報名請戳:http://www.huodongxing.com/event/5429947400400

責任編輯:林師授 來源: 51CTO
相關推薦

2017-12-22 22:33:04

游戲語音音視頻社交

2018-03-07 22:08:16

游戲語音

2017-12-22 22:13:22

語音視頻SDK延遲

2017-12-22 21:06:55

語音視頻SDK聽聲辨位

2017-11-09 18:12:07

sdk

2015-07-01 09:47:38

2017-09-13 16:12:12

2022-09-21 11:48:40

端到端音視頻測試用戶體驗

2024-10-15 13:30:03

2017-11-14 17:57:55

抓娃娃SDK

2017-11-03 11:24:56

首屆開發者大賽即構科技免費SDK

2018-12-20 15:38:03

UCloud視頻SDK直播

2011-09-07 10:05:23

飛視美視頻會議低碳

2018-11-14 18:00:18

自動駕駛安全人工智能

2023-03-03 15:40:43

抖音視頻編碼器

2022-08-29 10:39:32

FFmpeg多媒體框架開源

2013-03-05 14:03:01

傲游云瀏覽器
點贊
收藏

51CTO技術棧公眾號

日韩爱爱小视频| 欧美好骚综合网| 久久免费成人精品视频| 美女网站一区| 亚洲国产一区二区精品视频| 中文字幕精品一区| 毛片网站在线免费观看| 久久在线观看视频| 日韩午夜在线电影| 亚洲欧美自拍另类日韩| 日韩一二三区不卡| 国产亚洲一区| 精品少妇人欧美激情在线观看| 亚洲综合一区二区精品导航| 忘忧草在线日韩www影院| 国产精品久久久久久久av电影| 国内成人自拍视频| 你懂的视频在线| 欧美精品18videos性欧美| 久久视频一区| 亚洲福利二区| 久久久亚洲精选| 国产综合色在线视频区| 巨骚激情综合| 5278欧美一区二区三区| 久久99国产乱子伦精品免费| 免费黄色片在线观看| 久久久久久久久久亚洲| 国产一区二区0| 激情影院在线观看| 午夜精品久久久久久毛片| 日本黄色免费在线| 伊人狠狠色j香婷婷综合| 亚洲一区av在线| 精品国产欧美一区二区五十路 | 青椒成人免费视频| 亚洲天堂导航| 黄色一级大片免费| 56国语精品自产拍在线观看| 日日欢夜夜爽一区| 神马日本精品| www 成人av com| 亚洲白虎美女被爆操| 亚洲精品在线一区二区| 久久伊人免费视频| 国产精品美女诱惑| 99re免费99re在线视频手机版| 免费高清视频日韩| 中文字幕在线观看播放| 激情久久99| 性xx色xx综合久久久xx| 91视频精品在这里| 欧美一区午夜视频在线观看| 欧美在线视频一二三| 一区二区三区精品国产| 亚洲欧美日韩国产一区二区| 日韩久久不卡| 欧美三级理论片| 成人福利片网站| 一区二区三区电影大全| 91在线观看| av色图一区| 免费影视亚洲| 国产精品久久久久久久久久辛辛 | 欧美中文字幕视频| 日韩在线观看免费高清| 深夜福利91大全| 国产精品91久久久| 国产精自产拍久久久久久蜜| 欧美国产亚洲精品久久久8v| 久久久噜久噜久久综合| 色综合天天综合网国产成人网| 国产精品一区二区久久精品| 国产精品高潮呻吟久久av野狼| 日韩三级视频中文字幕| 国产成人午夜视频| 成人在线免费观看91| 欧美日韩中出| 欧美欧美全黄| 毛片在线视频| 精品乱码一区二区三区| 久久免费精品视频| 久久久99免费视频| 在线免费观看羞羞视频一区二区| 青青草国产成人a∨下载安卓| 国产传媒在线| 午夜裸体女人视频网站在线观看| 涩涩av在线| 一区二区三区日本视频| 亚洲综合资源| 成人一区二区| 美国一区二区三区在线播放| 国产ts人妖一区二区| 亚洲欧洲99久久| 色天使色偷偷av一区二区| 五月激情综合色| 亚洲一区二区欧美激情| 国产成人午夜精品5599| 国产一级久久| 亚洲影视综合| 久久九九国产| 国产精品v日韩精品v欧美精品网站| 欧美重口另类| 精品一区二区三区免费看| 超碰成人av| av网站在线免费看推荐| 福利成人在线观看| 91成人抖音| 日本高清成人vr专区| 亚洲欧美自拍另类日韩| 欧美aⅴ在线观看| 女人另类性混交zo| 一级毛片免费在线| 国产一区二区不卡视频在线观看| 国自产精品手机在线观看视频| 久久视频在线观看中文字幕| 精品视频无码一区二区三区| 在线观看麻豆| 日韩一级电影| 国产激情视频一区二区三区欧美 | 992tv在线影院| 琪琪五月天综合婷婷| 亚洲精品第一国产综合野草社区| 91电影在线播放| 亚洲电影有码| 亚洲精品555| 美国十次综合久久| 国内黄色精品| 国产主播精品| 欧美aaaaa成人免费观看视频| 亚洲精品极品| 欧美日韩午夜在线| 精品国产一区二区三区忘忧草| 972aa.com艺术欧美| 亚洲永久免费av| 在线观看中文字幕亚洲| 国产一区二区高清视频| 色综合天天狠天天透天天伊人| 国产精品v日韩精品| 日本中文视频| 99久久香蕉| 国产精品毛片大码女人| 有码中文亚洲精品| 天天久久人人| 九九99玖玖| 黄色视屏网站在线免费观看| 国产精品毛片久久久| 国产成人精品影视| 黑人精品xxx一区一二区| 精品欧美一区二区三区精品久久| 久久青草精品视频免费观看| 亚洲日本一区二区三区在线不卡| 国产激情二区| 久久久一本精品| 欧美va天堂| 亚洲视频一区二区在线观看| 日韩精品在线免费| 国产精品青青在线观看爽香蕉| 国产视频在线观看一区| 久久最新免费视频| 亚洲黄色一区| 国产欧美日韩三级| 欧美三级午夜理伦三级中视频| 亚洲人成电影网站色…| 91免费看片在线| 鲁一鲁一鲁一鲁一av| 中文在线资源| 天堂在线亚洲视频| 91国产免费看| 国产亚洲精品自在久久| 欧美xx网站| 国产欧美日韩精品一区二区免费| 国内自拍一区| 国产一区二区三区网| 国产精品三级av在线播放| 日韩午夜在线影院| 日本一区二区三区在线播放| 欧美日韩免费高清| 亚洲乱码一区二区三区| 欧美日韩高清在线一区| 黄网免费入口| 亚洲人成网站在线在线观看| 国产精品美日韩| 日本一区二区在线视频| 日本欧美韩国| 青青草国产精品亚洲专区无| 日韩国产一区久久| 91丨九色porny丨蝌蚪| 国产视频一视频二| 二区三区在线播放| 国产精品一区二区av交换| av中文字幕在线不卡| 精品国产中文字幕第一页| 亚洲小说欧美激情另类| 97香蕉超级碰碰久久免费的优势| 国产在线高清视频| 亚洲一二三区视频在线观看| 天堂一区在线观看| 日韩一级免费| 亚洲精品久久久久久久久久久久久 |