新四季網

數據濾波方法、多人語音通話方法以及相關設備與流程

2023-12-04 14:49:21


本發明涉及計算機技術領域,尤其涉及一種數據濾波方法、多人語音通話方法以及相關設備。



背景技術:

目前的fir(finiteimpulseresponse,有限衝激響應)濾波器是數位訊號處理系統中最基本的元件,它可以在保證任意幅頻特性的同時具有嚴格的線性相頻特性,同時其單位抽樣響應是有限長的,因而濾波器是穩定的系統。因此,fir濾波器在通信、圖像處理、模式識別等領域都有著廣泛的應用

目前的fir濾波器在濾波過程中,通常有兩種處理方式:直接線性卷積和快速卷積。直接線性卷積的計算結構是點入點出,無須組幀,因此不會帶來組幀所造成的時延,但是當fir濾波器中的單位衝激響應的長度過長時,直接線性卷積將會帶來巨大的運算量。雖然採用快速卷積可以減少許多運算量,但是在快速卷積的過程中需要進行組幀,即需要等到輸入數據的長度與單位衝激響應的長度相近似的時候才能開始運算,因此,當單位衝激響應的長度過長時,組幀所造成的時延將會很大,導致快速卷積無法在有實時性要求的場合進行使用。



技術實現要素:

本發明實施例提供一種數據濾波方法、多人語音通話方法以及相關設備,可以在濾波過程中對運算量和組幀延時進行均衡控制,以提高濾波處理效率。

本發明實施例的第一方面提供了一種數據濾波方法,包括:

獲取輸入到第一濾波器的輸入樣點,並累計由多個輸入樣點所構成的輸入序列的長度;所述第一濾波器包括第一單位衝激響應;

若所述輸入序列的長度達到預設的組幀延時長度,則對所述輸入序列和所述第一單位衝激響應進行基於長短序列的分段快速卷積計算,得到所述輸入序列對應的輸出結果;

所述第一單位衝激響應的長度大於所述組幀延時長度;所述輸入序列為短序列,所述第一單位衝激響應為長序列。

其中,所述若所述輸入序列的長度達到預設的組幀延時長度,則對所述輸入序列和所述第一單位衝激響應進行基於長短序列的分段快速卷積計算,得到所述輸入序列對應的輸出結果,包括:

若所述輸入序列的長度達到預設的組幀延時長度,則根據所述組幀延時長度對所述第一單位衝激響應進行分段,得到多個單位衝激響應分段;各單位衝激響應分段的長度與所述組幀延時長度之間的差值均處於預設的差值區間內;

將所述輸入序列分別與所述各單位衝激響應分段進行快速卷積計算,得到所述各單位衝激響應分段分別對應的線性卷積結果;

將所述各單位衝激響應分段分別對應的線性卷積結果進行相加,得到所述輸入序列對應的輸出結果。

其中,所述組幀延時長度大於或等於32。

其中,所述輸入序列為第一通話設備發送的第一原始通話數據,所述輸出結果為所述第一濾波器輸出的第一聲道通話數據;

則所述方法還包括:

若同步輸入至第二濾波器的所述輸入序列的長度達到所述組幀延時長度,則對所述輸入序列和所述第二濾波器的第二單位衝激響應進行基於長短序列的分段快速卷積計算,得到所述輸入序列對應的第二聲道通話數據;所述第二單位衝激響應的長度大於所述組幀延時長度;所述輸入序列為短序列,所述第二單位衝激響應為長序列;

對所述輸入序列對應的第一聲道通話數據和第二聲道通話數據進行播放。

其中,所述對所述輸入序列對應的第一聲道通話數據和第二聲道通話數據進行播放,包括:

若在接收到所述第一原始通話數據的同時,還接收到第二通話設備發送的第二原始通話數據,則將所述輸入序列對應的第一聲道通話數據與所述第二通話設備對應的第一聲道通話數據進行混音,得到第一聲道混音數據;所述第二通話設備對應的第一聲道通話數據是由第三濾波器對所述第二原始通話數據進行基於長短序列的分段快速卷積後輸出得到;

將所述輸入序列對應的第二聲道通話數據與所述第二通話設備對應的第二聲道通話數據進行混音,得到第二聲道混音數據;所述第二通話設備對應的第二聲道通話數據是由第四濾波器對所述第二原始通話數據進行基於長短序列的分段快速卷積後輸出得到;

對所述第一聲道混音數據和所述第二聲道混音數據進行播放。

本發明實施例的第二方面提供了一種多人語音通話方法,包括:

獲取至少兩個通話設備發送的原始通話數據,將各通話設備發送的原始通話數據分別輸入至對應的濾波器組;每個濾波器組均包括基於第一聲道的濾波器和基於第二聲道的濾波器;不同的濾波器組輸出的音頻數據對應的三維方位互不相同;

通過所述基於第一聲道的濾波器對所輸入的原始通話數據進行三維音頻處理,並輸出第一聲道通話數據;

通過所述基於第二聲道的濾波器對所輸入的原始通話數據進行三維音頻處理,並輸出第二聲道通話數據;

將輸出的多個第一聲道通話數據進行混音,得到第一聲道混音數據,並將輸出的多個第二聲道通話數據進行混音,得到第二聲道混音數據;

對所述第一聲道混音數據和所述第二聲道混音數據進行播放。

其中,所述通過所述基於第一聲道的濾波器對所輸入的原始通話數據進行三維音頻處理,並輸出第一聲道通話數據,包括:

累計輸入到所述基於第一聲道的濾波器的原始通話數據所構成的輸入序列的長度;

若所述輸入序列的長度達到預設的組幀延時長度,則根據所述組幀延時長度對所述基於第一聲道的濾波器的單位衝激響應進行分段,得到多個單位衝激響應分段;各單位衝激響應分段的長度與所述組幀延時長度之間的差值均處於預設的差值區間內;所述單位衝激響應的長度大於所述組幀延時長度;

將所述輸入序列分別與所述各單位衝激響應分段進行快速卷積計算,得到所述各單位衝激響應分段分別對應的線性卷積結果;

將所述各單位衝激響應分段分別對應的線性卷積結果進行相加,得到所述輸入序列對應的第一聲道通話數據。

其中,所述通過所述基於第二聲道的濾波器對所輸入的原始通話數據進行三維音頻處理,並輸出第二聲道通話數據,包括:

累計已輸入到所述基於第二聲道的濾波器的原始通話數據所構成的輸入序列的長度;

若所述輸入序列的長度達到預設的組幀延時長度,則根據所述組幀延時長度對所述基於第二聲道的濾波器的單位衝激響應進行分段,得到多個單位衝激響應分段;各單位衝激響應分段的長度與所述組幀延時長度之間的差值均處於預設的差值區間內;所述單位衝激響應的長度大於所述組幀延時長度;

將所述輸入序列分別與所述各單位衝激響應分段進行快速卷積計算,得到所述各單位衝激響應分段分別對應的線性卷積結果;

將所述各單位衝激響應分段分別對應的線性卷積結果進行相加,得到所述輸入序列對應的第二聲道通話數據。

其中,所述組幀延時長度大於或等於32。

本發明實施例的第三方面提供了一種數據濾波裝置,包括:

累計模塊,用於獲取輸入到第一濾波器的輸入樣點,並累計由多個輸入樣點所構成的輸入序列的長度;所述第一濾波器包括第一單位衝激響應;

第一濾波模塊,用於若所述輸入序列的長度達到預設的組幀延時長度,則對所述輸入序列和所述第一單位衝激響應進行基於長短序列的分段快速卷積計算,得到所述輸入序列對應的輸出結果;

所述第一單位衝激響應的長度大於所述組幀延時長度;所述輸入序列為短序列,所述第一單位衝激響應為長序列。

其中,所述第一濾波模塊包括:

分段單元,用於若所述輸入序列的長度達到預設的組幀延時長度,則根據所述組幀延時長度對所述第一單位衝激響應進行分段,得到多個單位衝激響應分段;各單位衝激響應分段的長度與所述組幀延時長度之間的差值均處於預設的差值區間內;

快速卷積單元,用於將所述輸入序列分別與所述各單位衝激響應分段進行快速卷積計算,得到所述各單位衝激響應分段分別對應的線性卷積結果;

所述快速卷積單元,還用於將所述各單位衝激響應分段分別對應的線性卷積結果進行相加,得到所述輸入序列對應的輸出結果。

其中,所述組幀延時長度大於或等於32。

其中,所述輸入序列為第一通話設備發送的第一原始通話數據,所述輸出結果為所述第一濾波器輸出的第一聲道通話數據;

則所述裝置還包括:

第二濾波模塊,用於若同步輸入至第二濾波器的所述輸入序列的長度達到所述組幀延時長度,則對所述輸入序列和所述第二濾波器的第二單位衝激響應進行基於長短序列的分段快速卷積計算,得到所述輸入序列對應的第二聲道通話數據;所述第二單位衝激響應的長度大於所述組幀延時長度;所述輸入序列為短序列,所述第二單位衝激響應為長序列;

播放模塊,用於對所述輸入序列對應的第一聲道通話數據和第二聲道通話數據進行播放。

其中,所述播放模塊包括:

第一混音單元,用於若在接收到所述第一原始通話數據的同時,還接收到第二通話設備發送的第二原始通話數據,則將所述輸入序列對應的第一聲道通話數據與所述第二通話設備對應的第一聲道通話數據進行混音,得到第一聲道混音數據;所述第二通話設備對應的第一聲道通話數據是由第三濾波器對所述第二原始通話數據進行基於長短序列的分段快速卷積後輸出得到;

第二混音單元,用於將所述輸入序列對應的第二聲道通話數據與所述第二通話設備對應的第二聲道通話數據進行混音,得到第二聲道混音數據;所述第二通話設備對應的第二聲道通話數據是由第四濾波器對所述第二原始通話數據進行基於長短序列的分段快速卷積後輸出得到;

混音播放單元,用於對所述第一聲道混音數據和所述第二聲道混音數據進行播放。

本發明實施例的第四方面提供了一種多人語音通話裝置,包括:

獲取模塊,用於獲取至少兩個通話設備發送的原始通話數據,將各通話設備發送的原始通話數據分別輸入至對應的濾波器組;每個濾波器組均包括基於第一聲道的濾波器和基於第二聲道的濾波器;不同的濾波器組輸出的音頻數據對應的三維方位互不相同;

第一濾波模塊,用於通過所述基於第一聲道的濾波器對所輸入的原始通話數據進行三維音頻處理,並輸出第一聲道通話數據;

第二濾波模塊,用於通過所述基於第二聲道的濾波器對所輸入的原始通話數據進行三維音頻處理,並輸出第二聲道通話數據;

混音模塊,用於將輸出的多個第一聲道通話數據進行混音,得到第一聲道混音數據,並將輸出的多個第二聲道通話數據進行混音,得到第二聲道混音數據;

播放模塊,用於對所述第一聲道混音數據和所述第二聲道混音數據進行播放。

