麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

一種回聲消除方法及裝置制造方法

文檔序號:2827545閱讀:444來源:國知局
一種回聲消除方法及裝置制造方法
【專利摘要】本發明實施例提供了一種回聲消除方法及裝置,在該方法中,對多路第一音頻數據分別降采樣以獲取第二音頻數據,對每路第二音頻數據執行音頻回聲抵消處理以生成對應的實時濾波系數;在對當前時刻待輸出的第一音頻數據中與上一時刻相比不同的第一音頻數據執行音頻回聲抵消處理時,還設置初始濾波系數;初始濾波系數的獲取過程為:確定不同的第一音頻數據降采樣得到的第二音頻數據,獲取當前時刻該第二音頻數據對應的實時濾波系數,基于該實時濾波系數獲取初始濾波系數。可見本發明實施例對當前時刻待輸出的第一音頻數據中與上一時刻相比不同的第一音頻數據執行音頻回聲抵消時,設置基于連續的音頻回聲抵消處理中獲取的初始濾波系數,提高了濾波效果。
【專利說明】一種回聲消除方法及裝置
【技術領域】
[0001]本發明涉及音頻處理技術,尤其是涉及一種回聲消除方法及裝置。
【背景技術】
[0002]隨著音頻處理技術的不斷發展,音頻通信已經成為人們工作和生活中一種常用的信息交流方式。音頻通信實際是由通信一方將音頻輸入設備接收到的音頻數據經過一系列音頻處理后向通信另一方輸出。其中,在視頻會議等通過多個音頻輸入設備接收多路音頻數據的應用場景下,通信一方并不需要將所有的音頻輸入設備接收的音頻數據都輸出至通信另一方,而是通過對所有的音頻數據執行混音切換,獲取到M (M^ I)路待輸出的音頻數據,例如正有人說話的M個音頻輸入設備接收的M路音頻數據,之后僅輸出通過混音切換獲取的M路待輸出的音頻數據。
[0003]然而,在音頻通信過程中,如果通信一方在同一空間同時設置了音頻輸入設備和音頻輸出設備,會使得通信另一方接收的音頻數據受到回聲的影響,從而影響通話質量。例如,在視頻會議中,用戶A產生的話音發送給用戶B,并經用戶B端的揚聲器播放,此時用戶B端的麥克風會收錄該揚聲器播放的話音,并傳回給用戶A,使得用戶A好像聽到了自己的回聲。因此為了消除通信過程中產生的回聲,提高通話質量,目前常采用A E C (Aud i O Echo Cancel ,音頻回聲抵消)技術對音頻數據進行處理。
[0004]在視頻會議等接收多路音頻輸入數據的應用場景下,現有技術通常采用這樣一種消除回聲的方式:先將多個音頻輸入設備接收到的多路音頻數據執行混音切換,再對切換后的M路音頻數據分別執 行A EC處理從而得到回聲消除后的輸出數據。
[0005]然而,由于A E C處理實際上是一種自適應濾波過程,能夠根據濾波結果不斷調整濾波系數,而這種濾波系數的調整是逐漸逼近的過程,因此當連續濾波時間越長時,其濾波效果即回聲消除的效果也越好。顯然,由于現有技術先混音切換,再執行A E C,而混音切換得到的M路音頻數據往往是不固定的,例如上一時刻混音切換得到音頻數據01和音頻數據02,而當前時刻混音切換得到音頻數據01和音頻數據03,因此對于音頻數據03來說,A E C處理連續性較差,濾波系數需要重新逼近,導致濾波效果即回聲消除的效果很差。但是可以看出,這種現有技術僅對混音切換技術得到的M路音頻數據執行A E C,因此運算量很小,而在回聲消除過程中,需要保證較小的運算量從而減輕系統負擔、避免延時問題。可見,針對接收多路音頻輸入數據的應用場景如何實現在保證運算量較小的同時,提高消除回聲的效果成為了目前亟待解決的問題。

【發明內容】

[0006]本發明實施例解決的技術問題在于提供一種回聲消除的方法及裝置,針對接收多路音頻輸入數據的應用場景,實現在保證運算量較小的同時,提高消除回聲的效果。
[0007]為此,本發明實施例解決技術問題的技術方案是:
[0008]第一方面,本發明實施例提供了一種回聲消除方法,對多路第一音頻數據分別降采樣以獲取多路第二音頻數據,對每路第二音頻數據執行音頻回聲抵消處理以生成每路第二音頻數據所對應的實時濾波系數;
[0009]所述方法包括:
[0010]獲取當前時刻所述多路第一音頻數據所對應的混音切換數據;其中,任一路第一音頻數據所對應的混音切換數據為該路第一音頻數據降采樣的第二音頻數據執行音頻回聲抵消處理后的數據;
[0011]對所述多路第一音頻數據所對應的混音切換數據執行混音切換,以從所述多路第一音頻數據中獲取當前時刻待輸出的第一音頻數據;
[0012]對所述當前時刻待輸出的第一音頻數據執行音頻回聲抵消處理,以獲取音頻輸出數據;其中,在對所述當前時刻待輸出的第一音頻數據中與上一時刻待輸出的第一音頻數據相比不同的第一音頻數據執行音頻回聲抵消處理時,還設置音頻回聲抵消處理過程中的初始濾波系數;
[0013]所述初始濾波系數的獲取過程為:確定所述不同的第一音頻數據降采樣得到的第二音頻數據,獲取當前時刻該第二音頻數據所對應的實時濾波系數,基于該實時濾波系數獲取初始濾波系數。
[0014]在第一方面的第一種可能的實現方式中,所述方法還包括:
[0015]對所述音頻輸出數據執行殘留回聲抑制。
[0016]結合第一方面的第一種可能的實現方式,在第一方面的第二種可能的實現方式中,若所述當前時刻待輸出的第一音頻數據中包括有所述不同的第一音頻數據,所述方法還包括:
[0017]在當前時刻之后的第一時段內,對上一時刻待輸出的第一音頻數據執行音頻回聲抵消處理以獲取所述第一時段內的音頻輸出數據;其中,所述第一時段由所述音頻輸出數據累計達到預設幀數花費的時間確定;
[0018]所述對所述當前時刻待輸出的第一音頻數據執行音頻回聲抵消處理,以獲得音頻輸出數據包括:
[0019]在所述第一時段之后,對所述當前時刻待輸出的第一音頻數據執行音頻回聲抵消處理,以獲得所述第一時段之后的音頻輸出數據。
[0020]結合第一方面的第二種可能的實現方式,在第一方面的第三種可能的實現方式中,所述方法還包括:
[0021]在所述第一時段內,暫停執行以下步驟:對所述上一時刻待輸出的第一音頻數據降采樣以及對該降采樣得到的第二音頻數據執行音頻回聲抵消處理;
[0022]以及,執行以下步驟:對音頻回聲抵消處理后的所述上一時刻待輸出的第一音頻數據執行降采樣,將該降采樣后的數據作為所述上一時刻待輸出的第一音頻數據所對應的混音切換數據,以用于執行混音切換;
[0023]在所述第一時段之后,恢復執行在所述第一時段內暫停的步驟;
[0024]以及,執行以下步驟:確定所述上一時刻待輸出的第一音頻數據降采樣得到的第二音頻數據,將對該第二音頻數據執行音頻回聲抵消處理后的數據作為所述上一時刻待輸出的第一音頻數據所對應的混音切換數據,用于執行混音切換。
[0025]結合第一方面的第二種或第三種可能的實現方式,在第一方面的第四種可能的實現方式中,所述方法還包括:
[0026]在所述第一時段內,對所述當前時刻待輸出的第一音頻數據執行殘留回聲抑制。
[0027]在第一方面的第五種可能的實現方式中,所述當前時刻待輸出的第一音頻數據為所述多路第一音頻數據中,能量最大的至少一路第一音頻數據。
[0028]在第一方面的第六種可能的實現方式中,所述第二音頻數據的采樣率為8 k Hz、16 kHz 或者 32 kHz。
[0029]第二方面,本發明實施例提供了一種回聲消除裝置,所述裝置包括生成單元、獲取單元、混音切換單元和回聲抵消單元;
[0030]生成單元,用于對多路第一音頻數據分別降采樣以獲取多路第二音頻數據,對每路第二音頻數據執行音頻回聲抵消處理以生成每路第二音頻數據所對應的實時濾波系數;
[0031]獲取單元,用于獲取當前時刻所述多路第一音頻數據所對應的混音切換數據;其中,任一路第一音頻數據所對應的混音切換數據為該路第一音頻數據降采樣的第二音頻數據執行音頻回聲抵消處理后的數據;
[0032]混音切換單元,用于對所述多路第一音頻數據所對應的混音切換數據執行混音切換,以從所述多路第一音頻數據中獲取當前時刻待輸出的第一音頻數據;
[0033]回聲抵消單元,用于對所述當前時刻待輸出的第一音頻數據執行音頻回聲抵消處理,以獲取音頻輸出數據;
[0034]其中,所述回聲抵消單元在對所述當前時刻待輸出的第一音頻數據中與上一時刻待輸出的第一音頻數據相比不同的第一音頻數據執行音頻回聲抵消處理時,還設置音頻回聲抵消處理過程中的初始濾波系數;
[0035]所述初始濾波系數的獲取過程為:確定所述不同的第一音頻數據降采樣得到的第二音頻數據,獲取當前時刻該第二音頻數據所對應的實時濾波系數,基于該實時濾波系數獲取初始濾波系數。
[0036]在第二方面的第一種可能的實現方式中,所述裝置還包括:
[0037]第一回聲抑制單元,用于對所述音頻輸出數據執行殘留回聲抑制。
[0038]結合第二方面的第一種可能的實現方式,在第二方面的第二種可能的實現方式中,若所述當前時刻待輸出的第一音頻數據中包括有所述不同的第一音頻數據,所述回聲抵消單兀還用于,在當前時刻之后的第一時段內,對上一時刻待輸出的第一音頻數據執行音頻回聲抵消處理以獲取所述第一時段內的音頻輸出數據;其中,所述第一時段由所述音頻輸出數據累計達到預設幀數花費的時間確定;
[0039]所述回聲抵消單元用于對所述當前時刻待輸出的第一音頻數據執行音頻回聲抵消處理,以獲取音頻輸出數據包括:
[0040]所述回聲抵消單元用于在所述第一時段之后,對所述當前時刻待輸出的第一音頻數據執行音頻回聲抵消處理,以獲得所述第一時段之后的音頻輸出數據。
[0041]結合第二方面的第二種可能的實現方式,在第二方面的第三種可能的實現方式中,所述生成單元還用于,在所述第一時段內,暫停執行以下步驟:對所述上一時刻待輸出的第一音頻數據降采樣以及對該降采樣得到的第二音頻數據執行音頻回聲抵消處理;
[0042]以及,執行以下步驟:對音頻回聲抵消處理后的所述上一時刻待輸出的第一音頻數據執行降采樣,將該降采樣后的數據作為所述上一時刻待輸出的第一音頻數據所對應的混音切換數據,以用于執行混音切換;
[0043]所述生成單元還用于,在所述第一時段之后,恢復執行在所述第一時段內暫停的步驟;
[0044]以及,執行以下步驟:確定所述上一時刻待輸出的第一音頻數據降采樣得到的第二音頻數據,將對該第二音頻數據執行音頻回聲抵消處理后的數據作為所述上一時刻待輸出的第一音頻數據所對應的混音切換數據,用于執行混音切換。
[0045]結合第二方面的第二種或第三種可能的實現方式,在第二方面的第四種可能的實現方式中,所述裝置還包括:
[0046]第二回聲抑制單元,用于在所述第一時段內,對所述當前時刻待輸出的第一音頻數據執行殘留回聲抑制。
[0047]在第二方面的第五種可能的實現方式中,所述當前時刻待輸出的第一音頻數據為所述多路第一音頻數據中,能量最大的至少一路第一音頻數據。
[0048]在第二方面的第六種可能的實現方式中,所述第二音頻數據的采樣率為8 k Hz、16 kHz 或者 32 kHz。
[0049]通過上述技術方案可知,本發明實施例中,對多路第一音頻數據降采樣得到低采樣率的多路第二音頻數據,并且對低采樣率的每路第二音頻數據實時地執行音頻回聲抵消處理以生成實時濾波系數,從而保證了能夠得到基于連續的音頻回聲抵消處理的濾波系數。而且由于人聲的能量主要集中在低頻部分,因此低采樣率的數據一般具有人聲大部分能量,在對低采樣率的第二音頻數據執行回聲抵消處理時的濾波系數,已經能夠消除大部分的人聲回聲。對于當前時刻待輸出的第一音頻數據中與上一時刻相比不同的第一音頻數據,為了保證在音頻回聲抵消處理過程中濾波系數的連續性,還會設置音頻回聲抵消處理過程中的初始濾波系數,其中初始濾波系數是根據上述基于連續的音頻回聲抵消處理的濾波系數所獲取的,從而使得濾波系數無需重新收斂,提高了濾波效果。此外,雖然本發明實施例對多路音頻數據執行音頻回聲抵消處理,但是針對的僅是多路低采樣率的第二音頻數據,因此實現了在保證運算量較小的同時,提高消除回聲的效果。
【專利附圖】

