專利名稱:一種回音消除數(shù)據(jù)自動對齊的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及回音消除的方法,尤其涉及回音消除過程中數(shù)據(jù)自動對齊的方法。
背景技術(shù):
回音消除模塊是音頻對話中的必備模塊,在即時通信、視頻會議等應(yīng)用中都要用到。而送進回音消除的數(shù)據(jù)是否對齊(同步),是保證回音消除模塊能正常工作的前提和基礎(chǔ)?,F(xiàn)有的回音消除技術(shù),基本上都是采用簡單的緩沖音頻播放數(shù)據(jù)和音頻采集數(shù)據(jù)的方法,沒有針對緩沖區(qū)的情況進行有針對性、準(zhǔn)確的調(diào)整,也沒有根據(jù)回音處理的具體情況,調(diào)整數(shù)據(jù)緩沖區(qū)的數(shù)據(jù)。另外,現(xiàn)有聲卡中普遍存在時鐘飄移,又會加劇數(shù)據(jù)的不對齊情況。這樣,由于沒有回音消除數(shù)據(jù)自動對齊技術(shù),直接由回音消除模塊去比較和處理更多的數(shù)據(jù),一方面會浪費CPU的資源,造成回音消除的處理能力低下、性能不穩(wěn)定,另一方面又會產(chǎn)生誤比較,使處理后的音質(zhì)下降。表現(xiàn)的形式就是回音時大時小和回音沒有消除干凈等。
發(fā)明內(nèi)容本發(fā)明就是為了解決上述問題,提出了一種回音消除數(shù)據(jù)自動對齊的方法,使其在音頻采集數(shù)據(jù)和音頻播放數(shù)據(jù)進入回音消除模塊前,對數(shù)據(jù)進行對齊,從而提高系統(tǒng)消除回音的能力。
為實現(xiàn)上述目的,本實用新型提供了一種回音消除數(shù)據(jù)自動對齊的方法,其步驟如下步驟1,接收音頻采集模塊采集的音頻采集數(shù)據(jù)(Y0)和音頻播放模塊采集的音頻播放數(shù)據(jù)(X0);步驟2,將音頻采集數(shù)據(jù)(Y0)和音頻播放數(shù)據(jù)(X0)統(tǒng)一轉(zhuǎn)換成回音消除器支持的音頻格式;步驟3,將轉(zhuǎn)換音頻格式后的音頻采集數(shù)據(jù)(Y)和音頻播放數(shù)據(jù)(X)以數(shù)據(jù)塊的形式依次寫進數(shù)據(jù)緩沖區(qū);步驟4,數(shù)據(jù)緩沖區(qū)寫滿后,對齊音頻采集數(shù)據(jù)塊(Y)和音頻播放數(shù)據(jù)塊(X);步驟5,將對齊后的音頻采集數(shù)據(jù)塊(Y)和音頻播放數(shù)據(jù)塊(X)放入回音消除模塊進行處理,送出回音消除后的采集數(shù)據(jù)塊(Y’);步驟6,返回步驟1。
優(yōu)選的是,在步驟五與步驟六之間還包括刪除多余數(shù)據(jù)塊的步驟當(dāng)音頻采集數(shù)據(jù)塊(Y)滯后音頻播放數(shù)據(jù)塊(X)小于設(shè)定的回音消除允許的時間長度時,對數(shù)據(jù)緩沖區(qū)不作調(diào)整;當(dāng)音頻采集數(shù)據(jù)塊(Y)超前于音頻播放數(shù)據(jù)塊(X)時,刪除數(shù)據(jù)緩沖區(qū)中的最先進入的一個音頻播放數(shù)據(jù)塊(X);當(dāng)音頻采集數(shù)據(jù)塊(Y)滯后音頻播放數(shù)據(jù)塊(X)大于回音消除允許的時間長度時,刪除數(shù)據(jù)緩沖區(qū)中的最先進入的一個音頻采集數(shù)據(jù)塊(Y)。
所述數(shù)據(jù)緩沖區(qū)至少劃分成相互獨立的三個數(shù)據(jù)塊,每一個數(shù)據(jù)塊單獨存儲音頻采集數(shù)據(jù)或音頻播放數(shù)據(jù),且數(shù)據(jù)緩沖區(qū)以先進先出的方式暫時存儲音頻采集數(shù)據(jù)和音頻播放數(shù)據(jù)。
進一步優(yōu)選的是,所述對齊音頻采集數(shù)據(jù)塊和音頻播放數(shù)據(jù)塊的方法為,根據(jù)音頻采集數(shù)據(jù)(Y)和音頻播放數(shù)據(jù)(X)進入數(shù)據(jù)緩沖區(qū)的情況進行分類操作,如果數(shù)據(jù)緩沖區(qū)所包含的前3個數(shù)據(jù)塊為第一類(XXX),則刪除最先進入的音頻播放數(shù)據(jù)塊(X),后面的數(shù)據(jù)塊前移,新數(shù)據(jù)塊進入緩沖區(qū);第二類(XXY),則刪除最先進入的音頻播放數(shù)據(jù)塊(X),后面的數(shù)據(jù)塊前移,新數(shù)據(jù)塊進入緩沖區(qū);第三類(XYX),則將最先進入的音頻播放數(shù)據(jù)塊(X)和最先進入的音頻采集數(shù)據(jù)塊(Y)送進回音消除處理,后面的數(shù)據(jù)塊前移,新數(shù)據(jù)塊進入緩沖區(qū);第四類(XYY),則將最先進入的音頻播放數(shù)據(jù)塊(X)和最先進入的音頻采集數(shù)據(jù)塊(Y)送進回音消除處理,后面的數(shù)據(jù)塊前移,新數(shù)據(jù)塊進入緩沖區(qū);第五類(YXX),則將最先進入的音頻播放數(shù)據(jù)塊(X)和最先進入的音頻采集數(shù)據(jù)塊(Y)送進回音消除處理,后面的數(shù)據(jù)塊前移,新數(shù)據(jù)塊進入緩沖區(qū);第六類(YXY),則將最先進入的音頻播放數(shù)據(jù)塊(X)和最先進入的音頻采集數(shù)據(jù)塊(Y)送進回音消除處理,后面的數(shù)據(jù)塊前移,新數(shù)據(jù)塊進入緩沖區(qū);第七類(YYX),則將最先進入的音頻播放數(shù)據(jù)塊(X)和最先進入的音頻采集數(shù)據(jù)塊(Y)送進回音消除處理,后面的數(shù)據(jù)塊前移,新數(shù)據(jù)塊進入緩沖區(qū);第八類(YYY),則將最先進入的音頻采集數(shù)據(jù)塊(Y)和空的音頻播放數(shù)據(jù)塊(X)送進回音消除處理,后面的數(shù)據(jù)塊前移,新數(shù)據(jù)塊進入緩沖區(qū);回音消除允許的時間長度設(shè)定為60ms。
所述回音消除器支持的音頻格式包括PCM 16KHz16位格式、PCM 16KHz8位格式、PCM 8KHz16位格式、PCM 8KHz16位格式。
本發(fā)明的有益效果在于1)數(shù)據(jù)在緩沖區(qū)中對齊后,再送入回音消除器進行處理,這樣就不會出現(xiàn)音頻播放數(shù)據(jù)塊和音頻采集數(shù)據(jù)塊中的一方出現(xiàn)了過多積壓的現(xiàn)象,這樣就不會造成送進回音消除的音頻播放數(shù)據(jù)塊和音頻采集數(shù)據(jù)塊的時間相差較遠的現(xiàn)象,這樣就不會浪費CPU的資源,提高音質(zhì)和回音處理的穩(wěn)定性。
2)由于在步驟五與步驟六之間還增加了刪除多余數(shù)據(jù)塊的步驟當(dāng)音頻采集數(shù)據(jù)塊(Y)滯后音頻播放數(shù)據(jù)塊(X)小于設(shè)定的回音消除允許的時間長度時,對數(shù)據(jù)緩沖區(qū)不作調(diào)整;當(dāng)音頻采集數(shù)據(jù)塊(Y)超前于音頻播放數(shù)據(jù)塊(X)時,刪除數(shù)據(jù)緩沖區(qū)中的最先進入的一個音頻播放數(shù)據(jù)塊(X);當(dāng)音頻采集數(shù)據(jù)塊(Y)滯后音頻播放數(shù)據(jù)塊(X)大于回音消除允許的時間長度時,刪除數(shù)據(jù)緩沖區(qū)中的最先進入的一個音頻采集數(shù)據(jù)塊(Y)。通過這個方法能反應(yīng)回音消除模塊內(nèi)部的數(shù)據(jù)分析情況,更準(zhǔn)確的判斷和調(diào)整數(shù)據(jù)緩沖區(qū)中音頻采集數(shù)據(jù)塊(Y)和音頻播放數(shù)據(jù)塊(X)的數(shù)量,這樣就不會出現(xiàn)音頻播放數(shù)據(jù)塊和音頻采集數(shù)據(jù)塊中的一方出現(xiàn)了過多積壓的現(xiàn)象。
3)由于將緩沖區(qū)至少劃分成相互獨立的三個數(shù)據(jù)塊,每一個數(shù)據(jù)塊單獨存儲音頻采集數(shù)據(jù)或音頻播放數(shù)據(jù),只根據(jù)前三個數(shù)據(jù)塊的內(nèi)容分成8類,然后分別進行處理可以減少程序的復(fù)雜度;緩沖區(qū)中前面的數(shù)據(jù)塊處理完后,后面的數(shù)據(jù)塊前移,新數(shù)據(jù)塊進入緩沖區(qū),保證程序的連續(xù)性。
本發(fā)明的特征及優(yōu)點將通過實施例結(jié)合附圖進行詳細說明。
圖1為實施例回音消除過程示意圖;圖2為實施例回音消除流程圖。
具體實施方式實施例一、一種回音消除數(shù)據(jù)自動對齊的方法,如圖1所示,整個回音消除系統(tǒng)按功能劃分包括以下部分音頻采集模塊,音頻播放模塊,數(shù)據(jù)緩沖區(qū)和回音消除模塊。音頻采集模塊是利用音頻采集裝置,來采集外部的聲音數(shù)據(jù),并將其轉(zhuǎn)化為回音消除模塊可以處理的音頻格式,送入數(shù)據(jù)緩沖區(qū)。音頻播放模塊是將聲音播放裝置輸出的聲音數(shù)據(jù)采集并轉(zhuǎn)化為回音消除模塊可以處理的音頻格式,送入數(shù)據(jù)緩沖區(qū)。數(shù)據(jù)緩沖區(qū),是為了暫時存儲要進行回音消除處理的數(shù)據(jù)塊而開辟的一個數(shù)據(jù)空間,劃分成相互獨立的三個數(shù)據(jù)塊,每一個數(shù)據(jù)塊單獨存儲音頻采集數(shù)據(jù)或音頻播放數(shù)據(jù),且以先進先出的方式暫時存儲音頻采集數(shù)據(jù)和音頻播放數(shù)據(jù)。數(shù)據(jù)塊在數(shù)據(jù)緩沖區(qū)進行對齊后被送入回音消除模塊?;匾粝K,通過比較從數(shù)據(jù)緩沖區(qū)進入的音頻采集數(shù)據(jù)塊和音頻播放數(shù)據(jù)塊,調(diào)整并送出音頻采集數(shù)據(jù)塊;同時根據(jù)音頻采集數(shù)據(jù)塊和音頻播放數(shù)據(jù)塊的比較結(jié)果,調(diào)整數(shù)據(jù)緩沖區(qū)中音頻采集數(shù)據(jù)塊和音頻播放數(shù)據(jù)塊的數(shù)量。
如圖2所示,其具體工作流程如下步驟1.系統(tǒng)通過音頻采集模塊接收音頻采集數(shù)據(jù)Y0,通過音頻播放模塊采集音頻播放數(shù)據(jù)X0。
步驟2.將音頻采集數(shù)據(jù)Y0和音頻播放數(shù)據(jù)X0轉(zhuǎn)化為回音消除器支持的音頻格式,如PCM 16KHz 16位格式。
步驟3.將轉(zhuǎn)化音頻格式后的音頻采集數(shù)據(jù)塊Y和音頻播放數(shù)據(jù)塊X送入數(shù)據(jù)緩沖區(qū),當(dāng)數(shù)據(jù)緩沖區(qū)中不足3個數(shù)據(jù)塊就等待新的數(shù)據(jù)塊的進入,如果3個數(shù)據(jù)塊裝滿時進行下一步處理。
步驟4.數(shù)據(jù)緩沖區(qū)根據(jù)進入的數(shù)據(jù)塊的類別進行如下分類處理A.假如進入數(shù)據(jù)緩沖區(qū)的數(shù)據(jù)塊為XXX或XXY,則刪除最先進入的音頻播放數(shù)據(jù)塊X,等待新的數(shù)據(jù)塊進入數(shù)據(jù)緩沖區(qū);B.假如進入數(shù)據(jù)緩沖區(qū)的數(shù)據(jù)塊為XYX、XYY、YXX、YXY、YYX,則將最先進入的音頻播放數(shù)據(jù)塊X和最先進入的音頻采集數(shù)據(jù)塊Y送進回音消除處理;C.假如進入數(shù)據(jù)緩沖區(qū)的數(shù)據(jù)塊為YYY,則將最先進入的音頻采集數(shù)據(jù)塊Y和空的音頻播放數(shù)據(jù)塊X送進回音消除處理。
步驟4.回音消除模塊對從數(shù)據(jù)緩沖區(qū)進入的對齊后的音頻采集數(shù)據(jù)塊Y和音頻播放數(shù)據(jù)塊X進行回音消除處理,并且送出回音消除后的音頻采集數(shù)據(jù)塊Y’。由于音頻采集數(shù)據(jù)塊Y和音頻播放數(shù)據(jù)塊X在數(shù)據(jù)緩沖區(qū)中對齊,減少了回音消除模塊誤比較,提高了回音消除模塊的處理能力,保證了回音消除質(zhì)量。
步驟5.回音消除模塊根據(jù)送入的音頻采集數(shù)據(jù)塊Y和音頻播放數(shù)據(jù)塊X的情況返回狀態(tài)參考值M。當(dāng)音頻采集數(shù)據(jù)塊Y滯后音頻播放數(shù)據(jù)塊X小于60ms,則狀態(tài)參考值M為0,數(shù)據(jù)緩沖區(qū)不用作調(diào)整;當(dāng)音頻采集數(shù)據(jù)塊Y超前于音頻播放數(shù)據(jù)塊,表示音頻采集數(shù)據(jù)塊Y送進回音消除模塊的速度比音頻播放數(shù)據(jù)塊X快,則狀態(tài)參考值M為-1,數(shù)據(jù)緩沖區(qū)刪除一個音頻播放數(shù)據(jù)塊X;音頻采集數(shù)據(jù)塊Y滯后音頻播放數(shù)據(jù)塊X大于60ms,則狀態(tài)參考值M為1,數(shù)據(jù)緩沖區(qū)刪除一個音頻采集數(shù)據(jù)塊Y。通過這種方法可以減少音頻采集數(shù)據(jù)塊Y和音頻播放數(shù)據(jù)塊X的時間相差太遠的情況,避免了由此而帶來的回音消除能力下降的問題。
步驟6.返回步驟1。通過這個步驟,使回音消除模塊持續(xù)工作。
以上內(nèi)容是結(jié)合具體的優(yōu)選實施方式對本發(fā)明所作的進一步詳細說明,不能認定本發(fā)明的具體實施只局限于這些說明。對于本發(fā)明所屬技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干簡單推演或替換,例如,也可根據(jù)需要將數(shù)據(jù)緩沖區(qū)劃分為相互獨立的四個數(shù)據(jù)塊,先對前三個數(shù)據(jù)塊進行分類處理,第四個數(shù)據(jù)塊待前面的數(shù)據(jù)塊處理完畢后,進行前移與新進入數(shù)據(jù)緩沖區(qū)的數(shù)據(jù)塊一起等待分類處理,這都應(yīng)當(dāng)視為屬于本發(fā)明由所提交的權(quán)利要求書確定的專利保護范圍。
權(quán)利要求
1.一種回音消除數(shù)據(jù)自動對齊的方法,包括如下步驟步驟1,接收音頻采集模塊采集的音頻采集數(shù)據(jù)(Y0)和音頻播放模塊采集的音頻播放數(shù)據(jù)(X0);步驟2,將音頻采集數(shù)據(jù)(Y0)和音頻播放數(shù)據(jù)(X0)統(tǒng)一轉(zhuǎn)換成回音消除器支持的音頻格式;步驟3,將轉(zhuǎn)換音頻格式后的音頻采集數(shù)據(jù)(Y)和音頻播放數(shù)據(jù)(X)以數(shù)據(jù)塊的形式依次寫進數(shù)據(jù)緩沖區(qū);步驟4,數(shù)據(jù)緩沖區(qū)寫滿后,對齊音頻采集數(shù)據(jù)塊(Y)和音頻播放數(shù)據(jù)塊(X);步驟5,將對齊后的音頻采集數(shù)據(jù)塊(Y)和音頻播放數(shù)據(jù)塊(X)放入回音消除模塊進行處理,送出回音消除后的采集數(shù)據(jù)塊(Y’);步驟6,返回步驟1。
2.如權(quán)利要求1所述的一種回音消除數(shù)據(jù)自動對齊的方法,其特征在于在步驟五與步驟六之間還包括刪除多余數(shù)據(jù)塊的步驟當(dāng)音頻采集數(shù)據(jù)塊(Y)滯后音頻播放數(shù)據(jù)塊(X)小于設(shè)定的回音消除允許的時間長度時,對數(shù)據(jù)緩沖區(qū)不作調(diào)整;當(dāng)音頻采集數(shù)據(jù)塊(Y)超前于音頻播放數(shù)據(jù)塊(X)時,刪除數(shù)據(jù)緩沖區(qū)中的最先進入的一個音頻播放數(shù)據(jù)塊(X);當(dāng)音頻采集數(shù)據(jù)塊(Y)滯后音頻播放數(shù)據(jù)塊(X)大于回音消除允許的時間長度時,刪除數(shù)據(jù)緩沖區(qū)中的最先進入的一個音頻采集數(shù)據(jù)塊(Y)。
3.如權(quán)利要求1或2所述的任何一種回音消除數(shù)據(jù)自動對齊的方法,其特征在于,所述數(shù)據(jù)緩沖區(qū)至少劃分成相互獨立的三個數(shù)據(jù)塊,每一個數(shù)據(jù)塊單獨存儲音頻采集數(shù)據(jù)或音頻播放數(shù)據(jù),且數(shù)據(jù)緩沖區(qū)以先進先出的方式暫時存儲音頻采集數(shù)據(jù)和音頻播放數(shù)據(jù)。
4.如權(quán)利要求1所述的一種回音消除數(shù)據(jù)自動對齊的方法,其特征在于,所述對齊音頻采集數(shù)據(jù)塊和音頻播放數(shù)據(jù)塊的方法為,根據(jù)音頻采集數(shù)據(jù)(Y)和音頻播放數(shù)據(jù)(X)進入數(shù)據(jù)緩沖區(qū)的情況進行分類操作,如果數(shù)據(jù)緩沖區(qū)所包含的前3個數(shù)據(jù)塊為第一類(XXX),則刪除最先進入的音頻播放數(shù)據(jù)塊(X),后面的數(shù)據(jù)塊前移,新數(shù)據(jù)塊進入緩沖區(qū);第二類(XXY),則刪除最先進入的音頻播放數(shù)據(jù)塊(X),后面的數(shù)據(jù)塊前移,新數(shù)據(jù)塊進入緩沖區(qū);第三類(XYX),則將最先進入的音頻播放數(shù)據(jù)塊(X)和最先進入的音頻采集數(shù)據(jù)塊(Y)送進回音消除處理,后面的數(shù)據(jù)塊前移,新數(shù)據(jù)塊進入緩沖區(qū);第四類(XYY),則將最先進入的音頻播放數(shù)據(jù)塊(X)和最先進入的音頻采集數(shù)據(jù)塊(Y)送進回音消除處理,后面的數(shù)據(jù)塊前移,新數(shù)據(jù)塊進入緩沖區(qū);第五類(YXX),則將最先進入的音頻播放數(shù)據(jù)塊(X)和最先進入的音頻采集數(shù)據(jù)塊(Y)送進回音消除處理,后面的數(shù)據(jù)塊前移,新數(shù)據(jù)塊進入緩沖區(qū);第六類(YXY),則將最先進入的音頻播放數(shù)據(jù)塊(X)和最先進入的音頻采集數(shù)據(jù)塊(Y)送進回音消除處理,后面的數(shù)據(jù)塊前移,新數(shù)據(jù)塊進入緩沖區(qū);第七類(YYX),則將最先進入的音頻播放數(shù)據(jù)塊(X)和最先進入的音頻采集數(shù)據(jù)塊(Y)送進回音消除處理,后面的數(shù)據(jù)塊前移,新數(shù)據(jù)塊進入緩沖區(qū);第八類(YYY),則將最先進入的音頻采集數(shù)據(jù)塊(Y)和空的音頻播放數(shù)據(jù)塊(X)送進回音消除處理,后面的數(shù)據(jù)塊前移,新數(shù)據(jù)塊進入緩沖區(qū)。
5.如權(quán)利要求2所述的一種回音消除數(shù)據(jù)自動對齊的方法,其特征在于所述回音消除允許的時間長度設(shè)定為60ms。
6.如權(quán)利要求1至5所述的任何一種回音消除數(shù)據(jù)自動對齊的方法,其特征在于步驟2)中所述回音消除器支持的音頻格式包括PCM 16KHz16位格式、PCM 16KHz8位格式、PCM 8KHz16位格式、PCM 8KHz16位格式。
全文摘要
本發(fā)明提供了一種回音消除數(shù)據(jù)自動對齊的方法,其步驟如下步驟1,接收音頻采集模塊采集的音頻采集數(shù)據(jù)和音頻播放模塊采集的音頻播放數(shù)據(jù);步驟2,將音頻采集數(shù)據(jù)和音頻播放數(shù)據(jù)統(tǒng)一轉(zhuǎn)換成回音消除器支持的音頻格式;步驟3,將轉(zhuǎn)換音頻格式后的音頻采集數(shù)據(jù)和音頻播放數(shù)據(jù)以數(shù)據(jù)塊的形式依次寫進數(shù)據(jù)緩沖區(qū);步驟4,數(shù)據(jù)緩沖區(qū)寫滿后,對齊音頻采集數(shù)據(jù)塊和音頻播放數(shù)據(jù)塊;步驟5,將對齊后的音頻采集數(shù)據(jù)塊和音頻播放數(shù)據(jù)塊放入回音消除模塊進行處理,送出回音消除后的采集數(shù)據(jù)塊;步驟6,返回步驟1。通過采用本發(fā)明,音頻數(shù)據(jù)在緩沖區(qū)中自動對齊后,送入回音消除器進行處理,有效的提高了回音消除模塊的回音消除能力。
文檔編號H04B7/015GK101064530SQ20061003537
公開日2007年10月31日 申請日期2006年4月28日 優(yōu)先權(quán)日2006年4月28日
發(fā)明者許宜芳 申請人:互聯(lián)天下科技發(fā)展(深圳)有限公司