其中,所述第一濾波模塊包括:

第一累計單元,用於累計輸入到所述基於第一聲道的濾波器的原始通話數據所構成的輸入序列的長度;

第一卷積單元,用於若所述輸入序列的長度達到預設的組幀延時長度,則根據所述組幀延時長度對所述基於第一聲道的濾波器的單位衝激響應進行分段,得到多個單位衝激響應分段;各單位衝激響應分段的長度與所述組幀延時長度之間的差值均處於預設的差值區間內;所述單位衝激響應的長度大於所述組幀延時長度;

所述第一卷積單元,還用於將所述輸入序列分別與所述各單位衝激響應分段進行快速卷積計算,得到所述各單位衝激響應分段分別對應的線性卷積結果;

所述第一卷積單元,還用於將所述各單位衝激響應分段分別對應的線性卷積結果進行相加,得到所述輸入序列對應的第一聲道通話數據。

其中,所述第二濾波模塊包括:

第二累計單元,用於累計已輸入到所述基於第二聲道的濾波器的原始通話數據所構成的輸入序列的長度;

第二卷積單元,用於若所述輸入序列的長度達到預設的組幀延時長度,則根據所述組幀延時長度對所述基於第二聲道的濾波器的單位衝激響應進行分段,得到多個單位衝激響應分段;各單位衝激響應分段的長度與所述組幀延時長度之間的差值均處於預設的差值區間內;所述單位衝激響應的長度大於所述組幀延時長度;

所述第二卷積單元,還用於將所述輸入序列分別與所述各單位衝激響應分段進行快速卷積計算,得到所述各單位衝激響應分段分別對應的線性卷積結果;

所述第二卷積單元,還用於將所述各單位衝激響應分段分別對應的線性卷積結果進行相加,得到所述輸入序列對應的第二聲道通話數據。

其中,所述組幀延時長度大於或等於32。

本發明實施例的第五方面提供了一種數據濾波裝置,包括:處理器、存儲器以及網絡接口;

所述處理器分別與存儲器、網絡接口相連,其中,所述網絡接口用於接收外部設備發送的輸入樣點,所述存儲器用於存儲程序代碼,所述處理器用於調用所述程序代碼,以執行以下操作:

獲取輸入到第一濾波器的輸入樣點,並累計由多個輸入樣點所構成的輸入序列的長度;所述第一濾波器包括第一單位衝激響應;

若所述輸入序列的長度達到預設的組幀延時長度,則對所述輸入序列和所述第一單位衝激響應進行基於長短序列的分段快速卷積計算,得到所述輸入序列對應的輸出結果;

所述第一單位衝激響應的長度大於所述組幀延時長度;所述輸入序列為短序列,所述第一單位衝激響應為長序列。

本發明實施例的第六方面提供了一種多人語音通話裝置,包括:處理器、存儲器以及網絡接口;

所述處理器分別與存儲器、網絡接口相連,其中,所述網絡接口用於獲取至少兩個通話設備發送的原始通話數據,所述存儲器用於存儲程序代碼,所述處理器用於調用所述程序代碼,以執行以下操作:

將各通話設備發送的原始通話數據分別輸入至對應的濾波器組;每個濾波器組均包括基於第一聲道的濾波器和基於第二聲道的濾波器;不同的濾波器組輸出的音頻數據對應的三維方位互不相同;

通過所述基於第一聲道的濾波器對所輸入的原始通話數據進行三維音頻處理,並輸出第一聲道通話數據;

通過所述基於第二聲道的濾波器對所輸入的原始通話數據進行三維音頻處理,並輸出第二聲道通話數據;

將輸出的多個第一聲道通話數據進行混音,得到第一聲道混音數據,並將輸出的多個第二聲道通話數據進行混音,得到第二聲道混音數據;

對所述第一聲道混音數據和所述第二聲道混音數據進行播放。

本發明實施例的第七方面提供了一種計算機存儲介質,所述計算機存儲介質存儲有電腦程式,所述電腦程式包括程序指令,當所述處理器執行所述程序指令時執行本發明實施例中第一方面中的方法。

本發明實施例的第八方面提供了一種計算機存儲介質,所述計算機存儲介質存儲有電腦程式,所述電腦程式包括程序指令,當所述處理器執行所述程序指令時執行本發明實施例中第二方面中的方法。

本發明實施例通過獲取輸入到第一濾波器的輸入樣點,並累計由多個輸入樣點所構成的輸入序列的長度;所述第一濾波器包括第一單位衝激響應;若所述輸入序列的長度達到預設的組幀延時長度,則對所述輸入序列和所述第一單位衝激響應進行基於長短序列的分段快速卷積計算,得到所述輸入序列對應的輸出結果;所述第一單位衝激響應的長度大於所述組幀延時長度;所述輸入序列為短序列,所述第一單位衝激響應為長序列。由於輸入序列的長度為所述組幀延時長度,所以無論所述第一單位衝激響應的長度有多長,組幀所造成的時延都始終由所述組幀延時長度來決定,因此,通過減小所述組幀延時長度,即可減少組幀延時。而且以所述第一單位衝激響應作為長度列,與所述輸入序列進行分段快速卷積,可以減少濾波過程中的運算量,從而可以在濾波過程中對運算量和組幀延時進行均衡控制,以提高濾波處理效率。

附圖說明

為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。

圖1是本發明實施例提供的一種數據濾波方法的流程示意圖;

圖1a是本發明實施例提供的一種濾波處理過程示意圖;

圖2是本發明實施例提供的另一種數據濾波方法的流程示意圖;

圖2a是本發明實施例提供的一種多人語音通話的網絡架構示意圖;

圖3是本發明實施例提供的一種多人語音通話方法的流程示意圖;

圖3a是本發明實施例提供的另一種多人語音通話的網絡架構示意圖;

圖4是本發明實施例提供的一種數據濾波裝置的結構示意圖;

圖5是本發明實施例提供的一種播放模塊的結構示意圖;

圖6是本發明實施例提供的一種多人語音通話裝置的結構示意圖;

圖7是本發明實施例提供的一種數據濾波裝置的結構示意圖;

圖8是本發明實施例提供的另一種多人語音通話裝置的結構示意圖。

具體實施方式

下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。

請參見圖1,是本發明實施例提供的一種數據濾波方法的流程示意圖,所述方法可以包括:

s101,獲取輸入到第一濾波器的輸入樣點,並累計由多個輸入樣點所構成的輸入序列的長度;

具體的,獲取輸入到第一濾波器的輸入樣點,所述輸入樣點可以為音頻數據或圖像數據或視頻數據等多媒體數據中的最小單元數據。例如,若有一段持續輸入的音頻數據(即第一濾波器可以持續接收到多個輸入樣點),則可以累計由多個輸入樣點所構成的輸入序列的長度。

s102,若所述輸入序列的長度達到預設的組幀延時長度,則對所述輸入序列和所述第一單位衝激響應進行基於長短序列的分段快速卷積計算,得到所述輸入序列對應的輸出結果;

具體的,在s101之前,可以預先設置一個組幀延時長度t;其中,所述第一濾波器的第一單位衝激響應可以為超長的h(n),h(n)的長度為m,且m>t。

其中,在所述第一濾波器接收到輸入樣點之前,可以先默認輸入序列x(n)為無限長,即x(n)的長度l>m,此時,可以對x(n)進行分段,得到多段輸入序列xi(n)(i=0,1,…),其中,每段輸入序列xi(n)的長度都為t。其中,

輸入序列

此後,若開始有輸入樣點輸入至所述第一濾波器,則通過多個輸入樣點可以構成每段輸入序列xi(n),即若多個輸入樣點所累計的長度達到一段輸入序列xi(n)的長度,則可以通過所述第一濾波器對該段輸入序列xi(n)進行濾波處理,即計算卷積xi(n)*h(n)。即每輸入一段輸入序列xi(n)就進行一次濾波處理。例如,首先輸入一段輸入序列x0(n),並通過所述第一濾波器對x0(n)進行濾波處理後,再等待下一段輸入序列x1(n)的輸入,輸入序列x1(n)輸入到所述第一濾波器後,再對x1(n)進行濾波處理,以此類推,即每一次進行濾波處理的輸入序列的長度都為t。

進一步的,上述的濾波處理的過程可以為:對所述輸入序列xi(n)和所述第一單位衝激響應進行基於長短序列的分段快速卷積計算;其中,可以將xi(n)視為所述第一單位衝激響應h(n)的短序列,h(n)視為xi(n)的長序列,進而可以根據所述t對所述h(n)進行分段,得到多個單位衝激響應分段hj(n)(j=0,1,…);其中,

所述單位衝激響應分段各單位衝激響應分段hj(n)的長度與所述t之間的差值均處於預設的差值區間內,即hj(n)的長度與所述t十分相近,即hj(n)的長度可以大於t,或hj(n)的長度可以小於t,或hj(n)的長度可以等於t。例如,hj(n)的長度±a=t,a可以為所述預設的差值區間內的任意數值。進而將所述xi(n)分別與所述各單位衝激響應分段hj(n)進行快速卷積計算,得到所述各單位衝激響應分段分別對應的線性卷積結果,並將所述各單位衝激響應分段分別對應的線性卷積結果進行相加,得到所述輸入序列對應的輸出結果。例如,若單位衝激響應分段有5個,即j=4,則所述各單位衝激響應分段分別對應的線性卷積結果包括:xi(n)*h0(n)、xi(n)*h1(n)、xi(n)*h2(n)、xi(n)*h3(n)、xi(n)*h4(n);最後將所述各單位衝激響應分段分別對應的線性卷積結果進行相加,得到所述輸入序列對應的輸出結果,即所述輸出結果為xi(n)*h(n)=xi(n)*h0(n)+xi(n)*h1(n)+xi(n)*h2(n)+xi(n)*h3(n)+xi(n)*h4(n)。得到xi(n)對應的所述輸出結果後,可以進一步等待下一個xi+1(n)輸入到所述第一濾波器,當新輸入的多個輸入樣點可以構成輸入序列xi+1(n)(即新輸入的多個輸入樣點的長度也達到所述t)時,則可以對輸入序列xi+1(n)執行s102的步驟。其中,對無限長的輸入序列x(n)進行分段以及對xi(n)*h(n)進行基於長短序列的分段快速卷積的整個過程,可以統稱為兩級分段的快速卷積。其中,由於h(n)的長度m並不一定是t的整數倍,所以最後一段hj(n)可能不與t相近似。例如,假設對於已劃分為5段的hj(n)中的h4(n)的長度小於t,且與t的差值超出預設的差值區間,雖然h4(n)的長度不與t相近似,但是由於t是遠小於m,所以h4(n)和xi(n)進行快速卷積的運算量依然處於可接受範圍內,因此,依然可以繼續對h4(n)和xi(n)進行快速卷積。

