專利名稱:音頻變換方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種音頻處理方法和設(shè)備,特別涉及一種對音頻的基頻進行變換的方法和設(shè)備背景技術(shù)修改基頻可以改變語音的特征,使得聽者不能識別說話人的身份,達到變聲的效果。目前改變基頻的方法有傅立葉變換頻域遷移法、SOLA(synchronized Overlap and Add)算法、混合諧波隨機算法等。但這些方法運算量較大,實時實現(xiàn)需要高性能計算機或?qū)S肈SP,增加終端設(shè)備的成本。另一個問題是會改變原始語音的長度,造成通話時實時傳送的困難。
發(fā)明內(nèi)容
本發(fā)明的目的是克服現(xiàn)有的變換方法運算量大和會改變語音長度的缺陷,提供一種運算量小并且不會改變原始語音長度的變換方法。
為了實現(xiàn)上述目的,本發(fā)明采取了如下技術(shù)方案一種音頻變換方法,包括如下步驟步驟一,從音頻段中選取第一數(shù)據(jù)段和第二數(shù)據(jù)段;步驟二,將該第一數(shù)據(jù)段和第二數(shù)據(jù)段進行疊加;步驟三,對疊加后的音頻數(shù)據(jù)進行采樣;步驟四,對采樣后的數(shù)據(jù)進行低通濾波。
其中,該第一數(shù)據(jù)段和第二數(shù)據(jù)段通過以下方法確定首先,將音頻段中的前W個數(shù)據(jù)取出,然后從第L0+n(n=0,1,2...Fmax)個點開始從該語音段中再取Wa個點,作為第一相關(guān)數(shù)據(jù)段,在該W個數(shù)據(jù)中最后的Wa個點取出,作為第二相關(guān)數(shù)據(jù)段,計算著兩個數(shù)據(jù)段的互相關(guān)系數(shù),將其中互相關(guān)系數(shù)最大點的第一相關(guān)數(shù)據(jù)段作為第一數(shù)據(jù)段,第二相關(guān)數(shù)據(jù)段作為第二數(shù)據(jù)段,其中,L0為音頻段的長度,W為窗長度,Wa為第一和第二數(shù)據(jù)段的長度,F(xiàn)max為最大查找延時。
其中,通過如下方法計算該第一比較數(shù)據(jù)段和第二比較數(shù)據(jù)段的互相關(guān)系數(shù)R=Σi=1Waxiyi,]]>其中,xi為第二比較數(shù)據(jù)段序列,yi為第一比較數(shù)據(jù)段序列。
其中,W=Ln+Wa,Ln是疊加后輸出音頻段的長度,Ln=L0·N/M,其中,M是原始音頻長度,N是疊加后的音頻長度。
步驟二中,采用如下方法將該第一數(shù)據(jù)段和第二數(shù)據(jù)段進行疊加Oi=(aiwi+bi(216-wi))/216,其中,Oi為疊加后的輸出序列,ai為第二數(shù)據(jù)段序列,bi為第一數(shù)據(jù)段序列,wi為第二數(shù)據(jù)段中第i個點的疊加系數(shù),各個點的疊加系數(shù)記錄在一個疊加系數(shù)表中。
其中,wi通過如下方法計算wi=[iWa×216],i∈1...Wa.]]>在將第一數(shù)據(jù)段和第二數(shù)據(jù)段疊加后,將隨后Ln個點的輸入語音序列加到輸出序列的尾部。
步驟三中,對輸出序列的前Ln個點進行采樣,采樣率為M/N。
步驟四中,所使用的低通濾波器為FIR型數(shù)字濾波器,其階數(shù)為16·Max(M,N)/M+1。
另外,所述音頻段為一個音頻幀,即L0=160,且Wa=60,F(xiàn)max=80。
本發(fā)明還包括一種音頻變換設(shè)備,包括數(shù)據(jù)段選取單元,其從音頻段中選取第一數(shù)據(jù)段和第二數(shù)據(jù)段;疊加單元,其將該第一數(shù)據(jù)段和第二數(shù)據(jù)段進行疊加;
采樣單元,對疊加后的數(shù)據(jù)進行采樣;低通濾波器,對采樣后的數(shù)據(jù)進行低通濾波。
其中,該數(shù)據(jù)段選取單元包括數(shù)據(jù)提取單元,從音頻段中選擇第一比較數(shù)據(jù)段和第二比較數(shù)據(jù)段;相關(guān)性計算單元,計算第一比較數(shù)據(jù)段和第二比較數(shù)據(jù)段的互相關(guān)系數(shù);選擇單元,選取互相關(guān)系數(shù)最大的第一比較數(shù)據(jù)段和第二比較數(shù)據(jù)段最為第一數(shù)據(jù)段和第二數(shù)據(jù)段。
疊加單元在完成數(shù)據(jù)段的疊加后,將隨后Ln個點的輸入語音序列加到輸出序列的尾部。
該采樣單元對輸出序列的前Ln個點進行采樣,采樣率為M/N,其中,M是原始音頻長度,N是疊加后的音頻長度。
該低通濾波器為FIR型數(shù)字濾波器,其階數(shù)為16·Max(M,N)/M+1。
本發(fā)明的積極進步效果在于運算量很小,不需要高性能計算芯片或?qū)S肈SP,在通用CPU上即可實現(xiàn),只需10MIPS的計算能力,且不改變原始語音長度,適用于實時通話,能夠在計算能力和內(nèi)存有限的移動終端上實現(xiàn)實時語音變聲。
圖1為本發(fā)明中音頻變換設(shè)備的邏輯框圖。
圖2為本發(fā)明中方法的過程示意圖。
圖3A、3B為本發(fā)明中選取數(shù)據(jù)段的示意圖。
具體實施例方式
下面結(jié)合附圖給出本發(fā)明較佳實施例,以詳細說明本發(fā)明的技術(shù)方案。
如圖1所示,一種音頻變換設(shè)備,包括
數(shù)據(jù)段選取單元10,其從音頻段中選取第一數(shù)據(jù)段和第二數(shù)據(jù)段;疊加單元20,其將該第一數(shù)據(jù)段和第二數(shù)據(jù)段進行疊加;采樣單元30,對疊加后的數(shù)據(jù)進行采樣;低通濾波器40,對采樣后的數(shù)據(jù)進行低通濾波。
其中,該數(shù)據(jù)段選取單元10包括數(shù)據(jù)提取單元11,從音頻段中選擇第一比較數(shù)據(jù)段和第二比較數(shù)據(jù)段;相關(guān)性計算單元12,計算第一比較數(shù)據(jù)段和第二比較數(shù)據(jù)段的互相關(guān)系數(shù);選擇單元13,選取互相關(guān)系數(shù)最大的第一比較數(shù)據(jù)段和第二比較數(shù)據(jù)段最為第一數(shù)據(jù)段和第二數(shù)據(jù)段。
疊加單元20在完成數(shù)據(jù)段的疊加后,將隨后Ln個點的輸入語音序列加到輸出序列的尾部。
該采樣單元30的采樣率為M/N,其中,M是原始音頻長度,N是疊加后的音頻長度。
該低通濾波器40為FIR型數(shù)字濾波器,其階數(shù)為16·Max(M,N)/M+1。
如圖2所示,在本發(fā)明的音頻變換方法中,首先,輸入相關(guān)的參數(shù),即,原始音頻長度M和疊加后的音頻長度N(步驟100),它們的比可以為1/2、3/5、2/3、3/4、4/5、5/4、4/3、3/2、5/3或2/1,這10個比值對應(yīng)了10種變聲效果。
如步驟110,選取一個音頻幀為一個音頻段,當(dāng)將本發(fā)明應(yīng)用在語音變換上時,由于語音通話采樣率為8KHZ,一個語音幀長為20ms,則音頻段定為160點,即,音頻段的長度L0=160。
然后利用數(shù)據(jù)選取單元10在音頻段中選取第一數(shù)據(jù)段和第二數(shù)據(jù)段(如步驟120)。
如圖3A、3B所示,在一個音頻段中,將音頻段中的前W個數(shù)據(jù)取出,W為窗長度,W=Ln+Wa,Ln是疊加后輸出音頻段的長度,Ln=L0·N/M,Wa為第一和第二數(shù)據(jù)段的長度,對于上述10種變聲效果,為了減少內(nèi)存占用,M、N的比值簡化為最小公約數(shù)(1/2、3/5、2/3、3/4、4/5、5/4、4/3、3/2、5/3或2/1),則Wa應(yīng)為1、2、3、4、5的公倍數(shù),且小于L0,如果取值大,效果就好,但是會增加計算量,綜合考慮可以取Wa=60。在該W個數(shù)據(jù)中最后的Wa個點取出,作為第二相關(guān)數(shù)據(jù)段,然后從第L0+n(n=0,1,2...Fmax)個點開始從該語音段中再取Wa個點,作為第一相關(guān)數(shù)據(jù)段,在該W各數(shù)據(jù)中最后的Wa個點取出,作為第二相關(guān)數(shù)據(jù)段,F(xiàn)max為最大查找延時,取Fmax=80。也就是,選取第一相關(guān)數(shù)據(jù)段的過程進行Fmax,每次取點的起始點向后移動一位。
可以通過數(shù)據(jù)提取單元11完成數(shù)據(jù)段的選取。
利用相關(guān)性計算單元12計算著第二相關(guān)數(shù)據(jù)段和第一相關(guān)數(shù)據(jù)段的互相關(guān)系數(shù),利用選擇單元13選取其中互相關(guān)系數(shù)最大點的第一相關(guān)數(shù)據(jù)段作為第一數(shù)據(jù)段,第二相關(guān)數(shù)據(jù)段作為第二數(shù)據(jù)段。相關(guān)性計算單元12和選擇單元13交互運行完成上述過程。
其中,通過如下方法計算該第一比較數(shù)據(jù)段和第二比較數(shù)據(jù)段的互相關(guān)系數(shù)R=Σi=1Waxiyi,]]>其中,xi為第二比較數(shù)據(jù)段序列,yi為第一比較數(shù)據(jù)段序列。
如步驟130,利用疊加單元20將該第一數(shù)據(jù)段和第二數(shù)據(jù)段進行疊加,可采用如下方法進行疊加Oi=(aiwi+bi(216-wi))/216,其中,Oi為疊加后的輸出序列,ai為第二數(shù)據(jù)段序列,bi為第一數(shù)據(jù)段序列,wi為第二數(shù)據(jù)段中第i個點的疊加系數(shù),各個點的疊加系數(shù)記錄在一個疊加系數(shù)表中。
給疊加系數(shù)表中的wi通過如下方法計算wi=[iWa×216],i∈1...Wa.]]>也就是,將Wa預(yù)先設(shè)定,然后計算出每個點的疊加系數(shù),存儲在一個疊加系數(shù)表中,在進行疊加時,直接從表中讀取各個點的疊加系數(shù),而不必每次在進行運算,減少了運算量。
另外,在將第一數(shù)據(jù)段和第二數(shù)據(jù)段疊加后,將隨后Ln個點的輸入語音序列加到輸出序列的尾部。
如步驟140,利用采樣單元30對輸出序列的前Ln個點進行采樣,采樣率為M/N。
如步驟150,利用低通濾波器40對采樣后的數(shù)據(jù)進行低通濾波,低通濾波器40為FIR型數(shù)字濾波器,其階數(shù)為16·Max(M,N)/M+1。
這樣,疊加后的數(shù)據(jù)經(jīng)過采樣和低通濾波,數(shù)據(jù)長度仍然是L0,音頻段的長度沒有變化,相應(yīng)的整個音頻的長度還是原始的長度M。
當(dāng)使用C語言實現(xiàn)上述方法、并使用ARMADS編譯時,需要的存儲空間為12K的程序代碼(ROM)和6K的運行時內(nèi)存(RAM),顯然,上述方法僅需要很少的資源即可進行音頻的變換。
權(quán)利要求
1.一種音頻變換方法,其特征在于,其包括如下步驟步驟一,從音頻段中選取第一數(shù)據(jù)段和第二數(shù)據(jù)段;步驟二,將該第一數(shù)據(jù)段和第二數(shù)據(jù)段進行疊加;步驟三,對疊加后的音頻數(shù)據(jù)進行采樣;步驟四,對采樣后的數(shù)據(jù)進行低通濾波。
2.根據(jù)權(quán)利要求1所述的音頻變換方法,其特征在于,該第一數(shù)據(jù)段和第二數(shù)據(jù)段通過以下方法確定首先,將音頻段中的前W個數(shù)據(jù)取出,然后從第L0+n(n=0,1,2...Fmax)個點開始從該語音段中再取Wa個點,作為第一相關(guān)數(shù)據(jù)段,在該W個數(shù)據(jù)中最后的Wa個點取出,作為第二相關(guān)數(shù)據(jù)段,計算兩個相關(guān)數(shù)據(jù)段的互相關(guān)系數(shù),將其中互相關(guān)系數(shù)最大點的第一相關(guān)數(shù)據(jù)段作為第一數(shù)據(jù)段,第二相關(guān)數(shù)據(jù)段作為第二數(shù)據(jù)段,其中,L0為音頻段的長度,W為窗長度,Wa為第一和第二數(shù)據(jù)段的長度,F(xiàn)max為最大查找延時。
3.根據(jù)權(quán)利要求2所述的音頻變換方法,其特征在于,通過如下方法計算該第一比較數(shù)據(jù)段和第二比較數(shù)據(jù)段的互相關(guān)系數(shù)R=Σi=1Waxiyi,]]>其中,xi為第二比較數(shù)據(jù)段序列,yi為第一比較數(shù)據(jù)段序列。
4.根據(jù)權(quán)利要求3所述的音頻變換方法,其特征在于,W=Ln+Wa,Ln是疊加后輸出音頻段的長度,Ln=L0·N/M,其中,M是原始音頻長度,N是疊加后的音頻長度。
5.根據(jù)1-4任一權(quán)利要求所述的音頻變換方法,其特征在于,步驟二中,采用如下方法將該第一數(shù)據(jù)段和第二數(shù)據(jù)段進行疊加Oi=(aiwi+bi(216-wi))/216,其中,Oi為疊加后的輸出序列,ai為第二數(shù)據(jù)段序列,bi為第一數(shù)據(jù)段序列,wi為第二數(shù)據(jù)段中第i個點的疊加系數(shù),各個點的疊加系數(shù)記錄在一個疊加系數(shù)表中。
6.根據(jù)權(quán)利要求5所述的音頻變換方法,其特征在于,wi通過如下方法計算wi=[iWa×216],i∈1...Wa.]]>
7.根據(jù)權(quán)利要求6所述的音頻變換方法,其特征在于,在將第一數(shù)據(jù)段和第二數(shù)據(jù)段疊加后,將隨后Ln個點的輸入語音序列加到輸出序列的尾部。
8.根據(jù)權(quán)利要求7所述的音頻變換方法,其特征在于,步驟三中,對輸出序列的前Ln個點進行采樣,采樣率為M/N。
9.根據(jù)權(quán)利要求8所述的音頻變換方法,其特征在于,步驟四中,所使用的低通濾波器為FIR型數(shù)字濾波器,其階數(shù)為16·Max(M,N)/M+1。
10.根據(jù)權(quán)利要求9所述的音頻變換方法,其特征在于,所述音頻段為一個音頻幀,即L0=160,且Wa=60,F(xiàn)max=80。
11.一種音頻變換設(shè)備,其特征在于,其包括數(shù)據(jù)段選取單元,其從音頻段中選取第一數(shù)據(jù)段和第二數(shù)據(jù)段;疊加單元,其將該第一數(shù)據(jù)段和第二數(shù)據(jù)段進行疊加;采樣單元,對疊加后的數(shù)據(jù)進行采樣;低通濾波器,對采樣后的數(shù)據(jù)進行低通濾波。
12.根據(jù)權(quán)利要求11所述的音頻變換設(shè)備,其特征在于,該數(shù)據(jù)段選取單元包括數(shù)據(jù)提取單元,從音頻段中選擇第一比較數(shù)據(jù)段和第二比較數(shù)據(jù)段;相關(guān)性計算單元,計算第一比較數(shù)據(jù)段和第二比較數(shù)據(jù)段的互相關(guān)系數(shù);選擇單元,選取互相關(guān)系數(shù)最大的第一比較數(shù)據(jù)段和第二比較數(shù)據(jù)段最為第一數(shù)據(jù)段和第二數(shù)據(jù)段。
13.根據(jù)權(quán)利要求12所述的音頻變換設(shè)備,其特征在于,疊加單元在完成數(shù)據(jù)段的疊加后,將隨后Ln個點的輸入語音序列加到輸出序列的尾部。
14.根據(jù)權(quán)利要求13所述的音頻變換設(shè)備,其特征在于,該采樣單元對輸出序列的前Ln個點進行采樣,采樣率為M/N,其中,M是原始音頻長度,N是疊加后的音頻長度。
15.根據(jù)權(quán)利要求14所述的音頻變換設(shè)備,其特征在于,該低通濾波器為FIR型數(shù)字濾波器,其階數(shù)為16·Max(M,N)/M+1。
全文摘要
本發(fā)明公開了一種音頻變換方法,包括如下步驟步驟一,從音頻段中選取第一數(shù)據(jù)段和第二數(shù)據(jù)段;步驟二,將該第一數(shù)據(jù)段和第二數(shù)據(jù)段進行疊加;步驟三,對疊加后的音頻數(shù)據(jù)進行采樣;步驟四,對采樣后的數(shù)據(jù)進行低通濾波。還公開了一種音頻變換設(shè)備,包括數(shù)據(jù)段選取單元,其從音頻段中選取第一數(shù)據(jù)段和第二數(shù)據(jù)段;疊加單元,其將該第一數(shù)據(jù)段和第二數(shù)據(jù)段進行疊加;采樣單元,對疊加后的數(shù)據(jù)進行采樣;低通濾波器,對采樣后的數(shù)據(jù)進行低通濾波。本發(fā)明的運算量很小,不需要高性能計算芯片或?qū)S肈SP,只需10MIPS的計算能力,且不改變原始語音長度,適用于實時通話,能夠在計算能力和內(nèi)存有限的移動終端上實現(xiàn)實時語音變聲。
文檔編號G10L21/00GK101055722SQ20061002562
公開日2007年10月17日 申請日期2006年4月12日 優(yōu)先權(quán)日2006年4月12日
發(fā)明者王衛(wèi)華 申請人:上海晨興電子科技有限公司