專利名稱:自適應幀選擇線譜頻率參數(shù)量化方法
技術(shù)領域:
本發(fā)明屬于低速率語音編碼技術(shù)領域,特別涉及多幀聯(lián)合處理低碼率參數(shù)語音編碼技術(shù)。
背景技術(shù):
在低速率語音編碼方法的研究中,線性預測模型是表示語音信號譜包絡很有效的方法。很多中、低速率語音編碼方法都基于線性預測模型,CELP(Code Excited LinearPredictive Coding),WI(Waveform Interpolation),MELP(Mixed Excitation LinearPrediction)等。其他一些參數(shù)編碼方法如MBE(Multiband Excitation Coding),STC(Sinusoidal Transform Coding)為了有效的表示譜包絡也引入了線性預測模型。這些語音編碼方法中譜包絡參數(shù)的量化編碼占有較多的比特數(shù),并且譜包絡參數(shù)的精細量化是產(chǎn)生高質(zhì)量語音的基礎。用線譜頻率(LSF)參數(shù)表示譜包絡有利于參數(shù)的量化,在語音的參數(shù)編碼方法中多采用LSF參數(shù)表示譜包絡。比特率越低,為了更加有效的表示語音的譜參數(shù),采用多幀聯(lián)合矩陣量化。傳統(tǒng)量化方法如
圖1所示,該方法包含以下步驟。
(1)對輸入語音信號樣點按時間順序分幀,將連續(xù)的N子幀組成一個超幀,N為正整數(shù);(2)對當前超幀中的每一子幀提取聲道A參數(shù);(3)將當前超幀中的每一子幀聲道A參數(shù)轉(zhuǎn)換成LSF參數(shù);(4)N子幀LSF參數(shù)利用多級矩陣量化方法進行量化,得到LSF參數(shù)的量化標號;(5)在解碼端得到量化后的N子幀LSF參數(shù);(6)將當前超幀量化后的LSF參數(shù)轉(zhuǎn)換成聲道A參數(shù),得到量化后的聲道A參數(shù)。
為了提高語音編碼的效率,Viswanathan等提出了一種變幀率傳輸譜包絡參數(shù)的方法,量化LAR(Log Area Ratios)參數(shù)的平均幀率為27幀/秒,語音質(zhì)量和每秒100幀固定幀率時相同。同時還指出譜包絡參數(shù)的理論最小平均傳輸幀率為每秒24幀。這是自適應幀選擇線譜頻率參數(shù)量化(AFS-MQ)方法的理論基礎。該方法應用于甚低速率語音編碼方法有兩個問題需要考慮,其一是對單幀譜包絡參數(shù)量化,所需要的比特數(shù)仍然較多。另外由于語音信號的音節(jié)特性,得到的是變速率編碼數(shù)據(jù),轉(zhuǎn)到固定速率需要較大延時。George提出了固定速率AFS方法,在較低延時情況下得到了較好的語音質(zhì)量。但這種方法的平均幀率較高,仍然對單幀語音參數(shù)進行量化,所需要的編碼比特率較高,對于甚低速率語音編碼不能直接應用。
發(fā)明內(nèi)容
本發(fā)明的目的是為了解決在極低比特率下高效率量化線譜頻率(LSF)參數(shù)問題,提出一種自適應幀選擇線譜頻率參數(shù)量化方法,可在300bit/s量化LSF參數(shù)時,存儲量是傳統(tǒng)多級矩陣量化的一半,但譜失真更小。
本發(fā)明提出的自適應幀選擇線譜頻率(LSF)參數(shù)量化的方法,包含以下步驟(1)對輸入語音信號樣點按時間順序分幀,將連續(xù)的N個子幀組成一個超幀,N為正整數(shù);(2)對當前超幀中的每一子幀提取聲道A參數(shù);(3)將當前超幀中的每一子幀聲道A參數(shù)轉(zhuǎn)換成LSF參數(shù);(4)從當前超幀N子幀LSF參數(shù)按最優(yōu)準則選擇M個子幀作為直接量化幀用于矩陣量化,其中M為正整數(shù),且M<N。并對這M個子幀的位置信息進行編碼;(5)該M個直接量化幀利用多級矩陣量化方法進行量化,得到LSF參數(shù)的量化標號;(6)在解碼端得到量化后M個子幀的LSF參數(shù);(7)當前超幀中除去M個直接量化幀外其余未量化子幀的LSF參數(shù)由相鄰的直接量化幀插值得到;(8)將當前超幀量化后的每個子幀LSF參數(shù)轉(zhuǎn)換成聲道A參數(shù),得到量化后的聲道A參數(shù)。
上述步驟(4)中以M個直接量化幀插值后得到的當前超幀N子幀LSF參數(shù)和原始提取參數(shù)距離最小作為最優(yōu)準則,自適應選擇M子幀作為直接量化幀進行矩陣量化。并對這M個子幀的位置信息進行編碼。一般在一個音節(jié)內(nèi)的參數(shù)變化較緩慢,而音節(jié)間的參數(shù)變化劇烈;選擇M幀直接量化幀是為了在一個音節(jié)內(nèi)參數(shù)變化緩慢的幀可以應用線性插值得到,而音節(jié)間參數(shù)變化劇烈的部分直接量化傳輸。
上述步驟(5)中多級矩陣量化方法,該方法對傳統(tǒng)的多級矩陣方法進行了擴展,M直接量化幀LSF參數(shù)碼本中的碼字用來插值得到量化后的N子幀LSF參數(shù),插值過程利用前一超幀最后子幀和第一個直接量化幀的LSF參數(shù)對第一個直接量化幀前面幾幀LSF參數(shù)進行插值。本發(fā)明采用對M幀LSF參數(shù)碼本插值計算得到N幀參數(shù)的碼本,對提取得到的LSF參數(shù)矢量去除前一超級幀預測影響后再進行搜索的方法。這里對LSF參數(shù)的多級矩陣量化方法進行擴展,消除了前面預測幀的影響,考慮全部N幀LSF參數(shù)量化前后的距離。
本發(fā)明的特點及技術(shù)效果本發(fā)明結(jié)合自適應幀選擇方法和矩陣量化給出了一種適用于甚低速率語音編碼的LSF參數(shù)量化方法。LSF參數(shù)的變化趨勢可以由穩(wěn)定的部分和變化劇烈部分組成。在穩(wěn)定部分,連續(xù)幀的LSF參數(shù)隨時間呈線性變化,并且10個LSF系數(shù)的變化趨勢相似。在變化部分LSF參數(shù)變化較劇烈??梢詫SF參數(shù)逐段分割,對于線性變化的幀只需要傳輸開始和結(jié)束點的LSF參數(shù)值,其余中間幀的LSF系數(shù)由線性插值得到;對于變化劇烈部分則需要直接量化每一子幀的參數(shù)。
本發(fā)明LSF參數(shù)量化方法利用語音信號相鄰幀之間的相關(guān)性及語音的音節(jié)特性,從N幀中選擇M(M<N)幀進行矩陣量化,其余幀利用相鄰直接量化幀線性插值得到。同時,提出了一種新的分級矩陣量化方法,改善了量化性能。經(jīng)過實驗測試比較,在應用300bit/s量化LSF時,采用AFS-MQ方法比直接矩陣量化(MQ)改善了譜失真性能,同時存儲量減少了1/2。所以該方法對極低速率語音編碼具有很大的實用價值。
具體實施例方式
本發(fā)明提出的LSF參數(shù)的自適應幀選擇矩陣量化(AFS-MQ)方法結(jié)合附圖及實施例進一步說明如下本發(fā)明的方法流程如圖2所示,包括以下步驟(1)對輸入語音信號樣點按時間順序分幀,將連續(xù)的N個子幀組成一個超幀,N為正整數(shù);(2)對當前超幀中的每一子幀提取聲道A參數(shù);(3)將當前超幀中的每一子幀聲道A參數(shù)轉(zhuǎn)換成LSF參數(shù);(4)從當前超幀N子幀LSF參數(shù)按最優(yōu)準則選擇M個子幀作為直接量化幀用于矩陣量化,其中M為正整數(shù),且M<N;并對這M個子幀的位置信息進行編碼;(5)該M個直接量化幀利用多級矩陣量化方法進行量化,得到LSF參數(shù)的量化標號;(6)在解碼端得到量化后M個子幀的LSF參數(shù);(7)當前超幀中除去M個直接量化幀外其余未量化子幀的LSF參數(shù)由相鄰的直接量化幀插值得到;(8)將當前超幀量化后的每個子幀LSF參數(shù)轉(zhuǎn)換成聲道A參數(shù),得到量化后的聲道A參數(shù)。
本發(fā)明上述方法各步驟的具體實施例分別詳細說明如下上述方法步驟(1)對輸入語音信號樣點按時間順序分幀,將連續(xù)的若干幀組成一個超幀的實施例是按8khz頻率采樣、已經(jīng)過高通濾波去除工頻干擾的語音樣點。每20ms,也就是160個語音樣點構(gòu)成一幀,連續(xù)6幀組成一個超幀。
上述方法步驟(2)的實施例為按通常的方法對當前超幀中的每一幀都提取10階聲道A參數(shù)an=[a1n,a2n,…,a10n](n=1,2,…,6)。
上述方法步驟(3)的實施例為按通常的方法將當前超幀中的每一幀聲道A參數(shù)轉(zhuǎn)換成LSF參數(shù)fn=[f1n,f2n,…,f10n],(n=1,2,…,6)。
上述方法步驟(4)的實施例為從當前超幀N幀LSF參數(shù)按最優(yōu)準則選擇M(M<N)幀用于矩陣量化,具體包括以下步驟首先由所有可能被選擇作為M個直接量化幀LSF參數(shù)插值得到相應的N子幀LSF參數(shù);接著以插值得到的N子幀LSF參數(shù)和提取得到的N子幀LSF參數(shù)的距離最小作為準則,得到的直接量化幀標號。
首先介紹由M幀直接量化的LSF參數(shù)插值得到N子幀參數(shù)的過程。第一個直接量化幀前面子幀的參數(shù)利用前一超幀最后直接量化幀的LSF參數(shù)和本超幀第一個直接量化幀的LSF參數(shù)插值得到。其余未傳輸幀,由相鄰兩個直接量化幀插值得到。設M=3,第一個直接量化的子幀為n1,第二個子幀為n2,第三個子幀為n3,插值公式為下式
f-1表示前一超幀最后一直接量化幀的LSF系數(shù)矢量,fn1,fn2,fn3、分別表示當前超幀直接量化幀的LSF矢量。
接著介紹得到直接量化幀標號的過程。為了減小延時,本發(fā)明采用了簡化處理方法,即每一超幀的最后一子幀總是量化傳輸?,F(xiàn)在要選擇其余的M-1幀,使下面的距離測度最小。
D(F,F^)=Σn=0N-1ωnd(fn,f^n)---(2)]]>其中F={f0,f1,…,fN-1}表示從N幀語音中提取得到的LSF參數(shù)矩陣,fn表示第n子幀LSF矢量。F^={f^0,f^1,···,f^N-1}]]>表示插值和直接量化幀共同組成的LSF參數(shù)矩陣,
是插值計算后第n子幀LSF矢量,該矢量由式(1)求得。ωn表示對每一幀插值誤差的加權(quán)系數(shù),需要滿足Σn=0N-1ωn=N.]]>為了運算簡單假設每一幀具有相同的權(quán)重,ωn=1。d(fn,f^n)]]>表示每一子幀的LSF系數(shù)插值計算前后的距離,表示為d(fnf^n)=Σi=110[win(fin-f^in)]2---(3)]]>
對M=3直接量化幀的位置信息采用4比特編碼,碼表由表1給出表1
上述方法步驟(5)的實施例為得到的M個直接量化幀利用多級矩陣量化方法進行量化,得到LSF參數(shù)的量化標號。是利用M個直接量化幀LSF參數(shù)的碼本量化超幀中N子幀LSF參數(shù)的方法。該方法對傳統(tǒng)的多級矩陣方法進行了擴展,M直接量化幀LSF參數(shù)碼本中的碼字用來插值得到量化后的N子幀LSF參數(shù),線性插值過程利用前一超幀最后子幀和第一個直接量化幀的LSF參數(shù)對第一個直接量化幀前面幾幀LSF參數(shù)進行插值。本實施例采用對M幀LSF參數(shù)碼本插值計算得到N幀參數(shù)的碼本,對提取得到的LSF參數(shù)矢量去除前一超級幀預測影響后再進行搜索的方法。本方法對LSF參數(shù)的多級矩陣量化方法進行擴展,消除了前面預測幀的影響,考慮全部N幀LSF參數(shù)量化前后的距離。本實施例的擴展多級矩陣量化方法具體步驟如下(a)為了去除前一超幀預測參數(shù)的影響,在提取得到的LSF系數(shù)中減去前一超幀預測部分;計算如下式fn=fn-n1-nn1+1*f~-1,n<n1---(5)]]>
表示前一超幀最后一直接量化幀量化后的LSF參數(shù);(b)根據(jù)得到的直接量化幀序號,利用碼本中每一個碼字矢量插值得到N幀LSF參數(shù),相當于從包含M幀LSF參數(shù)碼本得到包含N幀的碼本;假設碼本包含有K個碼字C={Ck}k=0K-1;]]>第k個碼字Ck={c0k,c1k,···,cM-1k},]]>其中cmk表示第k碼字Ck第m子幀LSF系數(shù)的列矢量;把碼字變換到包含N幀LSF參數(shù)矢量的新碼字,使用類似(1)式的插值公式,只有n<n1時不相同,其他部分和(1)式相同;因為(a)去除了前一超幀的影響,這里不考慮前一超幀的預測;當n<n1有c^nk=(1-n1-nn1+1)*c1k,n<n1---(6)]]>
表示經(jīng)過變換后得到新碼本的第k個碼字的第n子幀的LSF系數(shù);得到新碼本的第k個碼字可以寫成C^k={c^0k,c^1k,···,c^N-1k};]]>需要說明的是上述變換對于多級矩陣量化的每一級碼本都要進行(c)利用去除前一超級幀影響的LSF矩陣F,在變換得到的碼本C^={C^k}k=0K-1]]>上,應用(2)式定義的測度進行通常意義下的多級矩陣量化;得到最佳路徑的每一級碼字標號;(d)本發(fā)明的方法每一超幀直接量化幀是變化的,需要編碼傳送直接量化幀的信息,在本實施例中采用4比特對直接量化幀的信息編碼。
上述方法步驟(6)的實施例為按通常的方法根據(jù)編碼傳輸?shù)拇a字利用查表的方法可以得到直接量化幀的LSF參數(shù)和直接量化幀的標號。
上述方法步驟(7)的實施例為根據(jù)得到的直接量化幀的標號及得到的直接量化幀的LSF參數(shù)值利用線性插值方法得到未量化的N-M幀LSF參數(shù)。
上述方法步驟(8)的實施例為按通常的方法將量化后的線譜對參數(shù) 轉(zhuǎn)換成聲道A參數(shù),即得到量化后的聲道A參數(shù)。
上述的LSF參數(shù)的碼本訓練方法是將語音數(shù)據(jù)庫的每一超幀被選擇M幀用于直接量化的LSF參數(shù)輸出,用于訓練碼本。為了減少運算量和存儲量,采用分級矢量量化,碼本訓練用模擬退火方法,采用(2)式給出的距離測度。
權(quán)利要求
1.一種自適應幀選擇線譜頻率(LSF)參數(shù)量化的方法,其特征在于,該方法包括以下步驟(1)對輸入語音信號樣點按時間順序分幀,將連續(xù)的N個子幀組成一個超幀,N為正整數(shù);(2)對當前超幀中的每一子幀提取聲道A參數(shù);(3)將當前超幀中的每一子幀聲道A參數(shù)轉(zhuǎn)換成LSF參數(shù);(4)從當前超幀的N子幀LSF參數(shù)按最優(yōu)準則選擇M個子幀作為直接量化幀用于矩陣量化,其中M為正整數(shù),且M<N,并對該M個子幀的位置信息進行編碼;(5)該M個直接量化幀利用多級矩陣量化方法進行量化,得到LSF參數(shù)的量化標號;(6)在解碼端得到量化后M個子幀的LSF參數(shù);(7)當前超幀中除去M個直接量化幀外其余未量化子幀的LSF參數(shù)由相鄰的直接量化幀插值得到;(8)將當前超幀量化后的每個子幀LSF參數(shù)轉(zhuǎn)換成聲道A參數(shù),得到量化后的聲道A參數(shù)。
2.按權(quán)利要求1所述的方法,其特征在于,所述步驟(4)中以M個直接量化幀插值后得到的當前超幀N子幀LSF參數(shù)和原始提取參數(shù)距離最小作為最優(yōu)準則,自適應選擇M個子幀作為直接量化幀進行矩陣量化。
3.按權(quán)利要求1所述的方法,其特征在于,所述步驟(5)中多級矩陣量化方法是采用M個直接量化幀LSF參數(shù)的碼本量化超幀中N子幀LSF參數(shù)的方法。
4.按權(quán)利要求1所述的方法,其特征在于,所述步驟(7)中當前超幀中除去M個直接量化幀外其余未量化子幀的LSF參數(shù)的量化值采用與它前后相鄰最近的兩個直接量化幀量化后的LSF參數(shù)用線性插值或非線性插值得到。
全文摘要
本發(fā)明涉及超幀聲道參數(shù)量化方法,屬于低速率語音壓縮編碼技術(shù)領域。該方法先對輸入語音信號樣點按時間順序分幀,將連續(xù)的N子幀組成一個超幀;對當前超幀中的每一幀提取聲道A參數(shù),再轉(zhuǎn)換成LSF參數(shù),從N子幀組成的超幀中選擇M子幀作為直接量化幀;將M子幀LSF參數(shù)用多級矩陣量化方法進行量化;利用量化后直接量化幀的LSF參數(shù)插值得到當前超幀中除去M個直接量化幀外其余未量化子幀的LSF參數(shù);將量化后的線譜頻率參數(shù)轉(zhuǎn)換成聲道A參數(shù)。本發(fā)明方法可以提高聲道參數(shù)的量化精度,同時自適應幀選擇矩陣量化的存儲量減小為普通矩陣量化方法的一半。能有效的解決矩陣量化存儲量的問題,適用于300~600bps甚低速率語音編碼。
文檔編號G10L19/00GK1622198SQ20041010356
公開日2005年6月1日 申請日期2004年12月31日 優(yōu)先權(quán)日2004年12月31日
發(fā)明者趙永剛, 崔慧娟, 唐昆 申請人:清華大學