進一步的,請一併參見圖1a,是本發明實施例提供的一種濾波處理過程示意圖。圖1a中的xi(n)即為輸入到第一濾波器中的輸入序列,h(n)為所述第一濾波器的第一單位衝激響應,每段輸入序列xi(n)的長度均為組幀延時長度t,在圖1a中,h(n)被劃分為j段,即h0(n)、h1(n)、h2(n)、…、hj(n),h0(n)至hj(n)中的每個單位衝激響應分段的長度均與t相近似,因此,xi(n)可以分別與h0(n)、h1(n)、h2(n)、…、hj(n)進行快速卷積計算,得到h0(n)、h1(n)、h2(n)、…、hj(n)分別對應的線性卷積結果,再將h0(n)、h1(n)、h2(n)、…、hj(n)分別對應的線性卷積結果進行相加,即可得到xi(n)對應的輸出結果。由於每計算一段輸入序列xi(n),所需要的組幀延時均為t對應的組幀延時,所以為了減少組幀延時,則可以減小t,即縮短輸入序列xi(n)的長度。

由於在組幀時,無需要求所述輸入序列xi(n)的長度與所述第一單位衝激響應的長度相近,只需將輸入到第一濾波器的輸入樣點組幀至所述t長度,即可構成所述輸入序列xi(n)(xi(n)的長度為t),進而可以開始對輸入序列xi(n)進行濾波處理,所以無論所述第一單位衝激響應的長度有多長,組幀所造成的延時都始終為所述t對應的組幀延時。若所述t設置的越大,則對xi(n)和hj(n)進行直接線性卷積的運算量,與對xi(n)和hj(n)進行快速卷積的運算量的比值就越大,即t越大,所述第一濾波器的運算量則越優化,但t越大也會使組幀所造成的延時越大。因此,可以根據實際應用場景靈活調整所述t,若對實時性要求較高,則可以將所述t設置小一些,以降低組幀所造成的延時;若設備的硬體能力較低,則可以將所述t設置大一些,以減少運算量。通過設置所述t,可以對組幀所造成的延時和運算量進行均衡,以避免因進行直接線性卷積而造成巨大的運算量,也避免了因直接對所述第一單位衝激響應進行快速卷積而造成過高的組幀延時。其中,若所述t小於32,則對xi(n)和hj(n)進行直接線性卷積的運算量<對xi(n)和hj(n)進行快速卷積的運算量,所以為了保證在使用快速卷積時能夠降低運算量,則所述t需要大於或等於32。即所述t可以在大於或等於32的範圍內取值。在設置好所述t後,若要繼續降低組幀所造成的延時,則可以降低所述t的值;若要降低運算量,則可以提高所述t的值。總之,通過設置所述t,可以使組幀所造成的延時和運算量都處於可接受的範圍內,即對組幀所造成的延時和運算量進行均衡。

以圖1a中的輸入序列x0(n)和單位衝激響應分段h0(n)為例,x0(n)的長度為組幀延時長度t(即x0(n)為t個輸入樣點的序列),h0(n)的長度為m=m/j(t和m相近似,m為第一單位衝激響應的長度,j為單位衝激響應分段的數量),則x0(n)和h0(n)進行快速卷積的具體過程可以包括以下4步:第一步,先將x0(n)和h0(n)進行補零,使得下式成立:

第二步,計算這兩個補零後的序列x0(n)和h0(n)的離散傅立葉變換:

x(k)=dft[x0(n)],h(k)=dft[h0(n)];

第三步,計算兩個離散傅立葉變化的乘積y(k)=x(k)h(k);

第四步,求解反傅立葉變換得到x0(n)和h0(n)的快速卷積結果y(n)=idft[y(k)];

其中,當n為2的冪時,上述的dft和idft可以換成快速離散傅立葉變換fft,以進一步提高計算效率。其中,上述的dft和idft共需要次乘法,上述的第三步需要n次乘法,所以快速卷積算法的乘法次數

其中,對任意兩個序列x1(n)和x2(n)進行直接線性卷積的公式可以為:

從直接線性卷積的公式中可以看出,設x1(n)為n1點,x2(n)為n2點,「*」為卷積號,則輸出y(n)為n1+n2-1點。從這個式子可以看出,當採用直接線性卷積來濾波時,即式中x1(n)為輸入序列,x2(n)為第一濾波器的單位衝激響應h(n),濾波過程是點入點出,無須組幀,故此不會帶來組幀造成的延時,但是直接線性卷積需要進行n1n2次乘法才能算出結果,當濾波器階數n2很大(即單位衝激響應h(n)的點數超長)時,計算量是相當巨大的。由此可見,對x0(n)和h0(n)進行直接線性卷積的乘法次數md=tm。由於m和t相近似,所以n≈2m,因此,可計算x0(n)和h0(n)的快速卷積和直接線性卷積之間的運算量比值由此可見,當m≥32時,k≥1.6,即m與t都需要大於或等於32時才能保證快速卷積比直接線性卷積的運算量更少,即32階以上的快速卷積算法才呈現優勢。而且t越大,k值也越大,即快速卷積算法呈現的優勢越明顯,如當t=4096時,k=99.9。由於t越大,組幀所造成的時延也越大,所以在設置t的大小時,需要根據實際應用場景對運算量和組幀延時進行均衡。

其中,若使用長度為l的x(n)與長度為m的第一單位衝激響應h(n)進行快速卷積,則對應的運算量若使用長度為l的x(n)與長度為m的第一單位衝激響應h(n)進行直接線性卷積,則對應的運算量md=ml;若l遠大於m,則n=l+m-1≈l,此時的快速卷積和直接線性卷積之間的運算量比值其中,由於l遠大於m,所以k小於1,即此處的快速卷積的運算量大於直接線性卷積的運算量,因此,從運算量角度而言,並不適合對長序列和短序列直接進行快速卷積。為了避免快速卷積的運算量大於直接線性卷積的運算量,需要將長序列分段成和短序列長度相近的段,然後卷積,利用卷積的性質:卷積的和等於和的卷積,將每小段卷積後的結果相加,得到最終的卷積結果(即輸出結果)。若將長度為l的x(n)視為長序列,h(n)視為短序列,則分段卷積過程如下:

其中,將x(n)分成和h(n)長度相等或者相近的段,每段xi(n)的長度都與m相等或者相近,即因此,x(n)對應的卷積結果y(n)可以為:此時每一個xi(n)*h(n)都可以使用快速卷積的方法來運算,需要注意的是,每段的運算結果都是n點,但l+m-1後的點都是0,而每段和每段之間將有m-1個值重疊,在計算y(n)的過程中,這些重疊的點將被相加。其中,組幀延時由長度為m的xi(n)決定,即組幀延時為組幀m個點所產生的延時,若m的值很大(即h(n)很長),這時就會產生問題:如果不採用快速卷積,那麼運算量巨大,而採用快速卷積時組幀延時又會過大。因此,本發明實施例通過先將長度為l的x(n)分段為每段長度為t的輸入序列xi(n)(t小於m),再將長度為t的xi(n)視為短序列,h(n)視為長序列,然後對xi(n)和h(n)進行上述的基於長短序列的分段快速卷積處理,不僅可以降低運算量,還可以將組幀延時控制為組幀t個點所產生的延時,以降低組幀延時。

其中,快速卷積的實現原理可以具體為:假設任意兩個序列為x1(n)和x2(n),則x1(n)和x2(n)進行圓周卷積的公式可以為:

圓周卷積是由他們的周期延伸所來定義的,周期延伸是把原本的函數平移某個周期t的整數倍後再全部加起來所產生的新函數;圓周卷積要求兩個序列的長度相同,且輸入和輸出的長度是相同的。

其中,x1((n-m))n只在m=0到n-1的範圍內取值(即以n的圓周移位),rn(n)是矩形窗口函數,即0到n-i的函數值為1,其餘函數值為0。當x1(n)為l點,x2(n)為m點,則這兩個序列的線性卷積和圓周卷積存在一定關係:即當兩個序列做圓周卷積的長度滿足公式n≥l+m-1時,這兩個序列的圓周卷積和線性卷積結果相同,否則發生混疊兩者不同。由於圓周卷積具有快速計算定理,即圓周卷積定理:兩個序列的圓周卷積是這兩個序列的離散傅立葉變換的積的反離散傅立葉變換。例如,若x1(n)和x2(n)做圓周卷積的長度n均滿足n≥l+m-1,則可以分別取離散傅立葉變換(discretefouriertransform,dft):dft[x1(n)]=x1(k),dft[x2(n)]=x2(k);令y(k)=x1(k)x2(k),則即兩個序列的圓周卷積是這兩個序列的離散傅立葉變換的積的反離散傅立葉變換。因此,離散信號的圓周卷積可以經由圓周卷積定理使用快速傅立葉變換而有效率的計算。因此,若原本的線性卷積能轉換成圓周卷積來計算,會遠比直接計算更快速。由於長度l和長度m的兩個有限長度離散信號x1(n)和x2(n),做卷積之後會成為長度l+m-1的信號,因此只要把原來的x1(n)和x2(n)補上適當數目的零成為n點信號,其中n≥l+m-1,則它們的圓周卷積就與線性卷積相等,因此,這種圓周卷積的過程可以稱為快速卷積。

可選的,在得到多個單位衝激響應分段hj(n)後(假設當前的輸入序列為x0(n),多個單位衝激響應分段hj(n)包括h0(n)、h1(n)、h2(n)),可以進一步對x0(n)進行分段,得到多個輸入序列分段x0k(n)(k=0,1,…),若所述多個輸入序列分段x0k(n)包括x00(n)和x01(n),且x00(n)和x01(n)的長度均為tx,並根據所述tx分別對h0(n)、h1(n)、h2(n)進行再次分段,得到h0(n)對應的多個單位衝激響應子分段h0z(n)(z=0,1,…),並得到h1(n)對應的多個單位衝激響應子分段h1z(n)(z=0,1,…),並得到h2(n)對應的多個單位衝激響應子分段h2z(n)(z=0,1,…)。之後,再將x00(n)分別與各h0z(n)、各h1z(n)、各h2z(n)進行快速卷積後相加,得到x00(n)對應的第一卷積子結果,將x01(n)分別與各h0z(n)、各h1z(n)、各h2z(n)進行快速卷積後相加,得到x01(n)對應的第二卷積子結果,再將第一卷積子結果和第二卷積子結果相加即可得到x0(n)對應的輸出結果。以此類推,可以對所述輸入序列進行更多層的分段,也同時可以對所述第一單位衝激響應進行更多層的分段,多層分段後同樣可以繼續使用分段快速卷積的方式來計算。

本發明實施例通過獲取輸入到第一濾波器的輸入樣點,並累計由多個輸入樣點所構成的輸入序列的長度;所述第一濾波器包括第一單位衝激響應;若所述輸入序列的長度達到預設的組幀延時長度,則對所述輸入序列和所述第一單位衝激響應進行基於長短序列的分段快速卷積計算,得到所述輸入序列對應的輸出結果;所述第一單位衝激響應的長度大於所述組幀延時長度;所述輸入序列為短序列,所述第一單位衝激響應為長序列。由於輸入序列的長度為所述組幀延時長度,所以無論所述第一單位衝激響應的長度有多長,組幀所造成的時延都始終由所述組幀延時長度來決定,因此,通過減小所述組幀延時長度,即可減少組幀延時。而且以所述第一單位衝激響應作為長度列,與所述輸入序列進行分段快速卷積,可以減少濾波過程中的運算量,從而可以在濾波過程中對運算量和組幀延時進行均衡控制,以提高濾波處理效率。