【附圖說明】
[0050]圖1為本發明提供的回聲消除方法第一實施例的流程示意圖;
[0051]圖2為圖1所示的實施例中一個循環的數據流向圖;
[0052]圖3為本發明提供的回聲消除方法第二實施例的流程示意圖;
[0053]圖4為圖3所示的實施例中一個循環的數據流程圖;
[0054]圖5為圖3所示的實施例中第一音頻數據I的數據流向圖;
[0055]圖6為圖3所示的實施例中第一音頻數據3的數據流向圖;
[0056]圖7為本發明提供的回聲消除方法第三實施例的流程示意圖;
[0057]圖8為圖7所示的實施例中第一時段內的一個循環的數據流向圖;
[0058]圖9為本發明提供的回聲消除裝置第一實施例的結構示意圖;
[0059]圖10為本發明提供的回聲消除裝置第二實施例的結構示意圖;
[0060]圖11為本發明提供的回聲消除裝置第三實施例的結構示意圖;[0061]圖12為本發明提供的回聲消除裝置第四實施例的結構示意圖。
【具體實施方式】
[0062]在視頻會議等接收多路音頻輸入數據的應用場景下,現有技術通常采用這樣一種消除回聲的方式:將多個音頻輸入設備接收到的多路音頻數據執行混音切換后,再對切換后的M路音頻數據分別執行A EC處理從而得到經回聲消除后的輸出數據。
[0063]然而,由于A E C處理實際上是一種自適應濾波過程,能夠根據濾波結果不斷調整濾波系數,而這種濾波系數的調整是逐漸逼近的過程,因此當連續濾波時間越長時,其濾波效果即回聲消除的效果也越好。顯然,由于現有技術先混音切換,再執行A E C處理,而混音切換得到的M路音頻數據往往是不固定的,例如上一時刻混音切換得到音頻數據01和音頻數據02,而當前時刻混音切換得到音頻數據01和音頻數據03,因此對于音頻數據
02和音頻數據03來說,AEC處理連續性較差,濾波系數需要重新逼近,導致濾波效果即回聲消除的效果很差。此外,現有技術在執行混音切換時,基于的音頻輸入數據中可能會存在回聲,從而會導致混音切換結果不準確。
[0064]為了解決上述問題,一種方案是先對多路音頻數據執行A E C處理,再對A E C處理后的多路音頻數據執行混音切換從而得到經回聲抵消后的輸出數據。然而,由于A EC處理的濾波過程中需要構建濾波器,濾波器的階數等于混響時間與采樣率的乘積,顯然當混響時間一定時,采樣率越大,濾波器就需要越長的階數,運算量也就越大。目前在視頻會議等場景下,通常采用寬頻語音技術,采樣率一般較高(例如48 kHz ),此時在對每路音頻數據執行A E C處理時,運算量非常大,因此對系統的負擔和要求都很高。
[0065]可見,現有技術雖然A E C處理連續性較差,濾波系數需要重新逼近,導致濾波效果即回聲消除的效果很差,但是由于僅對混音切換技術得到的M路音頻數據執行A EC,因此運算量很小,而在回聲消除過程中,需要保證較小的運算量從而減輕系統負擔、避免延時問題。可見,針對接收多路音頻輸入數據的應用場景,尤其是高采樣率的音頻輸入數據,如何實現在保證運算量較小的同時,提高消除回聲的效果成為了目前亟待解決的問題。
[0066]而在本發明實施例中,提供一種回聲消除的方法及裝置,針對接收多路音頻輸入數據的應用場景,實現在保證運算量較小的同時,提高消除回聲的效果。
[0067]下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
[0068]本發明的說明書和權利要求書及上述附圖中的術語“第一”、“第二”、“第三” “第四”等是用于區別類似的對象,而不必用于描述特定的順序或先后次序。應該理解這樣使用的數據在適當情況下可以互換,以便這里描述的實施例能夠以除了在這里圖示或描述的內容以外的順序實施。此外,術語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統、產品或設備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或對于這些過程、方法、產品或設備固有的其它步驟或單元。
[0069]實施例一[0070]請參閱圖1,本發明實施例提供了回聲消除方法的第一實施例,在本實施例中,對多路第一音頻數據分別降采樣以獲取多路第二音頻數據,對每路第二音頻數據執行A E C處理以生成每路第二音頻數據所對應的實時濾波系數。
[0071]在本實施例中,可以通過多路音頻輸入設備(例如麥克風)實時地接收多路第一音頻數據,一般情況下第一音頻數據為高采樣率的數據,對實時接收的多路第一音頻數據分別降采樣。例如圖2所示,在某一時刻,接收到N ( N> I)路第一音頻數據(第一音頻數據1、第一音頻數據2、...、第一音頻數據N ),對N路第一音頻數據分別降采樣,得到N路第二音頻數據(第二音頻數據1、第二音頻數據2、…、第二音頻數據N)。其中,對第一音頻數據j降采樣得到第二音頻數據j, N^j > I。之后對每路第二音頻數據執行A E C處理,從而得到了 N路混音切換數據,并且在對每路第二音頻數據執行A E C處理時,都能夠生成A E C處理的濾波系數。可見,通過循環執行圖2所示的上述步驟,能夠實時地獲取A E C處理后的第二音頻數據,以及對每路第二音頻數據執行A E C處理時生成的實時濾波系數。
[0072]其中,第一音頻數據的采樣率一般為48 k H z。第二音頻數據的采樣率一般至少為8 k H z,例如可以為8、16或者32 kHz等等,本發明實施例對此不做限定。
[0073]本實施例具體包括:
[0074]S 101:獲取當前時刻多路第一音頻數據所對應的混音切換數據。其中,任一路第一音頻數據所對應的混音切換數據為該路第一音頻數據降采樣的第二音頻數據執行A EC處理后的數據。
[0075]例如圖2所示,第一音頻數據j所對應的混音切換數據j為經過AEC處理后的第二音頻數據j,其中第二音頻數據j為第一音頻數據j降采樣后的數據。因此在該步驟中,實際上是將當前時刻經過AE C處理后的N路第二音頻數據作為N路第一音頻數據所對應的混音切換數據。
[0076]需要說明的是,這里混音切換數據指的是執行A E C處理后的第二音頻數據,同時在執行A E C處理的過程中還會生成實時濾波系數,顯然混音切換數據與實時濾波系數并不相同。
[0077]S 102:對多路第一音頻數據所對應的混音切換數據執行混音切換,以從所述多路第一音頻數據中獲取當前時刻待輸出的第一音頻數據。
[0078]其中,本步驟中當前時刻待輸出的第一音頻數據具體可以為多路第一音頻數據中,能量最大的至少一路第一音頻數據。
[0079]混音切換指的是從多路音頻數據中獲取待輸出的一路或者多路音頻數據。例如,從多路音頻數據中選取出正處于激活狀態(例如正有人說話)的M個音頻設備接收到的M路音頻數據,具體可以通過選取M路能量最大的音頻數據實現。
[0080]由于本發明實施例中,仍然要對原始的第一音頻數據執行A E C處理,以保證AE C處理之后的數據不會出現采樣率的損失。因此,在本步驟中,實際上是通過對多路混音切換數據執行混音切換,并根據混音切換數據與第一音頻數據的對應關系,從多路第一音頻數據中確定出待輸出的第一音頻數據。例如圖2所示,對N路混音切換數據執行混音切換,判斷出能量最大的2路混音切換數據為混音切換數據2和混音切換數據3,而混音切換數據2和混音切換數據分別是由第一音頻數據2和第一音頻數據3經過降采樣和A E C處理后得到的,因此最終混音切換得到能量最大的2路第一音頻數據為第一音頻數據2和第一音頻數據3。
[0081]需要強調的是,在本實施例中,最終仍然是要對第一音頻數據執行A E C處理,而不是對混音切換數據執行A E C處理,這是因為混音切換數據是由第一音頻數據降采樣和執行A E C處理后得到的,因此采樣率較低,如果對混音切換數據執行A E C處理,則會造成采樣率的損失,最終使得輸出音質較差。因此在圖2中,混音切換后輸出的實際上是從N路第一音頻數據中獲取的待輸出的第一音頻數據。
[0082]S 103:對當前時刻待輸出的第一音頻數據執行A E C處理,以獲取音頻輸出數據。
[0083]其中,在對當前時刻待輸出的第一音頻數據中與上一時刻待輸出的第一音頻數據相比不同的第一音頻數據執行A E C處理時,還設置A E C處理過程中的初始濾波系數。
[0084]假設上一時刻待輸出的第一音頻數據為第一音頻數據I和第二音頻數據2,當前時刻待輸出的第一音頻數據為第一音頻數據2和第二音頻數據3。可以看出,第一音頻數據2為與上一時刻相比相同的第一音頻數據,表不上一時刻已經對第一音頻數據2執行了 AE C處理,因此在當前時刻,繼續對第一音頻數據2執行A E C處理。而第一音頻數據3為與上一時刻相比不同的第一音頻數據,表示上一時刻并沒有對第一音頻數據3執行A E C處理,因此在當前時刻,開始對第一音頻數據3執行A E C處理,為了保證濾波的連續性,本步驟中在對第一音頻數據3執行A E C處理時,還設置了 A E C處理過程中的初始濾波系數。
[0085]初始濾波系數的獲取過程為:確定所述不同的第一音頻數據降采樣得到的第二音頻數據,獲取當前時刻該第二音頻數據所對應的實時濾波系數,基于該實時濾波系數獲取初始濾波系數。
[0086]在本實施例中,對多路第一音頻數據降采樣得到多路第二音頻數據,對多路第二音頻數據執行A E C處理時會生成實時濾波系數,因此在本步驟中設置的初始濾波系數,實際上是基于在上述過程中生成的實時濾波系數獲取的,而這個實時濾波系數又基于連續的A E C處理,從而使得在對不同的第一音頻數據開始執行A E C處理時,濾波系數無需重新收斂,從而提高了濾波效果。
[0087]并且,實時濾波系數并不是對第一音頻數據執行A E C時生成的,而是對降采樣得到的第二音頻數據執行AE C處理時所生成的。由于人聲的能量主要集中在低頻部分,因此低采樣率的數據一般具有人聲大部分能量,例如若第一音頻數據的采樣率為48 k Hz,第二音頻數據的采樣率為8 kH z,則第二音頻數據的能量能夠占第一音頻數據的能量的70%左右,因此對低采樣率的第二音頻數據執行A E C處理時的濾波系數,已經能夠實現消除大部分的人聲回聲。而且,對音頻數據執行A E C處理時的運算量,與音頻數據的采樣率成正比,因此相比于對第一音頻數據執行A E C處理,對低采樣率的第二音頻數據執行A E C處理時,運算量大大減小。例如對8 k H z的第二音頻數據執行A E C處理時,運算量約為對48 k H z的第二音頻數據執行A E C處理的1/6。
[0088]通過上述技術方案可知,本發明實施例用于接收多路第一音頻數據的場景,通過對多路第一音頻數據降采樣得到低采樣率的多路第二音頻數據,并且對低采樣率的每路第二音頻數據實時地執行A E C處理以生成實時濾波系數,從而保證了能夠得到基于連續的AE C處理的濾波系數。而且由于人聲的能量主要集中在低頻部分,因此低采樣率的數據一般具有人聲大部分能量,對低采樣率的第二音頻數據執行回聲抵消處理時的濾波系數,已經能夠消除大部分的人聲回聲。對于當前時刻待輸出的第一音頻數據中與上一時刻相比不同的第一音頻數據,為了保證在A E C處理過程中濾波系數的連續性,還會設置A E C處理過程中的初始濾波系數,其中初始濾波系數是根據上述基于連續的音頻回聲抵消處理的濾波系數所獲取的,從而使得濾波系數無需重新收斂,提高了濾波效果。此外,雖然本發明實施例實時地對多路音頻數據執行A E C處理,但是針對的僅是多路低采樣率(例如8、16或者32 KH z )的第二音頻數據,因此實現了在保證運算量較小的同時,提高消除回聲的效果。
[0089]同時,本發明實施例中用于執行混音切換的混音切換數據是執行A E C處理后的第二音頻數據,因此已經去除了大部分人聲回聲,相比現有技術中根據未消除回聲的音頻數據執行混音切換,切換結果更加準確。
[0090]在本實施例中,執行A E C處理時,實際上是通過自適應濾波算法模擬空間回聲路徑,從而基于回聲參考信號和模擬的空間回聲路徑獲取到模擬的回聲信號,從而進一步消除模擬的回聲信號。其中,自適應濾波算法具體可以為N LMS (No rma Iize d Least Mean Square,即歸一化最小均方算法)、RLS (Re curs i V e Least Squares,即遞歸式最小二乘算法)、MDF (Mu I t i delay Block Frequency Domain Adapt ive Filter,即延遲塊頻域自適應濾波器)等自適應濾波算法。
[0091]在本實施例中,具體可以通過多個音頻輸入設備接收多路第一音頻數據,當通過混音切換確定出待輸出的第一音頻數據后,對應的音頻輸入設備對待輸出的第一音頻數據執行A E C,而其余的音頻輸入設備,則可以對接收到的第一音頻數據執行A E C緩沖區更新以及濾波系數的更新。其中A E C緩沖區更新具體可以通過實時獲取第一音頻數據實現,而濾波系數更新則是將當前的濾波系數更新為在對所對應的第二音頻數據執行A EC處理時生成的實時濾波系數。濾波系數更新的周期可以根據運算量的限制來進行選擇,比如有N個音頻輸入設備,可以讓音頻輸入設備每N幀、或者每N /2幀更新一次濾波系數。
[0092]一般情況下,只執行A E C處理時并不能將回聲完全濾除,因此在本實施例中,還可以對經過A EC處理后的音頻輸出數據執行R E S ( R e s i d u a I Echo SuP P r e s s i ο η,即殘留回聲抑制)。之后將執行了 R E S后的音頻輸出數據輸出至通信另一方。
[0093]由于R E S —般是基于混疊的方式,因此輸出的數據通常會有幾幀的延遲。例如當R E S為75%的混疊時,輸出的數據約有2幀的延遲,當R E S為50%的混疊時,輸出的數據約有I幀的延遲。因此在本發明實施例中,當混音切換出的音頻數據發生變化時,需要將當前時刻混音切換出的第一音頻數據,延遲幾幀后輸出。下面通過一個實施例具體說明。
[0094]實施例二
[0095]請參閱圖3,本發明實施例提供了回聲消除方法的第二實施例,與其他實施例不同的是,在本實施例中,若混音切換出的第一音頻數據發生變化時,對當前時刻混音切換確定的第一音頻數據延遲輸出。
[0096]在本實施例中,對N ( N> I)路第一音頻數據分別降采樣以獲取N路第二音頻數據,對每路第二音頻數據執行A E C處理以生成每路第二音頻數據所對應的實時濾波系數。
[0097]本實施例具體包括:
[0098]S 301:獲取當前時刻N路第一音頻數據所對應的混音切換數據。其中,任一路第一音頻數據所對應的混音切換數據為該路第一音頻數據降采樣的第二音頻數據執行A EC處理后的數據。
[0099]S 302:對N路第一音頻數據所對應的混音切換數據執行混音切換,以從N路第一音頻數據中獲取當前時刻待輸出的第一音頻數據。
[0100]混音切換指的是從多路音頻數據中選取出待輸出的一路或者多路音頻數據。例如,從多路音頻數據中選取出正處于激活狀態(例如正有人說話)的M個音頻設備接收到的M路音頻數據,具體可以通過選取M路能量最大的音頻數據實現。
[0101]例如圖4所示,通過混音切換獲取到當前時刻待輸出的第一音頻數據為第一音頻數據2和第一音頻數據3。
[0102]需要強調的是,在本實施例中,最終仍然是要對第一音頻數據執行A E C處理,而不是對混音切換數據執行A E C處理,這是因為混音切換數據是由第一音頻數據降采樣和執行A E C處理后得到的,因此采樣率較低,因此如果對混音切換數據執行A E C處理,則會造成采樣率的損失,最終使得輸出音質較差。因此在圖4中,混音切換后輸出的實際上是從N路第一音頻數據中獲取的待輸出的第一音頻數據。
[0103]S 303:若當前時刻待輸出的第一音頻數據中包括與上一時刻相比不同的第一音頻數據時,執行S 304,若當前時刻待輸出的第一音頻數據中不包括與上一時刻相比不同的第一音頻數據,執行S 306。
[0104]在本實施例中,當前時刻混音切換出的第一音頻數據發生變化時,則需要對當前時刻待輸出的第一音頻數據延遲幾幀后再輸出,因此執行S 304。例如,當前時刻經過混音切換,獲取到待輸出的第一音頻數據為第一音頻數據2和第一音頻數據3,而上一時刻經過混音切換,獲取到待輸出的第一音頻數據為第一音頻數據I和第一音頻數據2,則可以看出,當前時刻混音切換出的第一音頻數據2和第一音頻數據3,較上一時刻發生了變化,因此,需要對第一音頻數據2和第一音頻數據3延遲幾幀后再輸出。
[0105]S 304:在當前時刻之后的第一時段內,對上一時刻待輸出的第一音頻數據執行A E C處理,以獲取第一時段內的音頻輸出數據,對第一時段內的音頻輸出數據執行R ES。
[0106]其中,第一時段由音頻輸出數據累計達到預設幀數花費的時間確定。
[0107]在本實施例中,由于要對音頻輸出數據執行R E S,而RE S—般是基于混疊的方式,輸出的數據通常會有幾幀的延遲,因此,當本實施例中混音切換出的音頻數據發生變化時,也需要將當前時刻混音切換出的第一音頻數據延遲幾幀再輸出,從而配合R E S的延遲輸出。
[0108]其中,延遲的具體時長(即第一時段)由音頻輸出數據累計達到預設幀數花費的時間確定。因此這里的預設幀數,實際上可以由執行R E S時造成的延遲幀數獲取,具體可以等于執行RES時造成的延遲幀數,也可以為執行RES時造成的延遲幀數的倍數。例如,R E S為75%的混疊,此時R E S會造成2幀的延遲,則預設幀數可以為2幀,也可以為2幀的倍數(比如2倍)等等。
[0109]需要說明的是,在第一時段內,也可以對當前時刻待輸出的第一音頻數據執行AE C處理,但是并不作為音頻輸出數據。
[0110]并且在第一時段內,為了將R E S的狀態進行更新,還可以對當前時刻待輸出的第一音頻數據執行RES。
[0111]S 305:在第一時段之后,對所述當前時刻待輸出的第一音頻數據執行A E C處理,以獲得第一時段之后的音頻輸出數據,對第一時段之后的音頻輸出數據執行R E S。結束流程。
[0112]在延遲了一定時間之后,才對A E C處理之后的當前時刻待輸出的第一音頻數據進行輸出,再對輸出的數據執行R E S處理。
[0113]其中,在對所述當前時刻待輸出的第一音頻數據中與上一時刻待輸出的第一音頻數據相比不同的第一音頻數據執行A E C時,還設置A E C處理過程中的初始濾波系數。初始濾波系數的獲取過程為:確定所述不同的第一音頻數據降采樣得到的第二音頻數據,獲取當前時刻該第二音頻數據所對應的實時濾波系數,基于該實時濾波系數獲取初始濾波系數。
[0114]下面分別以一路上一時刻待輸出的第一音頻數據(第一音頻數據I),和一路當前時刻待輸出的第一音頻數據(第一音頻數據3)為例,說明步驟S 304和步驟S 305的優選實現方式。
[0115]如圖5所示,對于第一音頻數據1,判斷輸出的數據是否達到預設幀數,如果否,則執行A E C緩沖區更新,將更新后的第一音頻數據I執行A E C處理和R E S處理,之后輸出至通信另一方。如果是,則不再執行A E C處理和R E S處理,而是只執行A E C緩沖區更新,以及濾波系數的更新等操作。
[0116]如圖6所示,對于第一音頻數據3,判斷輸出的數據是否達到預設幀數,如果否,則執行A E C緩沖區更新,以及濾波系數的更新等操作,此時還可以執行R E S。如果是,則執行A E C緩沖區更新,設置初始濾波系數并執行A E C處理,執行R E S處理,之后輸出
至通信另一方。
[0117]S 306:對所述當前時刻待輸出的第一音頻數據執行A E C處理,以獲得音頻輸出數據,對該音頻輸出數據執行R E S。結束流程。
[0118]通過上述技術方案可知,在本實施例中,由于對音頻輸出數據執行R E S,而R ES 一般是基于混疊的方式,輸出的數據會有幾幀的延遲。因此在混音切換出的第一音頻數據發生變化時,在音頻輸出數據未達到預設幀數時輸出A E C處理后的上一時刻待輸出的第一音頻數據,而在音頻輸出數據達到預設幀數之后輸出A E C處理后的當前時刻待輸出的第一音頻數據。
[0119]在本實施例中,實際上已經能夠確定出在執行混音切換后的第一時段內輸出的數據,因此可以對本實施例進一步優化,從而減少運算量,下面通過一個實施例具體說明。
[0120]實施例三
[0121]請參閱圖7,本發明實施例提供了回聲消除方法的第三實施例,與其他實施例不同的是,在本實施例中,在對當前時刻混音切換后獲取的第一音頻數據延遲輸出的基礎上,進一步優化算法以減少運算量。[0122]在本實施例中,對N (N> I)路第一音頻數據分別降采樣以獲取N路第二音頻數據,對每路第二音頻數據執行A EC處理以生成每路第二音頻數據所對應的實時濾波系數。
[0123]本實施例具體包括:
[0124]S 701:獲取當前時刻N路第一音頻數據所對應的混音切換數據。任一路第一音頻數據所對應的混音切換數據為該路第一音頻數據降采樣的第二音頻數據執行A E C處理后的數據。
[0125]S 702:對N路第一音頻數據所對應的混音切換數據執行混音切換,以從N路第一音頻數據中獲取當前時刻待輸出的第一音頻數據。
[0126]例如,通過混音切換獲取到當前時刻待輸出的第一音頻數據為第一音頻數據2和第一音頻數據3。
[0127]需要強調的是,在本實施例中,最終仍然是要對第一音頻數據執行A E C處理,而不是對混音切換數據執行A E C處理,這是因為混音切換數據是由第一音頻數據降采樣和執行A E C處理后得到的,因此采樣率較低,如果對混音切換數據執行A E C處理,則會造成采樣率的損失,最終使得輸出音質較差。因此在圖8中,混音切換后輸出的實際上是從N路第一音頻數據中獲取的待輸出的第一音頻數據。
[0128]S 703,若當前時刻待輸出的第一音頻數據中包括與上一時刻相比不同的第一音頻數據時,執行S 704,若當前時刻待輸出的第一音頻數據中不包括與上一時刻相比不同的第一音頻數據,執行S 710。
[0129]S 704:在當前時刻之后的第一時段內,對上一時刻待輸出的第一音頻數據執行A E C處理,以獲取所述第一時段內的音頻輸出數據,對第一時段內的音頻輸出數據執行RE S。其中,所述第一時段由音頻輸出數據累計達到預設幀數花費的時間確定。
[0130]例如,上一時刻待輸出的第一音頻數據為第一音頻數據I和第一音頻數據2。因此在第一時段內,只輸出A E C處理之后的第一音頻數據I和第一音頻數據2。
[0131]需要說明的是,在第一時段內,也可以對當前時刻待輸出的第一音頻數據執行AE C處理,但是并不作為音頻輸出數據。
[0132]并且在第一時段內,為了將R E S的狀態進行更新,還可以對當前時刻待輸出的第一音頻數據執行RES。
[0133]S 705:在第一時段內,暫停執行以下步驟:對所述上一時刻待輸出的第一音頻數據降采樣以及對該降采樣得到的第二音頻數據執行A EC處理。
[0134]以上一時刻混音切換確定的第一音頻數據為第一音頻數據I和第一音頻數據2為例,在本發明實施例中的方法第二實施例中,在第一時段內,不僅對第一音頻數據I和第一音頻數據2執行了 A E C處理,而且還對第二音頻數據I和第二音頻數據2執行A E C處理。實際上由于在第一時段內,輸出的是A E C處理后的上一時刻待輸出的第一音頻數據:第一音頻數據I和第一音頻數據2,而此時的A E C處理必然是連續不間斷的,因此無需設置初始濾波系數,可以暫停對第一音頻數據I和第一音頻數據2的降采樣,以及暫停對第二音頻數據I和第二音頻數據2的A E C處理,以減少運算量。
[0135]但是,由于本步驟中暫停了降采樣和對降采樣后的音頻數據的A E C處理,因此在循環執行混音切換時所使用的混音切換數據,具體通過下面的步驟獲取。[0136]S 706:在第一時段內,對A E C處理后的所述上一時刻待輸出的第一音頻數據執行降采樣,將該降采樣后的數據作為所述上一時刻待輸出的第一音頻數據所對應的混音切換數據,以用于執行混音切換。
[0137]例如圖8所示,上一時刻待輸出的第一音頻數據為第一音頻數據I和第一音頻數據2,因此在混音切換后的第一時段內,分別對A E C處理之后的第一音頻數據I和第一音頻數據2執行降采樣,并將降采樣之后的數據作為第一音頻數據I和第一音頻數據2分別對應的混音切換數據,用于在下一時刻執行混音切換。
[0138]S 707:在第一時段之后,對所述當前時刻待輸出的第一音頻數據執行A E C處理,以獲得所述第一時段之后的音頻輸出數據,對第一時段之后的音頻輸出數據執行R ES。
[0139]其中,在對所述當前時刻待輸出的第一音頻數據中與上一時刻待輸出的第一音頻數據相比不同的第一音頻數據執行A E C處理時,還設置A E C處理過程中的初始濾波系數。初始濾波系數的獲取過程為:確定所述不同的第一音頻數據降采樣得到的第二音頻數據,獲取當前時刻該第二音頻數據所對應的實時濾波系數,基于該實時濾波系數獲取初始濾波系數。
[0140]S 708:在所述第一時段之后,恢復執行在所述第一時段內暫停的步驟。
[0141]在第一時段之后,開始輸出AEC處理后的當前時刻待輸出的第一音頻數據,因此重新恢復對上一時刻待輸出的第一音頻數據執行降采樣,以及對相應的第二音頻數據執行A E C處理這兩個步驟,例如仍以圖8為例,恢復執行對第一音頻數據I和第一音頻數據2的降采樣,以及恢復執行對第二音頻數據I和第二音頻數據2執行A E C處理,從而能夠實時獲取對應的混音切換數據,以用于執行混音切換。
[0142]S 709:在所述第一時段之后,確定所述上一時刻待輸出的第一音頻數據降米樣得到的第二音頻數據,將對該第二音頻數據執行A E C處理后的數據作為所述上一時刻待輸出的第一音頻數據所對應的混音切換數據,以用于執行混音切換。結束流程。
[0143]例如圖8所示,由于在第一時段之后,開始輸出當前時刻待輸出的第一音頻數據:第一音頻數據2和第一音頻數據3,因此上一時刻待輸出的第一音頻數據:第一音頻數據I和第一音頻數據2分別對應的混音切換數據,重新恢復為A E C處理之后的第二音頻數據I和第二音頻數據2。
[0144]S 710:對所述當前時刻待輸出的第一音頻數據執行A E C處理,以獲得音頻輸出數據,對該音頻輸出數據執行R E S。結束流程。
[0145]需要說明的是,在本實施例中,步驟S 704 一步驟S 706的執行順序不受限定,可以同時執行也可以以先后順序執行。類似的,步驟S 707 —步驟S 709的執行順序也不受限定。
[0146]通過上述技術方案可知,在本實施例中,不僅對當前時刻待輸出的第一音頻數據延遲輸出,而且在第一時段內,也就是音頻輸出數據未達到預設幀數時,暫停執行:對上一時刻待輸出的第一音頻數據的降采樣以及對該降采樣后的第二音頻數據的A EC處理。并且對A E C后的第一音頻數據進行降采樣,以作為混音切換數據,從而節省了一次對第二音頻數據的A E C處理的運算量,實現了算法的優化。
[0147]下面以第一音頻數據的采樣率為48 k H z,第二音頻數據的采樣率為8kHz,共接收18路第一音頻數據(即N= 18),待輸出的第一音頻數據為一路(即M= I)為例,說明本實施例在一次循環過程中所需的總運算量:
[0148]I路對第一音頻數據執行A E C處理的運算量:180 M
[0149]17路對第二音頻數據執行A E C處理的運算量:17X30 M= 510 M
[0150]I路設置初始濾波系數的運算量:15 M
[0151]17路A E C緩沖區更新的運算量:17X5 M= 85 M
[0152]18路降采樣的運算量:18X3 M= 54 M
[0153]I路R E S處理的運算量:40 M
[0154]可見,在本實施例中,一次循環過程中所需的總運算能力約為上述運算量之和,SP884 M。而如果對每路第一音頻數據執行A E C處理,之后再對A E C處理之后的數據執行混音切換,則在一次循環過程中所需的總運算量,至少為18路對第一音頻數據執行A E C處理的運算量,即18X180 M= 3240 M。顯然,本實施例中的運算量非常小,系統無需很高的運算能力,對系統的負擔和要求都很小。
[0155]上面對本發明實施例中的回聲消除方法的實施例進行了描述,下面將從模塊化功能實體的角度對本發明實施例中的回聲消除裝置進行描述。
[0156]實施例四
[0157]請參閱圖9,本發明實施例提供了回聲消除裝置的第一實施例,在本實施例具體包括:生成單元901、獲取單元902、混音切換單元903和回聲抵消單元904。
[0158]生成單元901,用于對多路第一音頻數據分別降采樣以獲取多路第二音頻數據,對每路第二音頻數據執行A EC處理以生成每路第二音頻數據所對應的實時濾波系數。
[0159]在本實施例中,可以通過多路音頻輸入設備(例如麥克風)實時地接收多路第一音頻數據,一般情況下第一音頻數據為高采樣率的數據,對實時接收的多路第一音頻數據分別降采樣。例如圖2所示,在某一時刻,接收到N ( N> I)路第一音頻數據(第一音頻數據1、第一音頻數據2、...、第一音頻數據N ),對N路第一音頻數據分別降采樣,得到N路第二音頻數據(第二音頻數據1、第二音頻數據2、…、第二音頻數據N)。其中,對第一音頻數據j降采樣得到第二音頻數據j, N^j > I。之后對每路第二音頻數據執行A E C處理,從而得到了 N路混音切換數據,并且在對每路第二音頻數據執行A E C處理時,都能夠生成A E C處理的濾波系數。可見,通過循環執行圖2所示的上述步驟,能夠實時地獲取A E C處理后的第二音頻數據,以及對每路第二音頻數據執行A E C處理時生成的實時濾波系數。
[0160]其中,第一音頻數據的采樣率一般為48 k H z。第二音頻數據的采樣率一般至少為8 k H z,例如可以為8、16或者32 kHz等等,本發明實施例對此不做限定。
[0161]獲取單元902,用于獲取當前時刻多路第一音頻數據所對應的混音切換數據。其中,任一路第一音頻數據所對應的混音切換數據為該路第一音頻數據降采樣的第二音頻數據執行A E C處理后的數據。 [0162]例如圖2所示,第一音頻數據j所對應的混音切換數據j為經過AEC處理后的第二音頻數據j,其中第二音頻數據j為第一音頻數據j降采樣后的數據。因此在該步驟中,實際上是將當前時刻經過AE C處理后的N路第二音頻數據作為N路第一音頻數據所對應的混音切換數據。[0163]需要說明的是,這里混音切換數據指的是執行A E C處理后的第二音頻數據,同時在執行A E C處理的過程中還會生成實時濾波系數,顯然混音切換數據與實時濾波系數并不相同。
[0164]混音切換單元903,用于對多路第一音頻數據所對應的混音切換數據執行混音切換,以從所述多路第一音頻數據中獲取當前時刻待輸出的第一音頻數據。
[0165]其中,本步驟中當前時刻待輸出的第一音頻數據具體可以為多路第一音頻數據中,能量最大的至少一路第一音頻數據。
[0166]混音切換指的是從多路音頻數據中獲取待輸出的一路或者多路音頻數據。例如,從多路音頻數據中選取出正處于激活狀態(例如正有人說話)的M個音頻設備接收到的M路音頻數據,具體可以通過選取M路能量最大的音頻數據實現。
[0167]由于本發明實施例中,仍然要對原始的第一音頻數據執行A E C處理,以保證AE C處理之后的數據不會出現采樣率的損失。因此,在本步驟中,實際上是混音切換單元903通過對多路混音切換數據執行混音切換,并根據混音切換數據與第一音頻數據的對應關系,從多路第一音頻數據中確定出待輸出的第一音頻數據。例如圖2所示,對N路混音切換數據執行混音切換,判斷出能量最大的2路混音切換數據為混音切換數據2和混音切換數據3,而混音切換數據2和混音切換數據分別是由第一音頻數據2和第一音頻數據3經過降采樣和A E C處理后得到的,因此最終混音切換得到能量最大的2路第一音頻數據為第一音頻數據2和第一音頻數據3。
[0168]需要強調的是,在本實施例中,最終仍然是要對第一音頻數據執行A E C處理,而不是對混音切換數據執行A E C處理,這是因為混音切換數據是由第一音頻數據降采樣和執行A E C處理后得到的,因此采樣率較低,如果對混音切換數據執行A E C處理,則會造成采樣率的損失,最終使得輸出音質較差。因此在圖2中,混音切換后輸出的實際上是從N路第一音頻數據中獲取的待輸出的第一音頻數據。
[0169]回聲抵消單元904,用于對當前時刻待輸出的第一音頻數據執行A E C處理,以獲取音頻輸出數據。
[0170]其中,回聲抵消單元904在對當前時刻待輸出的第一音頻數據中與上一時刻待輸出的第一音頻數據相比不同的第一音頻數據執行A E C處理時,還設置A E C處理過程中的初始濾波系數。
[0171]假設上一時刻待輸出的第一音頻數據為第一音頻數據I和第二音頻數據2,當前時刻待輸出的第一音頻數據為第一音頻數據2和第二音頻數據3。可以看出,第一音頻數據2為與上一時刻相比相同的第一音頻數據,表不上一時刻已經對第一音頻數據2執行了 AE C處理,因此在當前時刻,繼續對第一音頻數據2執行A E C處理。而第一音頻數據3為與上一時刻相比不同的第一音頻數據,表示上一時刻并沒有對第一音頻數據3執行A E C處理,因此在當前時刻,開始對第一音頻數據3執行A E C處理,為了保證濾波的連續性,本步驟中在對第一音頻數據3執行A E C處理時,還設置了 A E C處理過程中的初始濾波系數。
[0172]初始濾波系數的獲取過程為:確定所述不同的第一音頻數據降采樣得到的第二音頻數據,獲取當前時刻該第二音頻數據所對應的實時濾波系數,基于該實時濾波系數獲取初始濾波系數。[0173]在本實施例中,生成單元901對多路第一音頻數據降采樣得到多路第二音頻數據,對多路第二音頻數據執行A E C處理時會生成實時濾波系數,因此在本步驟中設置的初始濾波系數,實際上是基于在上述過程中生成的實時濾波系數獲取的,而這個實時濾波系數又基于連續的AE C處理,從而使得在對不同的第一音頻數據開始執行A E C處理時,濾波系數無需重新收斂,從而提高了濾波效果。
[0174]并且,實時濾波系數并不是對第一音頻數據執行A E C時生成的,而是對降采樣得到的第二音頻數據執行AE C處理時所生成的。由于人聲的能量主要集中在低頻部分,因此低采樣率的數據一般具有人聲大部分能量,例如若第一音頻數據的采樣率為48 k Hz,第二音頻數據的采樣率為8 kH z,則第二音頻數據的能量能夠占第一音頻數據的能量的70%左右,因此對低采樣率的第二音頻數據執行A E C處理時的濾波系數,已經能夠實現消除大部分的人聲回聲。而且,對音頻數據執行A E C處理時的運算量,與音頻數據的采樣率成正比,因此相比于對第一音頻數據執行A E C處理,對低采樣率的第二音頻數據執行A E C處理時,運算量大大減小。例如對8 k H z的第二音頻數據執行A E C處理時,運算量約為對48 k H z的第二音頻數據執行A E C處理的1/6。
[0175]通過上述技術方案可知,本發明實施例用于接收多路第一音頻數據的場景,通過生成單元901對多路第一音頻數據降采樣得到低采樣率的多路第二音頻數據,并且對低采樣率的每路第二音頻數據實時地執行A E C處理以生成實時濾波系數,從而保證了能夠得到基于連續的AE C處理的濾波系數。而且由于人聲的能量主要集中在低頻部分,因此低采樣率的數據一般具有人聲大部分能量,對低采樣率的第二音頻數據執行回聲抵消處理時的濾波系數,已經能夠消除大部分的人聲回聲。對于當前時刻待輸出的第一音頻數據中與上一時刻相比不同的第一音頻數據,為了保證回聲抵消單元904在A E C處理過程中濾波系數的連續性,還會設置A E C處理過程中的初始濾波系數,其中初始濾波系數是根據上述基于連續的音頻回聲抵消處理的濾波系數所獲取的,從而使得濾波系數無需重新收斂,提高了濾波效果。此外,雖 然本發明實施例實時地對多路音頻數據執行A E C處理,但是針對的僅是多路低采樣率(例如8、16或者32 KHz )的第二音頻數據,因此實現了在保證運算量較小的同時,提高消除回聲的效果。
[0176]同時,本發明實施例中用于執行混音切換的混音切換數據是執行A E C處理后的第二音頻數據,因此已經去除了大部分人聲回聲,相比現有技術中根據未消除回聲的音頻數據執行混音切換,切換結果更加準確。
[0177]在本實施例中,生成單元901和回聲抵消單元904執行A E C處理時,實際上是通過自適應濾波算法模擬空間回聲路徑,從而基于回聲參考信號和模擬的空間回聲路徑獲取到模擬的回聲信號,從而進一步消除模擬的回聲信號。其中,自適應濾波算法具體可以為NLMS (Normal ized Least Mean Square,即歸一化最小均方算法)、RLS(Recursive Least Squares,即遞歸式最小二乘算^)>MDF (Mul t i de I ay Block Frequency DomainAdaptive Filte r ,即延遲塊頻域自適應濾波器)等自適應濾波算法。
[0178]在本實施例中,
[0179]具體可以通過多個音頻輸入設備接收多路第一音頻數據并輸出至生成單元901,當通過混音切換確定出待輸出的第一音頻數據后,對應的音頻輸入設備中的回聲抵消單元對待輸出的第一音頻數據執行A E C,而其余的音頻輸入設備,則可以對接收到的第一音頻數據執行A E C緩沖區更新以及濾波系數的更新。其中A E C緩沖區更新具體可以通過實時獲取第一音頻數據實現,而濾波系數更新則是將當前的濾波系數更新為在對所對應的第二音頻數據執行A E C處理時生成的實時濾波系數。濾波系數更新的周期可以根據運算量的限制來進行選擇,比如有N個音頻輸入設備,可以讓音頻輸入設備每N幀、或者每N /2幀更新一次濾波系數。
[0180]一般情況下,只執行A E C處理時并不能將回聲完全濾除,因此在本實施例中,還可以包括第一回聲抑制單元,由第一回聲抑制單元對經過A E C處理后的音頻輸出數據執行 RES (Residual Echo Suppress 1n,即殘留回聲抑制)。之后將執行了 R ES后的音頻輸出數據輸出至通信另一方。
[0181]由于R E S —般是基于混疊的方式,因此輸出的數據通常會有幾幀的延遲。例如當R E S為75%的混疊時,輸出的數據約有2幀的延遲,當R E S為50%的混疊時,輸出的數據約有I幀的延遲。因此在本發明實施例中,當混音切換出的音頻數據發生變化時,需要將當前時刻混音切換出的第一音頻數據,延遲幾幀后輸出。下面通過一個實施例具體說明。
[0182]實施例五
[0183]請參閱圖10,本發明實施例提供了回聲消除裝置的第二實施例,與其他實施例不同的是,在本實施例中,若混音切換出的第一音頻數據發生變化時,對當前時刻混音切換確定的第一音頻數據延遲輸出。
[0184]本實施例具體包括:生成單元1001、獲取單元1002、混音切換單元1003、回聲抵消單元1004和第一回聲抑制單元1005。
[0185]生成單元1001,用于對N (N> I)路第一音頻數據分別降采樣以獲取N路第二音頻數據,對每路第二音頻數據執行A EC處理以生成每路第二音頻數據所對應的實時濾波系數。
[0186]獲取單元1002,用于獲取當前時刻N路第一音頻數據所對應的混音切換數據。其中,任一路第一音頻數據所對應的混音切換數據為該路第一音頻數據降采樣的第二音頻數據執行A E C處理后的數據。
[0187]混音切換單元1003,用于對N路第一音頻數據所對應的混音切換數據執行混音切換,以從N路第一音頻數據中獲取當前時刻待輸出的第一音頻數據。
[0188]混音切換指的是從多路音頻數據中選取出待輸出的一路或者多路音頻數據。例如,從多路音頻數據中選取出正處于激活狀態(例如正有人說話)的M個音頻設備接收到的M路音頻數據,具體可以通過選取M路能量最大的音頻數據實現。
[0189]例如圖4所示,通過混音切換獲取到當前時刻待輸出的第一音頻數據為第一音頻數據2和第一音頻數據3。
[0190]需要強調的是,在本實施例中,最終仍然是要對第一音頻數據執行A E C處理,而不是對混音切換數據執行A E C處理,這是因為混音切換數據是由第一音頻數據降采樣和執行A E C處理后得到的,因此采樣率較低,因此如果對混音切換數據執行A E C處理,則會造成采樣率的損失,最終使得輸出音質較差。因此在圖4中,混音切換后輸出的實際上是從N路第一音頻數據中獲取的待輸出的第一音頻數據。
[0191]回聲抵消單元1004用于,若當前時刻待輸出的第一音頻數據中包括與上一時刻相比不同的第一音頻數據時,執行第一功能,若當前時刻待輸出的第一音頻數據中不包括與上一時刻相比不同的第一音頻數據,執行第二功能。
[0192]在本實施例中,當前時刻混音切換出的第一音頻數據發生變化時,則需要對當前時刻待輸出的第一音頻數據延遲幾幀后再輸出,因此回聲抵消單元1004執行第一功能。例如,當前時刻經過混音切換,獲取到待輸出的第一音頻數據為第一音頻數據2和第一音頻數據3,而上一時刻經過混音切換,獲取到待輸出的第一音頻數據為第一音頻數據I和第一音頻數據2,則可以看出,當前時刻混音切換出的第一音頻數據2和第一音頻數據3,較上一時刻發生了變化,因此,需要對第一音頻數據2和第一音頻數據3延遲幾幀后再輸出。
[0193]第一功能包括:在當前時刻之后的第一時段內,對上一時刻待輸出的第一音頻數據執行A E C處理,以獲取第一時段內的音頻輸出數據。
[0194]其中,第一時段由音頻輸出數據累計達到預設幀數花費的時間確定。
[0195]在本實施例中,由于要對音頻輸出數據執行R E S,而RE S—般是基于混疊的方式,輸出的數據通常會有幾幀的延遲,因此,當本實施例中混音切換出的音頻數據發生變化時,回聲抵消單元1004也需要將當前時刻混音切換出的第一音頻數據延遲幾幀再輸出,從而配合RE S的延遲輸出。
[0196]其中,延遲的具體時長(即第一時段)由音頻輸出數據累計達到預設幀數花費的時間確定。因此這里的預設幀數,實際上可以由執行R E S時造成的延遲幀數獲取,具體可以等于執行RES時造成的延遲幀數,也可以為執行RES時造成的延遲幀數的倍數。例如,R E S為75%的混疊,此時R E S會造成2幀的延遲,則預設幀數可以為2幀,也可以為2幀的倍數(比如2倍)等等。
[0197]需要說明的是,在第一時段內,回聲抵消單元1004也可以對當前時刻待輸出的第一音頻數據執行A E C處理,但是并不作為音頻輸出數據。
[0198]并且在第一時段內,為了將R E S的狀態進行更新,本實施例還可以包括第二回聲抑制單元1005,由第二回聲抑制單元1005對當前時刻待輸出的第一音頻數據執行R ES。
[0199]第一功能還包括;在第一時段之后,對所述當前時刻待輸出的第一音頻數據執行A E C處理,以獲得第一時段之后的音頻輸出數據。
[0200]其中,回聲抵消單元1004在對所述當前時刻待輸出的第一音頻數據中與上一時刻待輸出的第一音頻數據相比不同的第一音頻數據執行A E C時,還設置A E C處理過程中的初始濾波系數。初始濾波系數的獲取過程為:確定所述不同的第一音頻數據降采樣得到的第二音頻數據,獲取當前時刻該第二音頻數據所對應的實時濾波系數,基于該實時濾波系數獲取初始濾波系數。
[0201]第二功能包括:對所述當前時刻待輸出的第一音頻數據執行A E C處理,以獲得音頻輸出數據。
[0202]第一回聲抑制單元1005用于,用于對所述音頻輸出數據執行殘留回聲抑制。
[0203]下面分別以一路上一時刻待輸出的第一音頻數據(第一音頻數據I),和一路當前時刻待輸出的第一音頻數據(第一音頻數據3)為例,說明回聲抵消單元1004的第一功能和第一回聲抑制單兀1005的優選實現方式。
[0204]如圖5所示,對于第一音頻數據1,回聲抵消單元1004判斷輸出的數據是否達到預設幀數,如果否,則執行A E C緩沖區更新,將更新后的第一音頻數據I執行A E C處理,并由第一回聲抑制單元1005執行R E S處理,之后輸出至通信另一方。如果是,則不再執行A E C處理和R E S處理,而是只執行A E C緩沖區更新,以及濾波系數的更新等操作。
[0205]如圖6所示,對于第一音頻數據3,回聲抵消單元1004判斷輸出的數據是否達到預設幀數,如果否,則執行A E C緩沖區更新,以及濾波系數的更新等操作,此時還可以由第一回聲抑制單元1005執行R E S。如果是,則執行A E C緩沖區更新,設置初始濾波系數并執行A E C處理,執行R E S處理,之后輸出至通信另一方。
[0206]通過上述技術方案可知,在本實施例中,由于第一回聲抑制單兀1005對音頻輸出數據執行R E S,而R E S —般是基于混疊的方式,輸出的數據會有幾幀的延遲。因此在混音切換出的第一音頻數據發生變化時,在音頻輸出數據未達到預設幀數時輸出A E C處理后的上一時刻待輸出的第一音頻數據,而在音頻輸出數據達到預設幀數之后輸出A E C處理后的當前時刻待輸出的第一音頻數據。
[0207]在本實施例中,實際上已經能夠確定出在執行混音切換后的第一時段內輸出的數據,因此可以對本實施例進一步優化,從而減少運算量,下面通過一個實施例具體說明。
[0208]實施例六
[0209]請參閱圖11,本發明實施例提供了回聲消除裝置的第三實施例,與其他實施例不同的是,在本實施例中,在對當前時刻混音切換后獲取的第一音頻數據延遲輸出的基礎上,進一步優化算法以減少運算量。
[0210]本實施例具體包括:生成單元1101、獲取單元1102、混音切換單元1103、回聲抵消單元1104和第一回聲抑制單元1105。
[0211]生成單元1101,用于對N (N> I)路第一音頻數據分別降采樣以獲取N路第二音頻數據,對每路第二音頻數據執行A EC處理以生成每路第二音頻數據所對應的實時濾波系數。
[0212]獲取單元1102,獲取當前時刻N路第一音頻數據所對應的混音切換數據。任一路第一音頻數據所對應的混音切換數據為該路第一音頻數據降采樣的第二音頻數據執行AE C處理后的數據。
[0213]混音切換單元1103,用于對N路第一音頻數據所對應的混音切換數據執行混音切換,以從N路第一音頻數據中獲取當前時刻待輸出的第一音頻數據。
[0214]例如,通過混音切換獲取到當前時刻待輸出的第一音頻數據為第一音頻數據2和第一音頻數據3。
[0215]需要強調的是,在本實施例中,最終仍然是要對第一音頻數據執行A E C處理,而不是對混音切換數據執行A E C處理,這是因為混音切換數據是由第一音頻數據降采樣和執行A E C處理后得到的,因此采樣率較低,如果對混音切換數據執行A E C處理,則會造成采樣率的損失,最終使得輸出音質較差。因此在圖8中,混音切換后輸出的實際上是從N路第一音頻數據中獲取的待輸出的第一音頻數據。
[0216]回聲抵消單元1104,用于若當前時刻待輸出的第一音頻數據中包括與上一時刻相比不同的第一音頻數據時,執行第一功能,若當前時刻待輸出的第一音頻數據中不包括與上一時刻相比不同的第一音頻數據,執行第二功能。
[0217]第一功能包括以下六個子功能:[0218]第一子功能:在當前時刻之后的第一時段內,對上一時刻待輸出的第一音頻數據執行A E C處理,以獲取所述第一時段內的音頻輸出數據。其中,所述第一時段由音頻輸出數據累計達到預設幀數花費的時間確定。
[0219]例如,上一時刻待輸出的第一音頻數據為第一音頻數據I和第一音頻數據2。因此在第一時段內,只輸出A E C處理之后的第一音頻數據I和第一音頻數據2。
[0220]需要說明的是,在第一時段內,也可以對當前時刻待輸出的第一音頻數據執行AE C處理,但是并不作為音頻輸出數據。
[0221]并且在第一時段內,為了將R E S的狀態進行更新,本實施例還可以包括第二回聲抑制單元,由第二回聲抑制單元對當前時刻待輸出的第一音頻數據執行R E S。
[0222]第二子功能:在第一時段內,暫停執行以下步驟:對所述上一時刻待輸出的第一音頻數據降采樣以及對該降采樣得到的第二音頻數據執行A EC處理。
[0223]以上一時刻混音切換確定的第一音頻數據為第一音頻數據I和第一音頻數據2為例,在本發明實施例中的裝置第二實施例中,在第一時段內,回聲抵消單元1004不僅對第一音頻數據I和第一音頻數據2執行了 A E C處理,而且還對第二音頻數據I和第二音頻數據2執行A E C處理。實際上由于在第一時段內,輸出的是A E C處理后的上一時刻待輸出的第一音頻數據:第一音頻數據I和第一音頻數據2,而此時的A E C處理必然是連續不間斷的,因此無需設置初始濾波系數,可以暫停對第一音頻數據I和第一音頻數據2的降采樣,以及暫停對第二音頻數據I和第二音頻數據2的A E C處理,以減少運算量。
[0224]但是,由于暫停了降采樣和對降采樣后的音頻數據的A E C處理,因此在循環執行混音切換時所使用的混音切換數據,具體通過由回聲抵消單元1104執行以下的子功能獲取。
[0225]第三子功能:在第一時段內,對A E C處理后的所述上一時刻待輸出的第一音頻數據執行降采樣,將該降采樣后的數據作為所述上一時刻待輸出的第一音頻數據所對應的混音切換數據,以用于執行混音切換。
[0226]例如圖8所示,上一時刻待輸出的第一音頻數據為第一音頻數據I和第一音頻數據2,因此在混音切換后的第一時段內,回聲抵消單元1004分別對A E C處理之后的第一音頻數據I和第一音頻數據2執行降采樣,并將降采樣之后的數據作為第一音頻數據I和第一音頻數據2分別對應的混音切換數據,用于在下一時刻執行混音切換。
[0227]第四子功能:在第一時段之后,對所述當前時刻待輸出的第一音頻數據執行A EC處理,以獲得所述第一時段之后的音頻輸出數據。
[0228]其中,在對所述當前時刻待輸出的第一音頻數據中與上一時刻待輸出的第一音頻數據相比不同的第一音頻數據執行A E C處理時,回聲抵消單元1004還設置A E C處理過程中的初始濾波系數。初始濾波系數的獲取過程為:確定所述不同的第一音頻數據降采樣得到的第二音頻數據,獲取當前時刻該第二音頻數據所對應的實時濾波系數,基于該實時濾波系數獲取初始濾波系數。
[0229]第五子功能:在所述第一時段之后,恢復執行在所述第一時段內暫停的步驟。
[0230]在第一時段之后,開始輸出AE C處理后的當前時刻待輸出的第一音頻數據,因此重新恢復對上一時刻待輸出的第一音頻數據執行降采樣,以及對相應的第二音頻數據執行A E C處理這兩個步驟,例如仍以圖8為例,恢復執行對第一音頻數據I和第一音頻數據2的降采樣,以及恢復執行對第二音頻數據I和第二音頻數據2執行A E C處理,從而能夠實時獲取對應的混音切換數據,以用于執行混音切換。
[0231]第六子功能:在所述第一時段之后,確定所述上一時刻待輸出的第一音頻數據降采樣得到的第二音頻數據,將對該第二音頻數據執行A E C處理后的數據作為所述上一時刻待輸出的第一音頻數據所對應的混音切換數據,以用于執行混音切換。
[0232]例如圖8所示,由于在第一時段之后,開始輸出當前時刻待輸出的第一音頻數據:第一音頻數據2和第一音頻數據3,因此上一時刻待輸出的第一音頻數據:第一音頻數據I和第一音頻數據2分別對應的混音切換數據,重新恢復為A E C處理之后的第二音頻數據I和第二音頻數據2。
[0233]第二功能:對所述當前時刻待輸出的第一音頻數據執行A E C處理,以獲得音頻輸出數據,對該音頻輸出數據執行R E S。
[0234]第一回聲抑制單元1105用于,用于對所述音頻輸出數據執行殘留回聲抑制。
[0235]通過上述技術方案可知,在本實施例中,回聲抵消單元1104不僅對當前時刻待輸出的第一音頻數據延遲輸出,而且在第一時段內,也就是音頻輸出數據未達到預設幀數時,回聲抵消單元1104暫停執行:對上一時刻待輸出的第一音頻數據的降采樣以及對該降采樣后的第二音頻數據的A EC處理。并且對A EC后的第一音頻數據進行降采樣,以作為混音切換數據,從而節省了一次對第二音頻數據的A E C處理的運算量,實現了算法的優化。
[0236]
[0237]上面從模塊化功能實體的角度對本發明實施例中的回聲消除裝置的實施例進行描述。下面將從硬件處理的角度對本發明實施例中的回聲消除裝置的實施例進行描述。
[0238]實施例七
[0239]請參閱圖12,本發明實施例提供了回聲消除裝置的第四實施例,本實施例具體包括:處理器(processor) 1201、通信接 口(Communi cat 1ns Int e r f a c e ) 1202、存儲器(memory) 1203 和通信總線 1204。
[0240]處理器1201,通信接口 1202,存儲器1203通過總線1204完成相互間的通信。
[0241]處理器1201,用于執行程序1205。
[0242]具體地,程序1205可以包括程序代碼,所述程序代碼包括計算機操作指令。
[0243]處理器1201可能是一個中央處理器C P U,或者是特定集成電路A S I C ( A pplicat1n Specific Integrated Circuit),或者是被配置成實施本申請實施例的一個或多個集成電路。
[0244]存儲器1203,用于存放程序1205。存儲器1203可能包含高速R A M存儲器,也可能還包括非易失性存儲器(non — volat i Ie memory),例如至少一個磁盤存儲器。程序1205用于執行以下步驟:
[0245]對多路第一音頻數據分別降采樣以獲取多路第二音頻數據,對每路第二音頻數據執行A EC處理以生成每路第二音頻數據所對應的實時濾波系數;
[0246]獲取當前時刻多路第一音頻數據所對應的混音切換數據。其中,任一路第一音頻數據所對應的混音切換數據為該路第一音頻數據降采樣的第二音頻數據執行A E C處理后的數據;[0247]對多路第一音頻數據所對應的混音切換數據執行混音切換,以從所述多路第一音頻數據中獲取當前時刻待輸出的第一音頻數據;
[0248]對當前時刻待輸出的第一音頻數據執行A E C處理,以獲取音頻輸出數據。
[0249]其中,在對當前時刻待輸出的第一音頻數據中與上一時刻待輸出的第一音頻數據相比不同的第一音頻數據執行A E C處理時,還設置A E C處理過程中的初始濾波系數。
[0250]初始濾波系數的獲取過程為:確定所述不同的第一音頻數據降采樣得到的第二音頻數據,獲取當前時刻該第二音頻數據所對應的實時濾波系數,基于該實時濾波系數獲取初始濾波系數。
[0251]程序1205中各步驟的具體實現參見圖9 一圖11所示實施例中的相應單元的實現方式,在此不贅述。
[0252]所屬領域的技術人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統,裝置和單元的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。
[0253]在本申請所提供的幾個實施例中,應該理解到,所揭露的系統,裝置和方法,可以通過其它的方式實現。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,例如多個單元或組件可以結合或者可以集成到另一個系統,或一些特征可以忽略,或不執行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。
[0254]所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部單元來實現本實施例方案的目的。
[0255]另外,在本發明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現,也可以采用軟件功能單元的形式實現。
[0256]所述集成的單元如果以軟件功能單元的形式實現并作為獨立的產品銷售或使用時,可以存儲在一個計算機可讀取存儲介質中。基于這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分或者該技術方案的全部或部分可以以軟件產品的形式體現出來,該計算機軟件產品存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網絡設備等)執行本發明各個實施例所述方法的全部或部分步驟。而前述的存儲介質包括:U盤、移動硬盤、只讀存儲器(R O M,R e a d —Only Memory)、隨機存取存儲器(RAM,RandomAc c e s s Memο r y )、磁碟或者光盤等各種可以存儲程序代碼的介質。
[0257]以上所述,以上實施例僅用以說明本發明的技術方案,而非對其限制;盡管參照前述實施例對本發明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質脫離本發明各實施例技術方案的精神和范圍。
【權利要求】
1.一種回聲消除方法,其特征在于,對多路第一音頻數據分別降采樣以獲取多路第二音頻數據,對每路第二音頻數據執行音頻回聲抵消處理以生成每路第二音頻數據所對應的實時濾波系數; 所述方法包括: 獲取當前時刻所述多路第一音頻數據所對應的混音切換數據;其中,任一路第一音頻數據所對應的混音切換數據為該路第一音頻數據降采樣的第二音頻數據執行音頻回聲抵消處理后的數據; 對所述多路第一音頻數據所對應的混音切換數據執行混音切換,以從所述多路第一音頻數據中獲取當前時刻待輸出的第一音頻數據; 對所述當前時刻待輸出的第一音頻數據執行音頻回聲抵消處理,以獲取音頻輸出數據;其中,在對所述當前時刻待輸出的第一音頻數據中與上一時刻待輸出的第一音頻數據相比不同的第一音頻數據執行音頻回聲抵消處理時,還設置音頻回聲抵消處理過程中的初始濾波系數; 所述初始濾波系數的獲取過程為:確定所述不同的第一音頻數據降采樣得到的第二音頻數據,獲取當前時刻該第二音頻數據所對應的實時濾波系數,基于該實時濾波系數獲取初始濾波系數。
2.根據權利要求1所述的方法,其特征在于,所述方法還包括: 對所述音頻輸出數據執行殘留回聲抑制。
3.根據權利要求2所述的方法,其特征在于,若所述當前時刻待輸出的第一音頻數據中包括有所述不同的第一音頻數據,所述方法還包括: 在當前時刻之后的第一時段內,對上一時刻待輸出的第一音頻數據執行音頻回聲抵消處理以獲取所述第一時段內的音頻輸出數據;其中,所述第一時段由所述音頻輸出數據累計達到預設幀數花費的時間確定; 所述對所述當前時刻待輸出的第一音頻數據執行音頻回聲抵消處理,以獲得音頻輸出數據包括: 在所述第一時段之后,對所述當前時刻待輸出的第一音頻數據執行音頻回聲抵消處理,以獲得所述第一時段之后的音頻輸出數據。
4.根據權利要求3所述的方法,其特征在于,所述方法還包括: 在所述第一時段內,暫停執行以下步驟:對所述上一時刻待輸出的第一音頻數據降采樣以及對該降采樣得到的第二音頻數據執行音頻回聲抵消處理; 以及,執行以下步驟:對音頻回聲抵消處理后的所述上一時刻待輸出的第一音頻數據執行降采樣,將該降采樣后的數據作為所述上一時刻待輸出的第一音頻數據所對應的混音切換數據,以用于執行混音切換; 在所述第一時段之后,恢復執行在所述第一時段內暫停的步驟; 以及,執行以下步驟:確定所述上一時刻待輸出的第一音頻數據降采樣得到的第二音頻數據,將對該第二音頻數據執行音頻回聲抵消處理后的數據作為所述上一時刻待輸出的第一音頻數據所對應的混音切換數據,用于執行混音切換。
5.根據權利要求3或4所述的方法,其特征在于,所述方法還包括: 在所述第一時段內,對所述當前時刻待輸出的第一音頻數據執行殘留回聲抑制。
6.根據權利要求1所述的方法,其特征在于,所述當前時刻待輸出的第一音頻數據為所述多路第一音頻數據中,能量最大的至少一路第一音頻數據。
7.根據權利要求1所述的方法,其特征在于,所述第二音頻數據的采樣率為8kHz、16 k H z 或者 32 k H z。
8.—種回聲消除裝置,其特征在于,所述裝置包括生成單元、獲取單元、混音切換單元和回聲抵消單元; 生成單元,用于對多路第一音頻數據分別降采樣以獲取多路第二音頻數據,對每路第二音頻數據執行音頻回聲抵消處理以生成每路第二音頻數據所對應的實時濾波系數; 獲取單元,用于獲取當前時刻所述多路第一音頻數據所對應的混音切換數據;其中,任一路第一音頻數據所對應的混音切換數據為該路第一音頻數據降采樣的第二音頻數據執行音頻回聲抵消處理后的數據; 混音切換單元,用于對所述多路第一音頻數據所對應的混音切換數據執行混音切換,以從所述多路第一音頻數據中獲取當前時刻待輸出的第一音頻數據; 回聲抵消單元,用于對所述當前時刻待輸出的第一音頻數據執行音頻回聲抵消處理,以獲取音頻輸出數據; 其中,所述回聲抵消單元在對所述當前時刻待輸出的第一音頻數據中與上一時刻待輸出的第一音頻數據相比不同的第一音頻數據執行音頻回聲抵消處理時,還設置音頻回聲抵消處理過程中的初始 濾波系數; 所述初始濾波系數的獲取過程為:確定所述不同的第一音頻數據降采樣得到的第二音頻數據,獲取當前時刻該第二音頻數據所對應的實時濾波系數,基于該實時濾波系數獲取初始濾波系數。
9.根據權利要求8所述的裝置,其特征在于,所述裝置還包括: 第一回聲抑制單元,用于對所述音頻輸出數據執行殘留回聲抑制。
10.根據權利要求9所述的裝置,其特征在于,若所述當前時刻待輸出的第一音頻數據中包括有所述不同的第一音頻數據,所述回聲抵消單元還用于,在當前時刻之后的第一時段內,對上一時刻待輸出的第一音頻數據執行音頻回聲抵消處理以獲取所述第一時段內的音頻輸出數據;其中,所述第一時段由所述音頻輸出數據累計達到預設幀數花費的時間確定; 所述回聲抵消單元用于對所述當前時刻待輸出的第一音頻數據執行音頻回聲抵消處理,以獲取音頻輸出數據包括: 所述回聲抵消單元用于在所述第一時段之后,對所述當前時刻待輸出的第一音頻數據執行音頻回聲抵消處理,以獲得所述第一時段之后的音頻輸出數據。
11.根據權利要求10所述的裝置,其特征在于,所述生成單元還用于,在所述第一時段內,暫停執行以下步驟:對所述上一時刻待輸出的第一音頻數據降采樣以及對該降采樣得到的第二音頻數據執行音頻回聲抵消處理; 以及,執行以下步驟:對音頻回聲抵消處理后的所述上一時刻待輸出的第一音頻數據執行降采樣,將該降采樣后的數據作為所述上一時刻待輸出的第一音頻數據所對應的混音切換數據,以用于執行混音切換; 所述生成單元還用于,在所述第一時段之后,恢復執行在所述第一時段內暫停的步驟; 以及,執行以下步驟:確定所述上一時刻待輸出的第一音頻數據降采樣得到的第二音頻數據,將對該第二音頻數據執行音頻回聲抵消處理后的數據作為所述上一時刻待輸出的第一音頻數據所對應的混音切換數據,用于執行混音切換。
12.根據權利要求10或11所述的裝置,其特征在于,所述裝置還包括: 第二回聲抑制單元,用于在所述第一時段內,對所述當前時刻待輸出的第一音頻數據執行殘留回聲抑制。
13.根據權利要求8所述的裝置,其特征在于,所述當前時刻待輸出的第一音頻數據為所述多路第一音頻數據中,能量最大的至少一路第一音頻數據。
14.根據權利要求8所述的裝置,其特征在于,所述第二音頻數據的采樣率為8kHz、。16 k H z 或者 32 k H z。
【文檔編號】G10L21/0208GK104036784SQ201410251052
【公開日】2014年9月10日 申請日期:2014年6月6日 優先權日:2014年6月6日
【發明者】岳中輝, 劉智輝 申請人:華為技術有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
主站蜘蛛池模板: 库伦旗| 五常市| 尼玛县| 泉州市| 增城市| 论坛| 鄯善县| 青铜峡市| 芮城县| 灯塔市| 萍乡市| 丹江口市| 甘泉县| 江山市| 虞城县| 临洮县| 满城县| 黔南| 冀州市| 富裕县| 仪征市| 凤台县| 肥城市| 浮梁县| 安庆市| 阿克苏市| 合水县| 神木县| 思南县| 珠海市| 建平县| 武强县| 县级市| 阿克| 民乐县| 盐边县| 临颍县| 德化县| 开远市| 兴宁市| 镇江市|