新岳乱合集目录500伦_在教室里被强h_幸福的一家1—6小说_美女mm131爽爽爽作爱

免費(fèi)咨詢電話:400 180 8892

您的購(gòu)物車還沒(méi)有商品,再去逛逛吧~

提示

已將 1 件商品添加到購(gòu)物車

去購(gòu)物車結(jié)算>>  繼續(xù)購(gòu)物

您現(xiàn)在的位置是: 首頁(yè) > 免費(fèi)論文 > 行政預(yù)算管理論文 > 移動(dòng)設(shè)備VOIP實(shí)時(shí)通信軟件中的回聲延遲估算方法

移動(dòng)設(shè)備VOIP實(shí)時(shí)通信軟件中的回聲延遲估算方法

1 引 言
  在語(yǔ)音通信中,有一個(gè)很影響通話質(zhì)量的因素就是回聲?;芈暰褪侵刚f(shuō)話者通過(guò)通信設(shè)備發(fā)送給其他人的語(yǔ)音又重新又回到自己的聽(tīng)筒里的現(xiàn)象?;芈晻?huì)對(duì)說(shuō)話者產(chǎn)生嚴(yán)重的干擾,必須想辦法消除。一般,回聲分為兩種,即“電路回聲”和“聲學(xué)回聲”。“電路回聲”可以通過(guò)硬件設(shè)備的合理設(shè)計(jì)而消除,在此不作討論。最復(fù)雜和最難消除的應(yīng)該是所謂的“聲學(xué)回聲”?!奥晫W(xué)回聲”是指遠(yuǎn)端用戶的聲音從聽(tīng)筒出來(lái)以后,經(jīng)過(guò)空氣或其他的傳播媒介傳到近端用戶的話筒,再通過(guò)話筒錄音后又重新傳到遠(yuǎn)端用戶的聽(tīng)筒中形成的回聲。當(dāng)近端用戶的放音音量比較大而錄音設(shè)備和放音設(shè)備距離比較近時(shí)回聲尤其明顯?!奥晫W(xué)回聲”受近端用戶環(huán)境的影響,可能產(chǎn)生多路回聲,包括直接回聲和反射回聲,各個(gè)回聲的路徑不同,延遲也就不同,因而難以消除(如圖1)。
 ?。?聲學(xué)回聲消除器
  對(duì)于聲學(xué)回聲消除,常見(jiàn)的消除算法有2類,即回聲抑制(acoustic echo suppression)算法和聲學(xué)回聲消除(acoustic echo cancellation)算法。
  回聲抑制算法是較早的一種回聲控制算法?;芈曇种剖且环N非線性的回聲消除。它通過(guò)簡(jiǎn)單的比較器將準(zhǔn)備由揚(yáng)聲器播放的聲音與當(dāng)前話筒拾取的聲音的電平進(jìn)行比較,如果前者高于某個(gè)閾值,那么就允許傳至揚(yáng)聲器,而且話筒被關(guān)閉,以阻止它拾取揚(yáng)聲器播放的聲音而引起遠(yuǎn)端回聲。如果話筒拾取的聲音電平高于某個(gè)閾值,揚(yáng)聲器被禁止,以達(dá)到消除回聲的目的。由于回聲抑制是一種非線性的回聲控制方法,會(huì)引起揚(yáng)聲器播放的不連續(xù),影響回聲消除的效果,隨著高性能的回聲消除器的出現(xiàn),回聲抑制已經(jīng)很少有人使用了。
  聲學(xué)回聲消除算法(AEC)是對(duì)揚(yáng)聲器信號(hào)與由它產(chǎn)生的多路徑回聲的相關(guān)性為基礎(chǔ),建立遠(yuǎn)端信號(hào)(s[n])的語(yǔ)音模型,利用它對(duì)回聲進(jìn)行估計(jì)(e~[n]),并不斷地修改濾波器的系數(shù),使得估計(jì)值更加逼近真實(shí)的回聲(e[n])。然后,將回聲估計(jì)值從話筒的輸入信號(hào)中減去,從而達(dá)到消除回聲的目的,如圖2所示。
 ?。?聲學(xué)回聲消除器設(shè)計(jì)
  一般,回聲消除器的初始化需要兩個(gè)參數(shù):一次處理的數(shù)據(jù)量(幀長(zhǎng))和估計(jì)的錄音中回聲相對(duì)于錄音開(kāi)頭的偏移量,即回聲相對(duì)于錄音的延遲的最大值(尾長(zhǎng))?;芈曄涌诘囊话阈问綖椋海粒澹悖疲酰睿悖簦椋铮睿ǎ椋睿穑酰?frame, playback frame, out frame),對(duì)錄音數(shù)據(jù)進(jìn)行回聲消除需要等量的播放數(shù)據(jù)輸入作為建立回聲模型的參考數(shù)據(jù)。要達(dá)到良好的回聲消除效果,必須保證以下3點(diǎn):
 ?。ǎ保?播放數(shù)據(jù)的產(chǎn)生速度要和錄音數(shù)據(jù)的產(chǎn)生速度達(dá)到動(dòng)態(tài)平衡,為此如果錄放音數(shù)據(jù)的采樣率不同,那么需要把他們統(tǒng)一成同一采樣率下的數(shù)據(jù)以后再進(jìn)行回聲消除。如果是實(shí)時(shí)的語(yǔ)音處理,由于網(wǎng)絡(luò)的不穩(wěn)定性,數(shù)據(jù)包可能在網(wǎng)絡(luò)上丟失或者由于過(guò)大的延遲而被其他的處理環(huán)節(jié)丟棄,那么來(lái)自遠(yuǎn)端的數(shù)據(jù)量可能會(huì)少于近端錄音產(chǎn)生的數(shù)據(jù)量,對(duì)于這種情況我們必須補(bǔ)充播放數(shù)據(jù),以保證放音數(shù)據(jù)的量和錄音數(shù)據(jù)量達(dá)到平衡。
 ?。ǎ玻?播放數(shù)據(jù)帶有的聲音信息先于錄音數(shù)據(jù)中帶有的對(duì)應(yīng)的回聲信息送給回聲消除接口。這個(gè)先后順序是回聲消除的前提,回聲消除器不可能消除自己沒(méi)有“見(jiàn)過(guò)”的回聲。
 ?。ǎ常?播放數(shù)據(jù)的聲音對(duì)應(yīng)的回聲在錄音數(shù)據(jù)中出現(xiàn)的位置相對(duì)于錄音的開(kāi)頭的偏移量(即延遲)不能太大,因?yàn)樗械幕芈曄髦С值奈查L(zhǎng)都有一個(gè)范圍,延遲超過(guò)了這個(gè)范圍回聲就無(wú)法消除了。
  為了滿足第一條,我們需要對(duì)放音線程數(shù)據(jù)產(chǎn)生的速度進(jìn)行控制,控制拿給聲卡播放的數(shù)據(jù)量和從聲卡獲得的錄音數(shù)據(jù)量總是保持一致。由于錄音數(shù)據(jù)產(chǎn)生的速度總是均勻的,因此放音數(shù)據(jù)的產(chǎn)生也必須均勻,也就是說(shuō)從服務(wù)器得到的放音數(shù)據(jù)沒(méi)有及時(shí)達(dá)到時(shí),我們需要“創(chuàng)造”放音數(shù)據(jù)給系統(tǒng)播放,同時(shí)將這些數(shù)據(jù)緩存到放音數(shù)據(jù)隊(duì)列里。創(chuàng)造的方式有很多,比如填充靜音數(shù)據(jù)或是通過(guò)Wsola算法來(lái)模擬連續(xù)語(yǔ)音數(shù)據(jù)。
  4 回聲延遲估計(jì)
  在第一次獲得放音數(shù)據(jù)時(shí),我們開(kāi)始對(duì)錄音數(shù)據(jù)進(jìn)行回聲消除。開(kāi)始回聲消除之后,從系統(tǒng)錄音接口得到的錄音數(shù)據(jù)里可能含有回聲消除開(kāi)始前錄到的數(shù)據(jù)。而從開(kāi)始回聲消除那一刻起到放音幀真正從聲卡放出來(lái)被錄音設(shè)備捕獲可能也需要等待一段時(shí)間(我們假設(shè)聲音一放出來(lái)立即被錄到錄音數(shù)據(jù)里,忽略其在媒介中的傳播時(shí)間,因?yàn)閷?shí)際中最突出的回聲是直接回聲,即聲音從播放設(shè)備出來(lái),通過(guò)空氣或手機(jī)本身直接傳輸?shù)戒浺粼O(shè)備,而不是經(jīng)過(guò)反射回到錄音設(shè)備,一般直接回聲從放音設(shè)備出來(lái)再回到錄音設(shè)備的時(shí)間是很短的,一般不到1毫秒,可以忽略),這個(gè)時(shí)間跟聲卡放音的緩沖區(qū)的長(zhǎng)度和我們的放音幀長(zhǎng)度有關(guān)。放音數(shù)據(jù)和錄音數(shù)據(jù)的時(shí)序關(guān)系如圖3所示。
  (以AEC開(kāi)始后取得的第一個(gè)錄音幀的起始錄音時(shí)間為起點(diǎn)t0)
  粗虛線圈表示一個(gè)放音幀時(shí)長(zhǎng),實(shí)線圈表示錄音緩沖區(qū)對(duì)應(yīng)的時(shí)長(zhǎng),淺虛線圈表示錄音幀時(shí)長(zhǎng)。
  為了保證所有播放的聲音一定會(huì)在錄音數(shù)據(jù)中重現(xiàn),應(yīng)先啟動(dòng)錄音線程,然后再啟動(dòng)放音線程?;芈暤难舆t決定了回聲消除器需要的“尾長(zhǎng)”,“尾長(zhǎng)”越小,同樣長(zhǎng)度的數(shù)據(jù)回聲消除器的處理時(shí)間越短,回聲消除算法的收斂也越快,即消除回聲起效越快。為了使回聲的延遲盡量小,我們需要從設(shè)備支持的采樣率中選擇最合適的錄放音采樣率。這個(gè)選擇的過(guò)程是移動(dòng)設(shè)備上回聲消除處理的關(guān)鍵。
  如上所述,延遲可分為兩部分,一部分是由錄音時(shí)產(chǎn)生的,另一部分是由放音產(chǎn)生的。
  先說(shuō)放音,移動(dòng)設(shè)備支持的放音采樣率有多種,每種采樣率下都有一個(gè)最小放音緩沖區(qū)長(zhǎng)度,放音的緩沖區(qū)只能設(shè)置得比這個(gè)長(zhǎng)度長(zhǎng)。我們每次給放音API播放的數(shù)據(jù)會(huì)去填充緩沖區(qū),只有當(dāng)緩沖區(qū)被填滿以后才會(huì)真正拿到聲卡去播放。如果放音幀比放音緩沖區(qū)長(zhǎng),那么放音的延遲就只是聲卡固有的放音延遲。如果放音幀比放音緩沖區(qū)短,那么就要等若干個(gè)放音幀來(lái)填充放音緩沖區(qū),直到填滿以后才送給聲卡去播放。而聲卡收到放音數(shù)據(jù)到放音數(shù)據(jù)開(kāi)始播放,這之間可能還有一個(gè)間隔,這是由于聲卡總是一段數(shù)據(jù)一段數(shù)據(jù)地播放,如果送到聲卡的時(shí)候前一段數(shù)據(jù)還沒(méi)播放完,那么聲卡會(huì)等到前一段數(shù)據(jù)播放完了才開(kāi)始播放送來(lái)的這段數(shù)據(jù),這個(gè)“數(shù)據(jù)段”的長(zhǎng)度一般對(duì)應(yīng)的就是“最小放音緩沖區(qū)長(zhǎng)度”。所有上述的時(shí)間內(nèi)產(chǎn)生的錄音數(shù)據(jù)也會(huì)被送到回聲消除器里去處理,因此這段時(shí)間內(nèi)造成的數(shù)據(jù)延遲為(用時(shí)長(zhǎng)表示):







  放音延遲 = - 1 ・ 放音幀時(shí)長(zhǎng) + 聲卡延遲 (1)
  其中[ ]表示向上取整,即取不小于該數(shù)的最小整數(shù)?!奥暱ㄑ舆t”即數(shù)據(jù)包送到聲卡后到其播放出來(lái)之間的間隔。如果有多個(gè)采樣率下的放音延遲都達(dá)到最小,那么我們選取最接近編解碼采樣率的那個(gè)采樣率,因?yàn)樵较嘟牟蓸勇手夭蓸訒r(shí)造成的失真越小。而放音緩沖區(qū)長(zhǎng)度也就設(shè)置為(大于或等于最小放音緩沖區(qū)長(zhǎng)度的)重采樣為放音采樣率后的放音幀長(zhǎng)度的最小倍數(shù)。
  再說(shuō)錄音,錄音稍微復(fù)雜一些。錄音也和放音一樣,在每種錄音采樣率下都有一個(gè)最小錄音緩沖區(qū)長(zhǎng)度,錄音的緩沖區(qū)只能設(shè)置得比這個(gè)長(zhǎng)度長(zhǎng)。當(dāng)錄音數(shù)據(jù)填滿第一個(gè)緩沖區(qū)以后,我們才能從錄音API中獲得第一個(gè)錄音塊,由于回聲消除的原因,我們每次都要從錄音數(shù)據(jù)里取得和放音幀“等長(zhǎng)”(這里的“等長(zhǎng)”是指播放時(shí)長(zhǎng)相等)的錄音幀來(lái)進(jìn)行處理。在放音線程得到第一個(gè)放音幀、開(kāi)始回聲消除這個(gè)時(shí)刻之后,我們從錄音API里得到的錄音數(shù)據(jù)里可能有一部分是在回聲消除開(kāi)始之前就錄到的,這個(gè)數(shù)據(jù)有多少跟錄音幀長(zhǎng)度以及錄音緩沖區(qū)的長(zhǎng)度都有關(guān)。如果錄音緩沖區(qū)的長(zhǎng)度不是錄音幀長(zhǎng)度的整數(shù)倍,錄音數(shù)據(jù)里錄到的回聲消除前的聲音數(shù)據(jù)的時(shí)長(zhǎng)的最大值是一個(gè)錄音幀時(shí)長(zhǎng)加上填滿一個(gè)錄音緩沖區(qū)需要的數(shù)據(jù)對(duì)應(yīng)的播放時(shí)長(zhǎng)之和。而如果錄音緩沖區(qū)長(zhǎng)度是錄音幀長(zhǎng)度的整數(shù)倍,那么錄到的回聲消除前的聲音的最大時(shí)長(zhǎng)就是填滿一個(gè)錄音緩沖區(qū)需要的數(shù)據(jù)對(duì)應(yīng)的播放時(shí)長(zhǎng)。
  錄音延遲 < (2)
  因此我們選擇使錄音延遲最大值最小的錄音采樣率,而存在多個(gè)同時(shí)達(dá)到最小值的錄音采樣率時(shí),我們選擇最接近錄音編碼采樣率的采樣率。錄音緩沖區(qū)長(zhǎng)度就設(shè)為(大于或等于最小錄音緩沖區(qū)長(zhǎng)度的)換算到錄音采樣率下的錄音幀長(zhǎng)度的最小倍數(shù)。
  由于放音延遲除去“聲卡延遲”的部分以外,剩下的那部分是固定的(見(jiàn)式(1)),作為一種優(yōu)化,我們可以把錄音數(shù)據(jù)從頭部先丟掉一部分?jǐn)?shù)據(jù),這部分?jǐn)?shù)據(jù)對(duì)應(yīng)的時(shí)長(zhǎng)就等于這部分延遲,這樣將縮短回聲的延遲,可以降低回聲消除器的“尾長(zhǎng)”。
 ?。?結(jié) 論
  本文通過(guò)仔細(xì)地分析移動(dòng)設(shè)備的錄放音系統(tǒng)的各個(gè)環(huán)節(jié)對(duì)回聲消除器得到的數(shù)據(jù)產(chǎn)生的影響,精確地估算出了回聲延遲可能的范圍,通過(guò)精確估計(jì)延遲的下限值,給回聲消除器的優(yōu)化提供了可能,提高了回聲消除器的處理效率和效果。
  
  

服務(wù)熱線

400 180 8892

微信客服