請參見圖2,是本發明實施例提供的另一種數據濾波方法的流程示意圖,所述方法可以包括:

s201,獲取輸入到第一濾波器的輸入樣點,並累計由多個輸入樣點所構成的輸入序列的長度;所述第一濾波器包括第一單位衝激響應;

s202,若所述輸入序列的長度達到預設的組幀延時長度,則對所述輸入序列和所述第一單位衝激響應進行基於長短序列的分段快速卷積計算,得到所述輸入序列對應的輸出結果;

其中,所述第一單位衝激響應的長度大於所述組幀延時長度;所述輸入序列為短序列,所述第一單位衝激響應為長序列。

具體的,所述第一濾波器可以屬於三維音頻處理濾波器,所以所述第一濾波器輸出的所述第一聲道通話數據具備三維音頻屬性。其中,所述第一濾波器可以稱為第一hrir(headrelatedimpulseresponse,頭相關衝激響應)濾波器。hrir是和與hrtf(head-relatedtransferfunction,頭相關傳遞函數)對應的時域衝擊響應,hrtf實際上就是外耳的頻率響應,它定義為耳道中信號的傅立葉變換與自由聲場信號傅立葉變換的比值。hrir和hrtf是一一對應的傅立葉變換關係,因此,hrir和hrtf本質是相同的。兩者的實質都是一種音效定位的算法,可以利用此算法,通過對輸入的音頻信號的處理的來判斷聲音發生的位置,即hrir可以看作是一個濾波器,而對於一個人來說,由於距離聲源的距離以及音頻信號傳輸的路徑等不同,所以一個人的左耳的hrir和右耳的hrir是不同的。進一步的,也可以將第一濾波器稱之為第一hrtf濾波器,即hrtf是一組濾波器,hrtf利用itd(interauraltimedelay,雙耳時間延遲)、iad(interauralamplitudedifference,耳間振幅差)和耳廓頻率振動等技術產生立體音效,使聲音傳遞至人耳內的耳廓,耳道和鼓膜時,聆聽者會有環繞音效之感覺,通過dsp(digitalsignalprocessing,數位訊號處理),hrtf可實時處理虛擬世界的音源。

所述第一聲道通話數據即為上述圖1對應實施例中的所述第一濾波器輸出的所述輸入序列對應的輸出結果。所述輸入序列為第一通話設備發送的第一原始通話數據,即所述第一通話設備與本端通話設備進行通話時,本端通話設備可以接收所述第一通話設備發送的第一原始通話數據,所述第一原始通話數據也是由多個輸入樣點組成的。s201-s202步驟的具體實現方式可以參見上述圖1對應實施例中的s101-s102,這裡不再進行贅述。

s203,若同步輸入至第二濾波器的所述輸入序列的長度達到所述組幀延時長度,則對所述輸入序列和所述第二濾波器的第二單位衝激響應進行基於長短序列的分段快速卷積計算,得到所述輸入序列對應的第二聲道通話數據;

其中,所述第二單位衝激響應的長度大於所述組幀延時長度;所述輸入序列為短序列,所述第二單位衝激響應為長序列。

具體的,所述本端通話設備可以包括第一濾波器和第二濾波器,所述第一濾波器和所述第二濾波器均用於為所述第一通話設備所發送的第一原始通話數據進行濾波,所述第一濾波器輸出所述輸入序列對應的第一聲道通話數據,所述第二濾波器輸出所述輸入序列對應的第二聲道通話數據。其中,所述第一聲道通話數據可以為左聲道通話數據(即用於左耳機輸出的音頻數據),所述第二聲道通話數據可以為右聲道通話數據(即用於右耳機輸出的音頻數據);或者,所述第一聲道通話數據可以為右聲道通話數據,所述第二聲道通話數據可以為左聲道通話數據。其中,所述第二單位衝激響應也可以為用於進行音頻3d化處理的單位衝激響應,即所述第二濾波器可以屬於三維音頻處理濾波器,所以所述第二濾波器輸出的所述第二聲道通話數據也具備三維音頻屬性。所述第二濾波器可以稱之為第二hrir濾波器,或者,所述第二濾波器也可以稱之為第二hrtf濾波器。例如,第一濾波器為左聲道的hrir濾波器,第二濾波器為右聲道的hrir濾波器。

其中,輸入到所述第二濾波器的輸入序列與輸入到所述第一濾波器的輸入序列相同,且輸入序列的長度都為組幀延時長度。因此,所述第二濾波器的濾波過程也同樣為:根據所述組幀延時長度對所述第二單位衝激響應進行分段,得到多個第二單位衝激響應分段;各第二單位衝激響應分段的長度與所述組幀延時長度之間的差值均處於預設的差值區間內;將所述輸入序列分別與所述各第二單位衝激響應分段進行快速卷積計算,得到所述各第二單位衝激響應分段分別對應的線性卷積結果,再將所述各第二單位衝激響應分段分別對應的線性卷積結果進行相加,得到所述輸入序列對應的所述第二聲道通話數據。因此,第二濾波器計算所述第二聲道通話數據的過程與第一濾波器計算所述第一聲道通話數據的過程相同。其中,所述第一單位衝激響應和所述第二單位衝激響應不同,且可以將第一單位衝激響應對應的單位衝激響分段應稱為第一單位衝激響應分段。

其中,由於通話的過程中,實時性的要求是比較高的,所以通過設置所述組幀延時長度且使用分段快速卷積算法,可以有效縮短組幀所造成的時延,從而提高了通話的實時性。

s204,若僅接收到所述第一原始通話數據,則對所述輸入序列對應的第一聲道通話數據和第二聲道通話數據進行播放;

具體的,若本端通話設備僅與所述第一通話設備進行通話,即所述本端通話設備僅接收到所述第一通話設備發送的所述第一原始通話數據,則所述本端通話設備可以對所述輸入序列對應的第一聲道通話數據和第二聲道通話數據進行播放。若所述本端通話設備的音頻輸出設備為一對耳機,則可以通過左耳機播放所述第一聲道通話數據(第一聲道為左聲道),通過右耳機播放所述第二聲道通話數據(第二聲道為右聲道)。由於所述第一原始通話數據對應的第一聲道通話數據和第二聲道通話數據均具備三維音頻屬性,所以通過左右耳機分別輸出第一聲道通話數據和第二聲道通話數據後,可以使所述第一原始通話數據對應的最終輸出聲音具備方位感,即用戶聽到的所述第一原始通話數據對應的最終輸出聲音可以位於該用戶的左側或右側或正前方等方位。

s205,若在接收到所述第一原始通話數據的同時,還接收到第二通話設備發送的第二原始通話數據,則將所述輸入序列對應的第一聲道通話數據與所述第二通話設備對應的第一聲道通話數據進行混音,得到第一聲道混音數據;

其中,所述第二通話設備對應的第一聲道通話數據是由第三濾波器對所述第二原始通話數據進行基於長短序列的分段快速卷積後輸出得到;所述第三濾波器包括第三單位衝激響應。

具體的,若本端通話設備同時與第一通話設備和第二通話設備進行多人會話,則所述本端通話設備可以同時接收到所述第一通話設備發送的所述第一原始通話數據和所述第二通話設備發送的所述第二原始通話數據。其中,所述第一濾波器可以輸出所述第一原始通話數據對應的第一聲道通話數據,所述第二濾波器可以輸出所述第一原始通話數據對應的第二聲道通話數據。所述第三濾波器對所述第二原始通話數據進行濾波的過程與所述第一濾波器(或所述第二濾波器)的濾波過程相同,即當輸入到所述第三濾波器的第二原始通話數據所構成的輸入序列的長度達到所述組幀延時長度時,根據所述組幀延時長度對所述第三單位衝激響應進行分段,得到多個第三單位衝激響應分段(各第三單位衝激響應分段的長度與所述組幀延時長度之間的差值均處於預設的差值區間內),再將所述第二原始通話數據(即輸入序列)分別與所述各第三單位衝激響應分段進行快速卷積計算,得到所述各第三單位衝激響應分段分別對應的線性卷積結果,並將所述各第三單位衝激響應分段分別對應的線性卷積結果進行相加,得到所述第二原始通話數據對應的第一聲道通話數據。所述本端通話設備進一步將所述第一原始通話數據對應的第一聲道通話數據與所述第二原始通話數據對應的第一聲道通話數據進行混音,得到第一聲道混音數據。所述第三單位衝激響應也可以為用於進行音頻3d化處理的單位衝激響應,即所述第三濾波器可以屬於三維音頻處理濾波器,所以所述第三濾波器輸出的所述第一聲道通話數據也可以具備三維音頻屬性。所述第三濾波器可以稱之為第三hrir濾波器,或者,所述第三濾波器也可以稱之為第三hrtf濾波器。

s206,將所述輸入序列對應的第二聲道通話數據與所述第二通話設備對應的第二聲道通話數據進行混音,得到第二聲道混音數據;

其中,所述第二通話設備對應的第二聲道通話數據是由第四濾波器對所述第二原始通話數據進行基於長短序列的分段快速卷積後輸出得到;所述第四濾波器可以包括第四單位衝激響應。所述第二原始通話數據是被同時輸入到所述第三濾波器和所述第四濾波器的數據。

具體的,所述第四濾波器對所述第二原始通話數據進行濾波的過程與所述第一濾波器(或所述第二濾波器或所述第三濾波器)的濾波過程相同,即當輸入到所述第四濾波器的第二原始通話數據所構成的輸入序列的長度達到所述組幀延時長度時,根據所述組幀延時長度對所述第四單位衝激響應進行分段,得到多個第四單位衝激響應分段(各第四單位衝激響應分段的長度與所述組幀延時長度之間的差值均處於預設的差值區間內),再將所述第二原始通話數據(即輸入序列)分別與所述各第四單位衝激響應分段進行快速卷積計算,得到所述各第四單位衝激響應分段分別對應的線性卷積結果,並將所述各第四單位衝激響應分段分別對應的線性卷積結果進行相加,得到所述第二原始通話數據對應的第二聲道通話數據。所述本端通話設備進一步將所述第一原始通話數據對應的第二聲道通話數據與所述第二原始通話數據對應的第二聲道通話數據進行混音,得到第二聲道混音數據。所述第四單位衝激響應也可以為用於進行音頻3d化處理的單位衝激響應,即所述第四濾波器可以屬於三維音頻處理濾波器,所以所述第四濾波器輸出的所述第二聲道通話數據也可以具備三維音頻屬性。所述第四濾波器可以稱之為第四hrir濾波器,或者,所述第四濾波器也可以稱之為第四hrtf濾波器。

s207,對所述第一聲道混音數據和所述第二聲道混音數據進行播放;

具體的,若本端通話設備同時與所述第一通話設備和所述第二通話設備進行通話,則所述本端通話設備可以對所述第一聲道混音數據和所述第二聲道混音數據進行播放。若所述本端通話設備的音頻輸出設備為一對耳機,則可以通過左耳機播放所述第一聲道混音數據(第一聲道為左聲道),通過右耳機播放所述第二聲道混音數據(第二聲道為右聲道)。所述第一原始通話數據對應的第一聲道通話數據和第二聲道通話數據、第二原始通話數據對應的第一聲道通話數據和第二聲道通話數據均具備三維音頻屬性,所以所述第一聲道混音數據和所述第二聲道混音數據也具備三維音頻屬性,因此,在通過左右耳機分別輸出第一聲道混音數據和第二聲道混音數據時,可以合成所述第一原始通話數據對應的最終輸出聲音和所述第二原始通話數據對應的最終輸出聲音,且所述第一原始通話數據對應的最終輸出聲音和所述第二原始通話數據對應的最終輸出聲音均具備方位感,即用戶聽到的所述第一原始通話數據對應的最終輸出聲音可以位於該用戶的左側,用戶聽到的所述第二原始通話數據對應的最終輸出聲音可以位於該用戶的右側;或者,用戶聽到的所述第二原始通話數據對應的最終輸出聲音可以位於該用戶的左側,用戶聽到的所述第一原始通話數據對應的最終輸出聲音可以位於該用戶的右側。所述第一濾波器、所述第二濾波器、所述第三濾波器、所述第四濾波器均屬於三維音頻處理濾波器(如hrir濾波器),且所述第一單位衝激響應、所述第二單位衝激響應、所述第三單位衝激響應、所述第四單位衝激響應可以為互不相同的hrir,所以通過不同的濾波器對數據進行濾波,即可得到不同的聲音方位感。

進一步的,請一併參見圖2a,是本發明實施例提供的一種多人語音通話的網絡架構示意圖。在圖2a中,第一通話設備可以發送第一原始通話數據到本端通話設備,第二通話設備可以發送第二原始通話數據到本端通話設備,本端通話設備將第一原始通話數據同時輸入到第一濾波器和第二濾波器,本端通話設備將第二原始通話數據同時輸入到第三濾波器和第四濾波器。其中,當輸入到第一濾波器和第二濾波器的第一原始通話數據所構成的第一輸入序列的長度達到預設的組幀延時長度t時,第一濾波器和第二濾波器分別對長度為t的第一輸入序列進行基於長短序列的分段快速卷積(第一輸入序列為短序列,第一濾波器和第二濾波器均為長序列),進而第一濾波器輸出第一輸入序列對應的左聲道通話數據到mix-l(即左聲道混音模塊),第二濾波器輸出第一輸入序列對應的右聲道通話數據到mix-r(即右聲道混音模塊)。其中,當輸入到第三濾波器和第四濾波器的第二原始通話數據所構成的第二輸入序列的長度也為預設的組幀延時長度t時,第三濾波器和第四濾波器分別對長度為t的第二輸入序列進行基於長短序列的分段快速卷積(第二輸入序列為短序列,第三濾波器和第四濾波器均為長序列),進而第三濾波器輸出第二輸入序列對應的左聲道通話數據到mix-l,第四濾波器輸出第二輸入序列對應的右聲道通話數據到mix-r。其中,基於長短序列的分段快速卷積的具體過程可以參見圖1對應實施例中的s102,這裡不再進行贅述。mix-l對第一濾波器和第三濾波器分別輸出的左聲道通話數據進行混音,得到左聲道混音數據,並將左聲道混音數據輸出到左耳機進行播放。mix-r對第三濾波器和第四濾波器分別輸出的右聲道通話數據進行混音,得到右聲道混音數據,並將右聲道混音數據輸出到右耳機進行播放。所述第一濾波器、所述第二濾波器、所述第三濾波器、所述第四濾波器中的單位衝激響應均可以為互不相同的hrir,因此,左聲道混音數據和右聲道混音數據中所合成的第一原始通話數據對應的最終輸出聲音可以具備聲音方位感,如本端用戶可以感覺到第一通話設備對應的用戶的聲音在本端用戶的左側;左聲道混音數據和右聲道混音數據中所合成的第二原始通話數據對應的最終輸出聲音也可以具備聲音方位感,如本端用戶可以感覺到第二通話設備對應的用戶的聲音在本端用戶的右側。其中,由於可以設置組幀延時長度t,所以4個濾波器對應的組幀延時均可以為t對應的組幀延時,所以通過降低t,可以縮短各濾波器的組幀延時,以提高通話的實時性。由此可見,通過在通話設備中設置多個濾波器,可以將各通話設備發送的原始通話數據進行音頻3d化處理,使得在多人會話過程中,可以使用戶感覺到各通話用戶的聲音具備對應的方位,而且通過設置組幀延時長度t,可以在多人會話中實現音頻3d化處理的同時,對組幀延時和運算量進行均衡。

由此可見,將可進行音頻3d化處理的濾波器應用在多人會話設備中,可以使得多人會話過程中,為不同的通話對象的通話數據設置不同的聲音方位感,以豐富通話效果。而且同時在多人會話設備中的各濾波器中還設置有所述組幀延時長度,通過設置所述組幀延時長度可以使得各濾波器對各自收到的通話數據進行濾波時,可以同時對組幀所造成的時延和運算量進行均衡。若多人會話設備的硬體能力足夠強,則可以降低所述組幀延時長度,以進一步降低組幀延時,以提高通話的實時性。

本發明實施例通過將可進行音頻3d化處理的濾波器應用在多人會話設備中,可以使得多人會話過程中,為不同的通話對象的通話數據設置不同的聲音方位感,以豐富通話效果。而且對於多人會話設備中的每一個濾波器,均可以獲取輸入到濾波器的輸入樣點,並累計由多個輸入樣點所構成的輸入序列的長度,若所述輸入序列的長度達到預設的組幀延時長度,則對所述輸入序列和濾波器中的單位衝激響應進行基於長短序列的分段快速卷積計算,得到所述輸入序列對應的輸出結果。由於輸入序列的長度為所述組幀延時長度,所以無論單位衝激響應的長度有多長,組幀所造成的時延都始終由所述組幀延時長度來決定,因此,通過減小所述組幀延時長度,即可減少組幀延時。而且以單位衝激響應作為長度列,與所述輸入序列進行分段快速卷積,可以減少濾波過程中的運算量,從而可以在濾波過程中對運算量和組幀延時進行均衡控制,以提高濾波處理效率。而且通過進一步降低組幀延時長度,可以進一步降低組幀延時,以提高通話的實時性。

請參見圖3,是本發明實施例提供的一種多人語音通話方法的流程示意圖,所述方法可以包括:

s301,獲取至少兩個通話設備發送的原始通話數據,將各通話設備發送的原始通話數據分別輸入至對應的濾波器組;每個濾波器組均包括基於第一聲道的濾波器和基於第二聲道的濾波器;不同的濾波器組輸出的音頻數據對應的三維方位互不相同;

具體的,若所述至少兩個通話設備包括第一通話設備和第二通話設備,即本端通話設備可以同時與所述第一通話設備和所述第二通話設備進行多人會話,此時,所述本端通話設備可以同時接收所述第一通話設備發送的第一原始通話數據和所述第二通話設備發送的第二原始通話數據。所述第一原始通話數據可以被輸入到其中一個濾波器組,該濾波器組可以包括第一濾波器(即基於第一聲道的濾波器)和第二濾波器(基於第二聲道的濾波器),即所述第一原始通話數據被同時輸入到所述第一濾波器和所述第二濾波器;所述第二原始通話數據可以被輸入到另一個濾波器組,該濾波器組可以包括第三濾波器(基於第一聲道的濾波器)和第四濾波器(基於第二聲道的濾波器),即所述第二原始通話數據被同時輸入到所述第三濾波器和所述第四濾波器。其中,所述第一濾波器、所述第二濾波器、所述第三濾波器、所述第四濾波器均屬於三維音頻處理濾波器(如hrir濾波器);所述第一濾波器中的第一單位衝激響應、所述第二濾波器的第二單位衝激響應、所述第三濾波器的第三單位衝激響應以及所述第四濾波器中的第四單位衝激響應,可以為互不相同的hrir,即4個濾波器輸出的音頻數據分別具有不同的聲音方位感。當然,本端通話設備中可以包括更多的濾波器組,一個濾波器組可以對一個通話設備發送的原始通話數據進行處理,即若有6個濾波器組,則本端通話設備可以同時與6個通話設備進行多人會話,且可以分別將6個通話設備發送的原始通話數據處理為6個不同聲音方位感的音頻數據。

s302,通過所述基於第一聲道的濾波器對所輸入的原始通話數據進行三維音頻處理,並輸出第一聲道通話數據;

具體的,以s301中的所述第一濾波器、所述第二濾波器、所述第三濾波器、所述第四濾波器為例,所述第一濾波器可以對接收到的第一原始通話數據進行三維音頻處理,並輸出第一原始通話數據對應的第一聲道通話數據,所述第三濾波器可以對接收到的第二原始通話數據進行三維音頻處理,並輸出第二原始通話數據對應的第一聲道通話數據。所述第一濾波器和所述第三濾波器可以統稱為所述基於第一聲道的濾波器。

s303,通過所述基於第二聲道的濾波器對所輸入的原始通話數據進行三維音頻處理,並輸出第二聲道通話數據;

具體的,以s301中的所述第一濾波器、所述第二濾波器、所述第三濾波器、所述第四濾波器為例,所述第二濾波器可以對接收到的第一原始通話數據進行三維音頻處理,並輸出第一原始通話數據對應的第二聲道通話數據,所述第四濾波器可以對接收到的第二原始通話數據進行三維音頻處理,並輸出第二原始通話數據對應的第二聲道通話數據。所述第二濾波器和所述第四濾波器可以統稱為所述基於第二聲道的濾波器。

s304,將輸出的多個第一聲道通話數據進行混音,得到第一聲道混音數據,並將輸出的多個第二聲道通話數據進行混音,得到第二聲道混音數據;

具體的,以s301中的所述第一濾波器、所述第二濾波器、所述第三濾波器、所述第四濾波器為例,將所述第一濾波器輸出的所述第一原始通話數據對應的第一聲道通話數據和所述第三濾波器輸出的所述第二原始通話數據對應的第一聲道通話數據進行混音,得到第一聲道混音數據。將所述第二濾波器輸出的所述第一原始通話數據對應的第二聲道通話數據和所述第四濾波器輸出的所述第二原始通話數據對應的第二聲道通話數據進行混音,得到第二聲道混音數據。

s305,對所述第一聲道混音數據和所述第二聲道混音數據進行播放;

具體的,若所述本端通話設備的音頻輸出設備為一對耳機,則可以通過左耳機播放所述第一聲道混音數據(第一聲道為左聲道),通過右耳機播放所述第二聲道混音數據(第二聲道為右聲道)。所述第一原始通話數據對應的第一聲道通話數據和第二聲道通話數據、第二原始通話數據對應的第一聲道通話數據和第二聲道通話數據均具備三維音頻屬性,所以所述第一聲道混音數據和所述第二聲道混音數據也具備三維音頻屬性,因此,在通過左右耳機分別輸出第一聲道混音數據和第二聲道混音數據時,可以合成所述第一原始通話數據對應的最終輸出聲音和所述第二原始通話數據對應的最終輸出聲音,且所述第一原始通話數據對應的最終輸出聲音和所述第二原始通話數據對應的最終輸出聲音均具備方位感,即用戶聽到的所述第一原始通話數據對應的最終輸出聲音可以位於該用戶的左側,用戶聽到的所述第二原始通話數據對應的最終輸出聲音可以位於該用戶的右側;或者,用戶聽到的所述第二原始通話數據對應的最終輸出聲音可以位於該用戶的左側,用戶聽到的所述第一原始通話數據對應的最終輸出聲音可以位於該用戶的右側。

由此可見,將可進行音頻3d化處理的濾波器應用在多人會話設備中,可以使得多人會話過程中,為不同的通話對象的通話數據設置不同的聲音方位感,以豐富通話效果。

可選的,s302步驟可以具體包括:累計輸入到所述基於第一聲道的濾波器的原始通話數據所構成的輸入序列的長度;若所述輸入序列的長度達到預設的組幀延時長度,則根據所述組幀延時長度對所述基於第一聲道的濾波器的單位衝激響應進行分段,得到多個單位衝激響應分段;各單位衝激響應分段的長度與所述組幀延時長度之間的差值均處於預設的差值區間內;所述單位衝激響應的長度大於所述組幀延時長度;將所述輸入序列分別與所述各單位衝激響應分段進行快速卷積計算,得到所述各單位衝激響應分段分別對應的線性卷積結果;將所述各單位衝激響應分段分別對應的線性卷積結果進行相加,得到所述輸入序列對應的第一聲道通話數據。例如,可以通過設置所述組幀延時長度,對所述第一濾波器和所述第三濾波器的組幀延時和運算量進行均衡,為了提高通話實時性,可以進一步減少所述組幀延時長度,以進一步降低組幀延時。所述基於第一聲道的濾波器根據所述組幀延時長度對由原始通話數據所構成的輸入序列進行基於長短序列的分段快速卷積的工作原理可以參見上述圖1對應實施例中的s101-s102,這裡不再進行贅述。

可選的,s303步驟可以具體包括:累計已輸入到所述基於第二聲道的濾波器的原始通話數據所構成的輸入序列的長度;若所述輸入序列的長度達到預設的組幀延時長度,則根據所述組幀延時長度對所述基於第二聲道的濾波器的單位衝激響應進行分段,得到多個單位衝激響應分段;各單位衝激響應分段的長度與所述組幀延時長度之間的差值均處於預設的差值區間內;所述單位衝激響應的長度大於所述組幀延時長度;將所述輸入序列分別與所述各單位衝激響應分段進行快速卷積計算,得到所述各單位衝激響應分段分別對應的線性卷積結果;將所述各單位衝激響應分段分別對應的線性卷積結果進行相加,得到所述輸入序列對應的第二聲道通話數據。例如,可以通過設置所述組幀延時長度,對所述第二濾波器和所述第四濾波器的組幀延時和運算量進行均衡,為了提高通話實時性,可以進一步減少所述組幀延時長度,以進一步降低組幀延時。所述基於第二聲道的濾波器根據所述組幀延時長度對由原始通話數據所構成的輸入序列進行基於長短序列的分段快速卷積的工作原理可以參見上述圖1對應實施例中的s101-s102,這裡不再進行贅述。

其中,所述組幀延時長度大於或等於32。

進一步的,請一併參見圖3a,是本發明實施例提供的另一種多人語音通話的網絡架構示意圖。在圖3a中,本端通話設備可以同時與第一通話設備、第二通話設備、…、第n通話設備進行多人會話,其中,第一通話設備可以發送用戶p1的單聲道聲音(即第一原始通話數據)到本端通話設備,第二通話設備可以發送用戶p2的單聲道聲音(即第二原始通話數據)到本端通話設備,第n通話設備可以發送用戶pn的單聲道聲音(即第n原始通話數據)到本端通話設備。本端通話設備可以將第一原始通話數據同時輸入到hrir1-l和hrir1-r(hrir1-l和hrir1-r可以構成第一濾波器組),本端通話設備將第二原始通話數據同時輸入到hrir2-l和hrir2-r(hrir2-l和hrir2-r可以構成第二濾波器組),本端通話設備將第n原始通話數據同時輸入到hrirn-l和hrirn-r(hrirn-l和hrirn-r可以構成第n濾波器組)。其中,hrir1-l、hrir2-l、…、hrirn-l統稱為基於左聲道的濾波器;hrir1-r、hrir2-r、…、hrirn-r統稱為基於右聲道的濾波器。其中,hrir1-l和hrir1-r分別對第一原始通話數據進行濾波,進而hrir1-l輸出第一原始通話數據對應的左聲道通話數據到mix-l(即左聲道混音模塊),hrir1-r輸出第一原始通話數據對應的右聲道通話數據到mix-r(即右聲道混音模塊)。其中,hrir2-l和hrir2-r分別對第二原始通話數據進行濾波,進而hrir2-l輸出第二原始通話數據對應的左聲道通話數據到mix-l,hrir2-r輸出第二原始通話數據對應的右聲道通話數據到mix-r。其中,hrirn-l和hrirn-r分別對第n原始通話數據進行濾波,進而hrirn-l輸出第n原始通話數據對應的左聲道通話數據到mix-l,hrirn-r輸出第n原始通話數據對應的右聲道通話數據到mix-r。mix-l對各基於左聲道的濾波器分別輸出的左聲道通話數據進行混音,得到左聲道混音數據,並將左聲道混音數據輸出到左耳機進行播放。mix-r對各基於右聲道分別輸出的右聲道通話數據進行混音,得到右聲道混音數據,並將右聲道混音數據輸出到右耳機進行播放。通過各基於左聲道的濾波器和各基於右聲道的濾波器進行濾波,左聲道混音數據和右聲道混音數據中所合成的第一原始通話數據對應的最終輸出聲音可以具備聲音方位感,如本端用戶可以感覺到第一通話設備對應的用戶的聲音在本端用戶的左側;左聲道混音數據和右聲道混音數據中所合成的第二原始通話數據對應的最終輸出聲音可以具備聲音方位感,如本端用戶可以感覺到第二通話設備對應的用戶的聲音在本端用戶的右側;左聲道混音數據和右聲道混音數據中所合成的第n原始通話數據對應的最終輸出聲音可以具備聲音方位感,如本端用戶可以感覺到第n通話設備對應的用戶的聲音在本端用戶的正前方。可選的,每次輸入到濾波器的原始通話數據所構成的輸入序列的長度可以始終保持為預設的組幀延時長度t,濾波器再對長度為t的輸入序列(即原始通話數據)進行基於長短序列的分段快速卷積(長度為t的輸入序列為短序列,濾波器為長序列),以輸出相應聲道的通話數據,其中,基於長短序列的分段快速卷積的具體過程可以參見圖1對應實施例中的s102,這裡不再進行贅述。由於n個濾波器對應的組幀延時均可以為t對應的組幀延時,所以通過降低t,可以縮短各濾波器的組幀延時,以提高通話的實時性。由此可見,通過在通話設備中設置多個濾波器,可以將各通話設備發送的原始通話數據進行音頻3d化處理,使得在多人會話過程中,可以使用戶感覺到各通話用戶的聲音具備對應的方位,而且通過設置組幀延時長度t,可以在多人會話中實現音頻3d化處理的同時,對組幀延時和運算量進行均衡。

本發明實施例通過將可進行音頻3d化處理的濾波器應用在多人會話設備中,可以使得多人會話過程中,為不同的通話對象的通話數據設置不同的聲音方位感,以豐富通話效果。而且對於多人會話設備中的每一個濾波器,均可以獲取輸入到濾波器的輸入樣點,並累計由多個輸入樣點所構成的輸入序列的長度,若所述輸入序列的長度達到預設的組幀延時長度,則對所述輸入序列和濾波器中的單位衝激響應進行基於長短序列的分段快速卷積計算,得到所述輸入序列對應的輸出結果。由於輸入序列的長度為所述組幀延時長度,所以無論單位衝激響應的長度有多長,組幀所造成的時延都始終由所述組幀延時長度來決定,因此,通過減小所述組幀延時長度,即可減少組幀延時。而且以單位衝激響應作為長度列,與所述輸入序列進行分段快速卷積,可以減少濾波過程中的運算量,從而可以在濾波過程中對運算量和組幀延時進行均衡控制,以提高濾波處理效率。而且通過進一步降低組幀延時長度,可以進一步降低組幀延時,以提高通話的實時性。

請參見圖4,是本發明實施例提供的一種數據濾波裝置的結構示意圖。所述數據濾波裝置1可以包括:累計模塊11、第一濾波模塊12、第二濾波模塊13、播放模塊14;

所述累計模塊11,用於獲取輸入到第一濾波器的輸入樣點,並累計由多個輸入樣點所構成的輸入序列的長度;所述第一濾波器包括第一單位衝激響應;

所述第一濾波模塊12,用於若所述輸入序列的長度達到預設的組幀延時長度,則對所述輸入序列和所述第一單位衝激響應進行基於長短序列的分段快速卷積計算,得到所述輸入序列對應的輸出結果;

其中,所述第一單位衝激響應的長度大於所述組幀延時長度;所述輸入序列為短序列,所述第一單位衝激響應為長序列。

所述累計模塊11和所述第一濾波模塊12的具體功能實現方式可以參見上述圖1對應實施例中的s101-s102,這裡不再進行贅述。

其中,所述輸入序列為第一通話設備發送的第一原始通話數據,所述輸出結果為所述第一濾波器輸出的第一聲道通話數據。

所述第二濾波模塊13,用於若同步輸入至第二濾波器的所述輸入序列的長度達到所述組幀延時長度,則對所述輸入序列和所述第二濾波器的第二單位衝激響應進行基於長短序列的分段快速卷積計算,得到所述輸入序列對應的第二聲道通話數據;所述第二單位衝激響應的長度大於所述組幀延時長度;所述輸入序列為短序列,所述第二單位衝激響應為長序列;

所述播放模塊14,用於對所述輸入序列對應的第一聲道通話數據和第二聲道通話數據進行播放。

其中,所述第二濾波模塊13和所述播放模塊14的具體功能實現方式可以參見上述圖2對應實施例中的s203-s204,這裡不再進行贅述。

進一步的,如圖4所示,所述第一濾波模塊12可以包括:分段單元121、快速卷積單元122;

所述分段單元121,用於若所述輸入序列的長度達到預設的組幀延時長度,則根據所述組幀延時長度對所述第一單位衝激響應進行分段,得到多個單位衝激響應分段;各單位衝激響應分段的長度與所述組幀延時長度之間的差值均處於預設的差值區間內;

所述快速卷積單元122,用於將所述輸入序列分別與所述各單位衝激響應分段進行快速卷積計算,得到所述各單位衝激響應分段分別對應的線性卷積結果;

所述快速卷積單元122,還用於將所述各單位衝激響應分段分別對應的線性卷積結果進行相加,得到所述輸入序列對應的輸出結果。

其中,所述組幀延時長度大於或等於32。其中,所述分段單元121和所述快速卷積單元122的具體功能實現方式可以參見上述圖1對應實施例中的s102,這裡不再進行贅述。

進一步的,請一併參見圖5,是本發明實施例提供的一種播放模塊14的結構示意圖,所述播放模塊14可以包括:第一混音單元141、第二混音單元142、混音播放單元143;

所述第一混音單元141,用於若在接收到所述第一原始通話數據的同時,還接收到第二通話設備發送的第二原始通話數據,則將所述輸入序列對應的第一聲道通話數據與所述第二通話設備對應的第一聲道通話數據進行混音,得到第一聲道混音數據;所述第二通話設備對應的第一聲道通話數據是由第三濾波器對所述第二原始通話數據進行基於長短序列的分段快速卷積後輸出得到;

所述第二混音單元142,用於將所述輸入序列對應的第二聲道通話數據與所述第二通話設備對應的第二聲道通話數據進行混音,得到第二聲道混音數據;所述第二通話設備對應的第二聲道通話數據是由第四濾波器對所述第二原始通話數據進行基於長短序列的分段快速卷積後輸出得到;

所述混音播放單元143,用於對所述第一聲道混音數據和所述第二聲道混音數據進行播放。

其中,所述第一混音單元141、所述第二混音單元142以及所述混音播放單元143的具體功能實現方式可以參見上述圖2對應實施例中的s205-s207,這裡不再進行贅述。

本發明實施例通過將可進行音頻3d化處理的濾波器應用在多人會話設備中,可以使得多人會話過程中,為不同的通話對象的通話數據設置不同的聲音方位感,以豐富通話效果。而且對於多人會話設備中的每一個濾波器,均可以獲取輸入到濾波器的輸入樣點,並累計由多個輸入樣點所構成的輸入序列的長度,若所述輸入序列的長度達到預設的組幀延時長度,則對所述輸入序列和濾波器中的單位衝激響應進行基於長短序列的分段快速卷積計算,得到所述輸入序列對應的輸出結果。由於輸入序列的長度為所述組幀延時長度,所以無論單位衝激響應的長度有多長,組幀所造成的時延都始終由所述組幀延時長度來決定,因此,通過減小所述組幀延時長度,即可減少組幀延時。而且以單位衝激響應作為長度列,與所述輸入序列進行分段快速卷積,可以減少濾波過程中的運算量,從而可以在濾波過程中對運算量和組幀延時進行均衡控制,以提高濾波處理效率。而且通過進一步降低組幀延時長度,可以進一步降低組幀延時,以提高通話的實時性。

請參見圖6,是本發明實施例提供的一種多人語音通話裝置的結構示意圖。所述多人語音通話裝置2可以包括:獲取模塊21、第一濾波模塊22、第二濾波模塊23、混音模塊24、播放模塊25;

獲取模塊21,用於獲取至少兩個通話設備發送的原始通話數據,將各通話設備發送的原始通話數據分別輸入至對應的濾波器組;每個濾波器組均包括基於第一聲道的濾波器和基於第二聲道的濾波器;不同的濾波器組輸出的音頻數據對應的三維方位互不相同;

第一濾波模塊22,用於通過所述基於第一聲道的濾波器對所輸入的原始通話數據進行三維音頻處理,並輸出第一聲道通話數據;

第二濾波模塊23,用於通過所述基於第二聲道的濾波器對所輸入的原始通話數據進行三維音頻處理,並輸出第二聲道通話數據;

混音模塊24,用於將輸出的多個第一聲道通話數據進行混音,得到第一聲道混音數據,並將輸出的多個第二聲道通話數據進行混音,得到第二聲道混音數據;

播放模塊25,用於對所述第一聲道混音數據和所述第二聲道混音數據進行播放。

其中,所述獲取模塊21、所述第一濾波模塊22、所述第二濾波模塊23、所述混音模塊24以及所述播放模塊25的具體功能實現方式可以參見上述圖3對應實施例中的s301-s305,這裡不再進行贅述。

進一步的,如圖6所示,所述第一濾波模塊22可以包括:第一累計單元221、第一卷積單元222;

所述第一累計單元221,用於累計輸入到所述基於第一聲道的濾波器的原始通話數據所構成的輸入序列的長度;

所述第一卷積單元222,用於若所述輸入序列的長度達到預設的組幀延時長度,則根據所述組幀延時長度對所述基於第一聲道的濾波器的單位衝激響應進行分段,得到多個單位衝激響應分段;各單位衝激響應分段的長度與所述組幀延時長度之間的差值均處於預設的差值區間內;所述單位衝激響應的長度大於所述組幀延時長度;

所述第一卷積單元222,還用於將所述輸入序列分別與所述各單位衝激響應分段進行快速卷積計算,得到所述各單位衝激響應分段分別對應的線性卷積結果;

所述第一卷積單元222,還用於將所述各單位衝激響應分段分別對應的線性卷積結果進行相加,得到所述輸入序列對應的第一聲道通話數據。

其中,所述第一累計單元221和所述第一卷積單元222的具體功能實現方式可以參見上述圖1對應實施例中的s101-s102,這裡不再進行贅述。

進一步的,如圖6所示,所述第二濾波模塊23可以包括:第二累計單元231、第二卷積單元232;

所述第二累計單元231,用於累計已輸入到所述基於第二聲道的濾波器的原始通話數據所構成的輸入序列的長度;

所述第二卷積單元232,用於若所述輸入序列的長度達到預設的組幀延時長度,則根據所述組幀延時長度對所述基於第二聲道的濾波器的單位衝激響應進行分段,得到多個單位衝激響應分段;各單位衝激響應分段的長度與所述組幀延時長度之間的差值均處於預設的差值區間內;所述單位衝激響應的長度大於所述組幀延時長度;

所述第二卷積單元232,還用於將所述輸入序列分別與所述各單位衝激響應分段進行快速卷積計算,得到所述各單位衝激響應分段分別對應的線性卷積結果;

所述第二卷積單元232,還用於將所述各單位衝激響應分段分別對應的線性卷積結果進行相加,得到所述輸入序列對應的第二聲道通話數據。

其中,所述第二累計單元231以及所述第二卷積單元232的具體功能實現方式可以參見上述圖1對應實施例中的s101-s102,這裡不再進行贅述。

其中,所述組幀延時長度大於或等於32。

本發明實施例通過將可進行音頻3d化處理的濾波器應用在多人會話設備中,可以使得多人會話過程中,為不同的通話對象的通話數據設置不同的聲音方位感,以豐富通話效果。而且對於多人會話設備中的每一個濾波器,均可以獲取輸入到濾波器的輸入樣點,並累計由多個輸入樣點所構成的輸入序列的長度,若所述輸入序列的長度達到預設的組幀延時長度,則對所述輸入序列和濾波器中的單位衝激響應進行基於長短序列的分段快速卷積計算,得到所述輸入序列對應的輸出結果。由於輸入序列的長度為所述組幀延時長度,所以無論單位衝激響應的長度有多長,組幀所造成的時延都始終由所述組幀延時長度來決定,因此,通過減小所述組幀延時長度,即可減少組幀延時。而且以單位衝激響應作為長度列,與所述輸入序列進行分段快速卷積,可以減少濾波過程中的運算量,從而可以在濾波過程中對運算量和組幀延時進行均衡控制,以提高濾波處理效率。而且通過進一步降低組幀延時長度,可以進一步降低組幀延時,以提高通話的實時性。

請參見圖7,是本發明實施例提供的另一種數據濾波裝置的結構示意圖。如圖7所示,所述數據濾波裝置1000可以包括:處理器1001、存儲器1005、多個濾波器(圖7以4個濾波器為例,分別為第一濾波器1006a、第二濾波器1006b、第三濾波器1006c、第四濾波器1006d)、聲音接收器1007(如麥克風)以及聲音發送器1008(如耳機、揚聲器等等),其中,聲音接收器1007可以用於採集和記錄本地用戶的說話聲音,聲音發送器1008可以用於對其他通話設備所發送的語音進行播放。此外,所述數據濾波裝置1000還可以包括:網絡接口1004,用戶接口1003,和至少一個通信總線1002。其中,通信總線1002用於實現這些組件之間的連接通信。其中,用戶接口1003可以包括顯示屏(display)、鍵盤(keyboard),可選用戶接口1003還可以包括標準的有線接口、無線接口。網絡接口1004可選的可以包括標準的有線接口、無線接口(如wi-fi接口)。存儲器1005可以是高速ram存儲器,也可以是非不穩定的存儲器(non-volatilememory),例如至少一個磁碟存儲器。存儲器1005可選的還可以是至少一個位於遠離前述處理器1001的存儲裝置。如圖7所示,作為一種計算機存儲介質的存儲器1005中可以包括作業系統、網絡通信模塊、用戶接口模塊以及設備控制應用程式。

在圖7所示的數據濾波裝置1000中,網絡接口1004可提供網絡通訊功能,以接收外部設備發送的輸入樣點(即接收其他通話設備發送的原始通話數據),網絡接口1004還可以用於將聲音接收器1007所採集到的本地用戶的說話聲音(即本地的原始通話數據)發送給其他通話設備;而用戶接口1003主要用於為用戶提供輸入的接口;而處理器1001可以用於調用存儲器1005中存儲的設備控制應用程式,以實現:

獲取輸入到第一濾波器1006a的輸入樣點,並累計由多個輸入樣點所構成的輸入序列的長度;所述第一濾波器1006a包括第一單位衝激響應;

若所述輸入序列的長度達到預設的組幀延時長度,則控制所述第一濾波器1006a對所述輸入序列和所述第一單位衝激響應進行基於長短序列的分段快速卷積計算,得到所述輸入序列對應的輸出結果;

所述第一單位衝激響應的長度大於所述組幀延時長度;所述輸入序列為短序列,所述第一單位衝激響應為長序列。

在一個實施例中,所述處理器1001在執行若所述輸入序列的長度達到預設的組幀延時長度,則控制所述第一濾波器1006a對所述輸入序列和所述第一單位衝激響應進行基於長短序列的分段快速卷積計算,得到所述輸入序列對應的輸出結果時,可以具體執行以下步驟:

若所述輸入序列的長度達到預設的組幀延時長度,則控制所述第一濾波器1006a根據所述組幀延時長度對所述第一單位衝激響應進行分段,得到多個單位衝激響應分段;各單位衝激響應分段的長度與所述組幀延時長度之間的差值均處於預設的差值區間內;

控制所述第一濾波器1006a將所述輸入序列分別與所述各單位衝激響應分段進行快速卷積計算,得到所述各單位衝激響應分段分別對應的線性卷積結果,並將所述各單位衝激響應分段分別對應的線性卷積結果進行相加,得到所述輸入序列對應的輸出結果。

其中,所述組幀延時長度大於或等於32。

在一個實施例中,所述輸入序列為第一通話設備發送的第一原始通話數據,所述輸出結果為所述第一濾波器1006a輸出的第一聲道通話數據;

則所述處理器還可以執行以下步驟:

若同步輸入至第二濾波器1006b的所述輸入序列的長度達到所述組幀延時長度,則控制所述第二濾波器1006b對所述輸入序列和所述第二濾波器1006b的第二單位衝激響應進行基於長短序列的分段快速卷積計算,得到所述輸入序列對應的第二聲道通話數據;所述第二單位衝激響應的長度大於所述組幀延時長度;所述輸入序列為短序列,所述第二單位衝激響應為長序列;

控制聲音發送器1008對所述輸入序列對應的第一聲道通話數據和第二聲道通話數據進行播放。

在一個實施例中,所述處理器1001在執行對所述輸入序列對應的第一聲道通話數據和第二聲道通話數據進行播放時,可以具體執行以下步驟:

若在接收到所述第一原始通話數據的同時,還接收到第二通話設備發送的第二原始通話數據,則將所述輸入序列對應的第一聲道通話數據與所述第二通話設備對應的第一聲道通話數據進行混音,得到第一聲道混音數據;所述第二通話設備對應的第一聲道通話數據是由第三濾波器1006c對所述第二原始通話數據進行基於長短序列的分段快速卷積後輸出得到;

將所述輸入序列對應的第二聲道通話數據與所述第二通話設備對應的第二聲道通話數據進行混音,得到第二聲道混音數據;所述第二通話設備對應的第二聲道通話數據是由第四濾波器1006d對所述第二原始通話數據進行基於長短序列的分段快速卷積後輸出得到;

控制聲音發送器1008對所述第一聲道混音數據和所述第二聲道混音數據進行播放。

本發明實施例通過將可進行音頻3d化處理的濾波器應用在多人會話設備中,可以使得多人會話過程中,為不同的通話對象的通話數據設置不同的聲音方位感,以豐富通話效果。而且對於多人會話設備中的每一個濾波器,均可以獲取輸入到濾波器的輸入樣點,並累計由多個輸入樣點所構成的輸入序列的長度,若所述輸入序列的長度達到預設的組幀延時長度,則對所述輸入序列和濾波器中的單位衝激響應進行基於長短序列的分段快速卷積計算,得到所述輸入序列對應的輸出結果。由於輸入序列的長度為所述組幀延時長度,所以無論單位衝激響應的長度有多長,組幀所造成的時延都始終由所述組幀延時長度來決定,因此,通過減小所述組幀延時長度,即可減少組幀延時。而且以單位衝激響應作為長度列,與所述輸入序列進行分段快速卷積,可以減少濾波過程中的運算量,從而可以在濾波過程中對運算量和組幀延時進行均衡控制,以提高濾波處理效率。而且通過進一步降低組幀延時長度,可以進一步降低組幀延時,以提高通話的實時性。

此外,這裡需要指出的是:本發明實施例還提供了一種計算機存儲介質,且所述計算機存儲介質中存儲有前文提及的數據濾波裝置1所執行的電腦程式,且所述電腦程式包括程序指令,當所述處理器執行所述程序指令時,能夠執行前文圖1或圖2所對應實施例中對所述數據濾波方法的描述,因此,這裡將不再進行贅述。另外,對採用相同方法的有益效果描述,也不再進行贅述。對於本發明所涉及的計算機存儲介質實施例中未披露的技術細節,請參照本發明方法實施例的描述。

請參見圖8,是本發明實施例提供的另一種多人語音通話裝置的結構示意圖。如圖8所示,所述多人語音通話裝置2000可以包括:處理器2001、存儲器2005、多個濾波器(圖8以4個濾波器為例,分別為第一濾波器2006a、第二濾波器2006b、第三濾波器2006c、第四濾波器2006d)、聲音接收器2007(如麥克風)以及聲音發送器2008(如耳機、揚聲器等等),其中,聲音接收器2007可以用於採集和記錄本地用戶的說話聲音,聲音發送器2008可以用於對其他通話設備所發送的語音進行播放。此外,所述多人語音通話裝置2000還可以包括:網絡接口2004,用戶接口2003,和至少一個通信總線2002。其中,通信總線2002用於實現這些組件之間的連接通信。其中,用戶接口2003可以包括顯示屏(display)、鍵盤(keyboard),可選用戶接口2003還可以包括標準的有線接口、無線接口。網絡接口2004可選的可以包括標準的有線接口、無線接口(如wi-fi接口)。存儲器2005可以是高速ram存儲器,也可以是非不穩定的存儲器(non-volatilememory),例如至少一個磁碟存儲器。存儲器2005可選的還可以是至少一個位於遠離前述處理器2001的存儲裝置。如圖8所示,作為一種計算機存儲介質的存儲器2005中可以包括作業系統、網絡通信模塊、用戶接口模塊以及設備控制應用程式。

在圖8所示的多人語音通話裝置2000中,網絡接口2004可提供網絡通訊功能,以用於獲取至少兩個通話設備發送的原始通話數據,網絡接口2004還可以用於將聲音接收器2007所採集到的本地用戶的說話聲音(即本地的原始通話數據)發送給其他通話設備;而用戶接口2003主要用於為用戶提供輸入的接口;而處理器2001可以用於調用存儲器2005中存儲的設備控制應用程式,以實現:

將各通話設備發送的原始通話數據分別輸入至對應的濾波器組;每個濾波器組均包括基於第一聲道的濾波器和基於第二聲道的濾波器;不同的濾波器組輸出的音頻數據對應的三維方位互不相同;

控制所述基於第一聲道的濾波器(包括第一濾波器2006a和第三濾波器2006c)對所輸入的原始通話數據進行三維音頻處理,並輸出第一聲道通話數據;

控制所述基於第二聲道的濾波器(包括第二濾波器2006b和第四濾波器2006d)對所輸入的原始通話數據進行三維音頻處理,並輸出第二聲道通話數據;

將輸出的多個第一聲道通話數據進行混音,得到第一聲道混音數據,並將輸出的多個第二聲道通話數據進行混音,得到第二聲道混音數據;

控制聲音發送器2008對所述第一聲道混音數據和所述第二聲道混音數據進行播放。

在一個實施例中,所述處理器2001在執行控制所述基於第一聲道的濾波器對所輸入的原始通話數據進行三維音頻處理,並輸出第一聲道通話數據時,可以具體執行以下步驟:

累計輸入到所述基於第一聲道的濾波器的原始通話數據所構成的輸入序列的長度;

若所述輸入序列的長度達到預設的組幀延時長度,則控制所述基於第一聲道的濾波器根據所述組幀延時長度對所述基於第一聲道的濾波器的單位衝激響應進行分段,得到多個單位衝激響應分段;各單位衝激響應分段的長度與所述組幀延時長度之間的差值均處於預設的差值區間內;所述單位衝激響應的長度大於所述組幀延時長度;

控制所述基於第一聲道的濾波器將所述輸入序列分別與所述各單位衝激響應分段進行快速卷積計算,得到所述各單位衝激響應分段分別對應的線性卷積結果,並將所述各單位衝激響應分段分別對應的線性卷積結果進行相加,得到所述輸入序列對應的第一聲道通話數據。

在一個實施例中,所述處理器2001在執行控制所述基於第二聲道的濾波器對所輸入的原始通話數據進行三維音頻處理,並輸出第二聲道通話數據時,可以具體執行以下步驟:

累計已輸入到所述基於第二聲道的濾波器的原始通話數據所構成的輸入序列的長度;

若所述輸入序列的長度達到預設的組幀延時長度,則控制所述基於第二聲道的濾波器根據所述組幀延時長度對所述基於第二聲道的濾波器的單位衝激響應進行分段,得到多個單位衝激響應分段;各單位衝激響應分段的長度與所述組幀延時長度之間的差值均處於預設的差值區間內;所述單位衝激響應的長度大於所述組幀延時長度;

控制所述基於第二聲道的濾波器將所述輸入序列分別與所述各單位衝激響應分段進行快速卷積計算,得到所述各單位衝激響應分段分別對應的線性卷積結果,並將所述各單位衝激響應分段分別對應的線性卷積結果進行相加,得到所述輸入序列對應的第二聲道通話數據。

其中,所述組幀延時長度大於或等於32。

本發明實施例通過將可進行音頻3d化處理的濾波器應用在多人會話設備中,可以使得多人會話過程中,為不同的通話對象的通話數據設置不同的聲音方位感,以豐富通話效果。而且對於多人會話設備中的每一個濾波器,均可以獲取輸入到濾波器的輸入樣點,並累計由多個輸入樣點所構成的輸入序列的長度,若所述輸入序列的長度達到預設的組幀延時長度,則對所述輸入序列和濾波器中的單位衝激響應進行基於長短序列的分段快速卷積計算,得到所述輸入序列對應的輸出結果。由於輸入序列的長度為所述組幀延時長度,所以無論單位衝激響應的長度有多長,組幀所造成的時延都始終由所述組幀延時長度來決定,因此,通過減小所述組幀延時長度,即可減少組幀延時。而且以單位衝激響應作為長度列,與所述輸入序列進行分段快速卷積,可以減少濾波過程中的運算量,從而可以在濾波過程中對運算量和組幀延時進行均衡控制,以提高濾波處理效率。而且通過進一步降低組幀延時長度,可以進一步降低組幀延時,以提高通話的實時性。

此外,這裡需要指出的是:本發明實施例還提供了另一種計算機存儲介質,且所述計算機存儲介質中存儲有前文提及的多人語音通話裝置2所執行的電腦程式,且所述電腦程式包括程序指令,當所述處理器執行所述程序指令時,能夠執行前文圖3所對應實施例中對所述多人語音通話方法的描述,因此,這裡將不再進行贅述。另外,對採用相同方法的有益效果描述,也不再進行贅述。對於本發明所涉及的計算機存儲介質實施例中未披露的技術細節,請參照本發明方法實施例的描述。

本領域普通技術人員可以理解實現上述實施例方法中的全部或部分流程,是可以通過電腦程式來指令相關的硬體來完成,所述的程序可存儲於一計算機可讀取存儲介質中,該程序在執行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質可為磁碟、光碟、只讀存儲記憶體(read-onlymemory,rom)或隨機存儲記憶體(randomaccessmemory,ram)等。

以上所揭露的僅為本發明較佳實施例而已,當然不能以此來限定本發明之權利範圍,因此依本發明權利要求所作的等同變化,仍屬本發明所涵蓋的範圍。

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