專利名稱:語音編碼的制作方法
該發(fā)明涉及語音編碼,并特別適用于采用長時預(yù)測(LTP)參數(shù)的語音編碼方法和裝置。
語音編碼被用于很多希望壓縮音頻語音信號以降低將要發(fā)送、處理或貯存的數(shù)據(jù)量的通訊應(yīng)用中。特別的,語音編碼廣泛應(yīng)用于蜂窩電話網(wǎng)絡(luò)。其中移動電話和通訊控制基站配有所謂音頻編解碼器,該編解碼器對音頻信號進(jìn)行編碼和解碼。由于最大化網(wǎng)絡(luò)呼叫容量的需要,必須在蜂窩電話網(wǎng)中對數(shù)據(jù)進(jìn)行語音編碼壓縮。
現(xiàn)代的語音編解碼器一般通過在稱為幀的短片段中處理語音來工作。在被稱作GSM(由歐洲通訊標(biāo)準(zhǔn)研究所----ETSI----細(xì)則06.60定義)的歐洲數(shù)字蜂窩電話系統(tǒng)中,這種幀的長度為20毫秒,對應(yīng)于8KHZ采樣率下160個語音樣本。在發(fā)送站,由語音編碼器來分析每個語音幀以提取一組編碼參數(shù)用來發(fā)送給接收站。在接收站,基于接收的參數(shù),解碼器產(chǎn)生合成的語音幀。典型的所提取的編碼參數(shù)組包括用于信號短時預(yù)測的譜參數(shù)(已知為LPC參數(shù)),和用于信號長時預(yù)測(已知為LTP參數(shù))的參數(shù),各種增益參數(shù),激勵參數(shù)和碼書矢量。
圖1簡要給出了所謂的CELP編解碼器中的編碼器(在移動站和控制基站中都提供有基本上相同的CELP編解碼器)每個接收到的采樣語音信號s(n)的幀,其中n表示采樣編號,首先被短時預(yù)測單元1分析以確定該幀的LPC參數(shù),這些參數(shù)被提供給復(fù)用器2以組合通過空氣接口傳送的編碼參數(shù)。來自短時預(yù)測單元1的殘留信號r(n),即,除去短時冗余后的語音信號幀,被傳送給長時預(yù)測單元3來確定LTP參數(shù),這些參數(shù)又被提供給復(fù)用器2。
編碼器包括一個LTP合成濾波器4和一個LPC合成濾波器5,分別接收LTP和LPC參數(shù),這些濾波器為信號c(n)引入短時和長時冗余以產(chǎn)生給成的語音信號ss(n),其中的冗余是通過碼書6產(chǎn)生的。在比較器7,合成的語音信號與實際的語音信號s(n)一幀一幀的相比,以產(chǎn)生誤差信號e(n)。在加權(quán)濾波器8對誤差信號加權(quán)之后(以已知的方法加強(qiáng)信號的共振峰),信號被傳送給碼書搜索單元9,搜索單元9在碼書6中為每一幀進(jìn)行搜索以識別出與實際語音幀最匹配的碼書中的記錄(在LPT和LPC濾波,以及在乘法器10中乘以增益g之后),即確定最小化誤差信號e(n)的信號c(n),表明最佳匹配記錄的矢量被提供給復(fù)用器2以便作為語音編碼信號t(n)的一部分通過空氣接口傳送。
圖2簡要給出一種CELP編解碼器中的解碼器。接收到的編碼信號t(n)被解復(fù)用器11解復(fù)用成單個的編碼參數(shù)。碼書矢量被用于碼書12,與編碼器中的碼書6相同,以提取碼書記錄c(n)的流,然后再將信號施加給串行放置的LTP合成濾波器14和LPC合成濾波器15之前,信號c(n)在乘法器13中被乘以接收增益g。LTP和LPC濾波器從傳輸信道接收相關(guān)的參數(shù)并在信號中重新引入短時和長時冗余以在輸出處產(chǎn)生合成的語音信號ss(n)。
LTP參數(shù)已包括所謂的音調(diào)滯后值參數(shù),該參數(shù)描述語音信號的基礎(chǔ)頻率。殘留信號當(dāng)前幀音調(diào)滯后值的確定通過兩個步驟實現(xiàn)。首先,進(jìn)行開環(huán)搜索,涉及對殘留信號相對粗略的搜索,受限于預(yù)定的最大和最小延遲,以找到對一部分與當(dāng)前幀最匹配的信號。然后對已經(jīng)合成的信號進(jìn)行閉環(huán)搜索。閉環(huán)搜索在音調(diào)滯后值的開環(huán)估計值鄰近區(qū)域中小范圍延遲內(nèi)進(jìn)行。重要的是,如果在開環(huán)搜索中發(fā)生了錯誤,那么在閉環(huán)搜索中不能校正該錯誤。
在早期已知的編解碼器中,通過確定殘留語音信號中幀的自相關(guān)函數(shù),開環(huán)LTP分析可以為殘留信號的給定幀確定音調(diào)滯后值,即R^(d)=Σn=0N-1r(n-d)r(n)---d=dL,...,dH]]>其中d是延遲,r(n)是殘留信號,dL和dH是搜索邊界,N是幀長度,音調(diào)滯后值dpl可以被識別為延遲dmax,該值對應(yīng)于自相關(guān)函數(shù)
的最大值,這一點在圖3中給予說明。
然而在這種編解碼器中,存在一種可能是,自相關(guān)函數(shù)的最大值對應(yīng)于多個或亞多個(submultiple)音調(diào)滯后值值,并且因此估計的音調(diào)滯后值將不正確。EP0628947通過對自相關(guān)函數(shù)
施加一個加權(quán)函數(shù)w(d)來解決這一問題。即R^w(d)=w(d)Σn=0N-1r(n-d)r(n)]]>其中加權(quán)函數(shù)具有下述形式w(d)=dlog2K]]>K是一個調(diào)整參數(shù),該參數(shù)被設(shè)置為一個足夠低的值以降低在多個音調(diào)滯后值上獲得
的最大值的可能性,但是同時,該值被設(shè)置的足夠大以排除亞多個音調(diào)滯后值。
EP0628947還建議在為當(dāng)前幀確定音調(diào)滯后值時考慮為以前幀確定的音調(diào)滯后值。更特別的是,幀被分類為濁音或清音,對于當(dāng)前幀,會在為最近的濁音幀確定的音調(diào)滯后值的鄰近區(qū)域搜索最大值。如果
的所有最大值都位于該鄰近區(qū)域之外,并且不超過該鄰近區(qū)域中最大值的3/2,那么該鄰近區(qū)域的最大值被識別為對應(yīng)于該音調(diào)滯后值。用這種方法,可以保持音調(diào)滯后值估計的連續(xù)性,降低音調(diào)滯后值中錯誤變化的可能性。
根據(jù)該發(fā)明的第一方面,給出了一種對于信號幀序列中每一幀利用音調(diào)滯后值參數(shù)對采樣信號進(jìn)行編碼的語音編碼算法,該方法包括對于每一幀為信號幀確定預(yù)定最大延遲和最小延遲之間的自相關(guān)函數(shù);對自相關(guān)函數(shù)加權(quán)以加強(qiáng)為以前幀確定的音調(diào)滯后值參數(shù)鄰近區(qū)域中的延遲函數(shù);將對應(yīng)于加權(quán)自相關(guān)函數(shù)最大值的延遲識別為該幀的音調(diào)滯后值參數(shù)。
最好的是,所述的采樣信號是通過從音頻信號中主要除去短時冗余而從音頻信號獲得的殘留信號,另外可選的是,采樣信號可以是一種音頻信號。
最好的是,所述的加權(quán)通過將自相關(guān)函數(shù)與具有以下形式的加權(quán)函數(shù)組合來實現(xiàn)w(d)=(|Tprev-d|+dL)log2Knw]]>其中,Tprev是在一個或多個以前幀的基礎(chǔ)上確定的音調(diào)滯后值參數(shù),dL是所述的最小延遲,Knw是定義鄰近區(qū)域加權(quán)的調(diào)整參數(shù)。另外,相對于較長的延遲,加權(quán)函數(shù)可以為較短的延遲來加強(qiáng)自相關(guān)函數(shù)。在這種情況下,使用了一種修正的加權(quán)函數(shù)w(d)=(|Tprev-d|+dL)log2Knw·dlog2Kw]]>其中Kw是另一個調(diào)整參數(shù)。
在本發(fā)明的某種實施方案中,Tprev是一個以前幀的音調(diào)滯后值Told。然而,在另一個實施方案中,Tprev是從一些以前幀的音調(diào)滯后值中獲得。特別的,Tprev可以對應(yīng)于預(yù)定數(shù)量的以前幀的音調(diào)滯后值的中值。可以使用另一種加權(quán),這種加權(quán)與用來確定所述中值的n個音調(diào)滯后值的標(biāo)準(zhǔn)偏差成反比。使用后一方法,有可能降低錯誤音調(diào)滯后值對自相關(guān)函數(shù)加權(quán)的影響。
最好的是,該方法包括將所述幀劃分成濁音和非濁音幀,其中所述的以前幀是最近的濁音幀,非濁音幀可以包括清音幀、包括無聲段或背景噪聲的幀。更好的是,如果所述的以前幀不是最近的幀,加權(quán)作用被削弱。在一個實施方案中,接收到連續(xù)的非濁音幀序列,加權(quán)作用的削弱基本上與該序列中的幀數(shù)成正比。對于在前一段給出的加權(quán)函數(shù)wn(d),調(diào)整參數(shù)Knw可以被修正為wd(d)=(|Tprev-d|+dL)log2KnwA·dlog2Kw]]>其中A是另一個調(diào)整因子,該因子隨著連續(xù)非濁音幀序列中每一幀的接收而增長。通過將A返回為最小值,加權(quán)值對于下一個濁音幀而言恢復(fù)到其最大值。A值同樣可以隨著濁音幀的接收而增加,這產(chǎn)生一個開環(huán)增益,該增益小于預(yù)定的閾值增益。
根據(jù)該發(fā)明的第二個方面,提供了一種利用信號串形幀中每一幀的音調(diào)滯后值參數(shù)對采樣信號進(jìn)行語音編碼的裝置,該裝置包括為每一幀確定信號幀在預(yù)定最大延遲和最小延遲之間的自相關(guān)函數(shù)的裝置。
用來將自相關(guān)函數(shù)加權(quán)以加強(qiáng)為以前幀確定的音調(diào)滯后值參數(shù)鄰近區(qū)域中的延遲函數(shù)的加權(quán)裝置,以及用來將對應(yīng)于加權(quán)自相關(guān)函數(shù)最大值的延遲標(biāo)識為該幀的音調(diào)滯后值參數(shù)的裝置。
根據(jù)該發(fā)明的第三方面,給出了一種移動通訊設(shè)備包括上面該發(fā)明第二方面中的裝置。
根據(jù)該發(fā)明的第四方面,給出了一種蜂窩電話網(wǎng)絡(luò),包括一個控制基站,該基站具有根據(jù)該發(fā)明第二方面的裝置。
為了更好地理解該發(fā)明,并表示出同樣的方法如何起作用,通過例子,將引用附圖作為參考。其中圖1簡要給出一種CELP語音編碼器。
圖2簡要給出一種CELP語音解碼器。
圖3說明了要被編碼的語音信號幀,以及用來確定該幀的自相關(guān)函數(shù)的最大和最小延遲。
圖4是根據(jù)該發(fā)明實施方案的語音編碼方法主要步驟的流程圖。
圖5簡略給出實現(xiàn)圖4方法的系統(tǒng)。
這里將要描述一種用于采樣語音信號幀的音調(diào)滯后值參數(shù)的開環(huán)預(yù)測的方法和裝置。該方法的主要步驟在圖4的流程圖中給出。較好的是,所描述的方法和裝置可以用于其它的傳統(tǒng)語音編解碼器,例如上面已參考圖1描述的CELP編解碼器。
將要被編碼的采樣語音信號被劃分成固定長度的幀。如上面描述的,接收時,幀首先被傳送給LPC預(yù)測單元1。一般地,會對殘留信號進(jìn)行開環(huán)LTP預(yù)測,該殘留信號是原始語音信號的一部分,這部分信號在施加了LPC預(yù)測之后仍然保留,但是該信號的短時冗余被提取。該殘留信號可以由r(n)表示,其中n表示采樣編號。信號幀的自相關(guān)函數(shù)由以下公式確定R^w(d)=w(d)Σn=0N-1r(n-d)r(n)---d=dL,...,dH---{1}]]>其中w(d)是由以下公式給出的加權(quán)函數(shù)w(d)=(|Told-d|+dL)log2KnwA·dlog2Kw---{2}]]>Told是為最近接收、處理的濁音幀確定的音調(diào)滯后值,n,N,dL,dH與上面定義相同。Knw和K是調(diào)整參數(shù),一般為0.85,另一個調(diào)整參數(shù)A在下面討論。
在為語音幀確定了開環(huán)LTP參數(shù)之后,該幀被分類為濁音和清音幀(使得參數(shù)Told能夠反饋用于等式{2})。這種分類可以用多種方法實現(xiàn)。一種合適的方法是確定開環(huán)LTP增益b,并將該值與一些預(yù)定的閾值增益比較,或者更理想地是有下面公式給出的自適應(yīng)閾值增益bthrbthr=(1-α)Kbb+abthr-1{3}其中α是衰減常數(shù)(0.995),Kb是縮放因子(0.15)。項bthr-1是為剛剛接收的前一幀確定的閾值增益。另外,用于劃分幀為濁音或清音的準(zhǔn)則是確定一幀內(nèi)殘留信號的過零率。相對較高的過零率表明該幀為清音幀,而相對較低的過零率表明該幀為濁音幀,適當(dāng)?shù)拈撝禐閹LN的3/4。
另一個將幀劃分為濁音和清音的準(zhǔn)則是考慮音調(diào)滯后值的變化率。如果為該幀確定的音調(diào)滯后值嚴(yán)重偏離為最近一組幀確定的平均音調(diào)滯后值,那麼該幀可以被分類為清音幀。如果僅存在相對較小的偏差,那麼該幀可以被劃分成濁音幀。
由{2}給出的加權(quán)函數(shù)wn(d)包括第一項
,該項使得加權(quán)后的自相關(guān)函數(shù)
在老的音調(diào)滯后值Told的鄰近區(qū)域被加強(qiáng)。等式{2}的左邊的第二項
,使得較小的音調(diào)滯后值被加強(qiáng)。這兩項合起來明顯降低了產(chǎn)生加權(quán)自相關(guān)函數(shù)最大值的多個或亞多個正確音調(diào)滯后值的可能性。
如果,在為當(dāng)前幀i確定了音調(diào)滯后值之后,該幀被分類為濁音幀,并且該幀的開環(huán)增益被確定為大于一些閾值(例如0.4〕,那么等式{2}中的調(diào)整因子A對于下一幀i+1而言設(shè)置為1。如果當(dāng)前幀被分類為清音幀,或者開環(huán)增益被確定為小于該閾值,調(diào)整因子按下述等式修正Ai+1=1.01Ai{4}可以根據(jù)等式{4}針對連續(xù)清音幀序列中的每一幀來修正調(diào)整因子A(或者開環(huán)增益小于閾值的濁音幀〕。但是,最好的是,僅在預(yù)定數(shù)量的連續(xù)清音幀被接收之后,才應(yīng)用等式{4},例如,在每一組3個連續(xù)清音幀被接收之后。鄰近區(qū)域的加權(quán)因子Knw一般被設(shè)置為0.85,而組合加權(quán)參數(shù)KnwA的上限為1.0,使得在該限制之內(nèi),在整個延遲范圍d=dL到dH內(nèi),加權(quán)可以保持一致。
此外,只有預(yù)定數(shù)量的加權(quán)函數(shù)w(d)被使用,例如為3個。每個函數(shù)都分配有一個閾值等級。每個函數(shù)都有一個閾值,當(dāng)自適應(yīng)項,例如在{4}中定義的項超過了該閾值,那麼一個特定的函數(shù)被選出。定義有限數(shù)量加權(quán)函數(shù)的優(yōu)點在于所定義的函數(shù)可以存儲于內(nèi)存之中。因此,為每一個新幀重新計算一個加權(quán)函數(shù)是不必要的。
用于實現(xiàn)上面描述的方法的一個簡化系統(tǒng)在圖5中給出,系統(tǒng)的輸入16是LPC預(yù)測單元1給出的殘留信號。該殘留信號被提供給幀校正器17,該校正器為殘留信號的每一幀產(chǎn)生一個相關(guān)函數(shù)。每一幀的相關(guān)函數(shù)被傳送給第一加權(quán)單元18,該單元根據(jù)等式{2}中的第二項來加權(quán)該相關(guān)函數(shù),即
。加權(quán)后的函數(shù)然后被傳送給第二加權(quán)單元19,該單元另外根據(jù)等式{2}的第一項來加權(quán)相關(guān)函數(shù),
。參數(shù)Told保持在緩存器20中,僅在分類單元21將當(dāng)前幀分類為濁音幀時,該參數(shù)才被利用系統(tǒng)輸出而更新。加權(quán)的相關(guān)函數(shù)被傳送給搜索單元22,該單元識別出加權(quán)函數(shù)的最大值,并因而確定當(dāng)前幀的音調(diào)滯后值。
技術(shù)人員將會建議在不偏離該發(fā)明的范圍的前提下,可以對上面描述的實施方案做各種修改。特別是,為了防止為最近的濁音幀得到的錯誤的音調(diào)滯后估計值,并且很大程度上干擾當(dāng)前估計值,圖5中的緩存器20可以被安排為存儲為最近的n個濁音幀估計的音調(diào)滯后值,其中n可以是,例如4。由加權(quán)單元19施加的加權(quán)函數(shù)通過將參數(shù)Told替換為Tmed而被修正,其中Tmed是n個被緩存的音調(diào)滯后值的中值。
在另一種修正中,加權(quán)單元19施加的加權(quán)與存儲在緩存器20中的n個音調(diào)滯后值的標(biāo)準(zhǔn)偏差成反比。當(dāng)n個被緩存的音調(diào)滯后值變化很小時,其效果是加強(qiáng)了中值音調(diào)滯后值鄰近區(qū)域中的加權(quán),而當(dāng)n個音調(diào)滯后值相對變化較大時,其效果是削弱了中值音調(diào)滯后值鄰近區(qū)域中的加權(quán)。例如,可以按下面的形式采用三個加權(quán)函數(shù)
其中Km1,Km2,Th1,Th2是分別等于0.75,0.95,2和6的調(diào)整參數(shù)。為了適應(yīng)在大的音調(diào)滯后值時標(biāo)準(zhǔn)偏差中較大的變化,等式{5}中的閾值Th1,Th2可以與中值音調(diào)滯后值Tmed成正比。
權(quán)利要求
1.一種利用信號幀序列中每一幀的音調(diào)滯后值參數(shù)對采樣信號進(jìn)行編碼的語音編碼方法,對于每一幀,該方法包括為信號幀確定預(yù)定最大延遲和最小延遲之間的自相關(guān)函數(shù);對自相關(guān)函數(shù)加權(quán)以加強(qiáng)為以前幀確定的音調(diào)滯后值參數(shù)鄰近區(qū)域中的延遲函數(shù);將對應(yīng)于加權(quán)自相關(guān)函數(shù)最大值的延遲識別為該幀的音調(diào)滯后值參數(shù)。
2.根據(jù)權(quán)利要求1的方法,其中的加權(quán)函數(shù)具有以下形式wd(d)=(|Told-d+dL)log2Knw]]>其中Told是所述以前幀的音調(diào)滯后值,dL是所述的最小延遲,Knw是定義鄰近區(qū)域加權(quán)的調(diào)整參數(shù)。
3.根據(jù)權(quán)利要求1的方法,其中的自相關(guān)函數(shù)被加權(quán)以為各個以前幀確定的多個音調(diào)滯后值中值的鄰近區(qū)域內(nèi)的延遲函數(shù)。
4.根據(jù)權(quán)利要求3的方法,其中的加權(quán)函數(shù)具有以下形式wd(d)=(|Tmed-d|+dL)log2Knw]]>其中Tmed為各個以前幀確定的多個音調(diào)滯后值的中值,dL是所述的最小延遲,Knw是定義鄰近區(qū)域加權(quán)的調(diào)整參數(shù)。
5.根據(jù)權(quán)利要求4的方法,其中的加權(quán)函數(shù)通過與所述多個音調(diào)滯后值的標(biāo)準(zhǔn)偏差成反比的因子來修正。
6.根據(jù)前面任何一個權(quán)利要求的方法,其中所述的加權(quán)相對于較長的延遲額外加強(qiáng)了較短的延遲。
7.根據(jù)權(quán)利要求4的方法,其中所述的加強(qiáng)由下面因子提供dlog2Kw]]>其中Kw是另一個加權(quán)參數(shù)。
8.根據(jù)前面任何一個權(quán)利要求的方法,包括將所述幀分類成濁音幀和清音幀的步驟,其中的以前幀是最近的濁音幀。
9.根據(jù)權(quán)利要求8的方法,其中,如果所述的以前幀或最近的以前幀,不是最近的幀,加權(quán)被削弱。
10.根據(jù)權(quán)利要求8或9的方法,其中,當(dāng)連續(xù)非濁音幀的序列被接收到之后,加權(quán)被削弱,這種削弱基本上與該序列中的幀數(shù)成正比。
11.在依賴于權(quán)利要求2或4基礎(chǔ)上的根據(jù)權(quán)利要求8的方法,其中調(diào)整參數(shù)被修正為log2KnwA其中A是另一個調(diào)整因子,該因子隨著連續(xù)非濁音幀序列中每一幀或預(yù)定的多個幀的接收而增長,并且該值對于下一個濁音幀而言恢復(fù)到其最小值。
12.一種利用信號串形幀中每一幀的音調(diào)滯后值參數(shù)對采樣信號進(jìn)行語音編碼的裝置,該裝置包括為每一幀確定信號幀在預(yù)定最大延遲和最小延遲之間的自相關(guān)函數(shù)的裝置(17)。用來將自相關(guān)函數(shù)加權(quán)以加強(qiáng)為以前幀確定的音調(diào)滯后值參數(shù)鄰近區(qū)域中的延遲函數(shù)的加權(quán)裝置(19),以及用來將對應(yīng)于加權(quán)自相關(guān)函數(shù)最大值的延遲標(biāo)識為該幀的音調(diào)滯后值參數(shù)的裝置(22)。
13.一種包括權(quán)利要求12的裝置的移動通訊設(shè)備。
14.一種包括控制基站的蜂窩電話網(wǎng)絡(luò),其中的控制基站包括權(quán)利要求12的設(shè)備。
全文摘要
一種使用長時預(yù)測(LTP)對采樣語音信號進(jìn)行編碼的語音編碼方法。通過為信號幀確定預(yù)定最大和最小延遲之間的自相關(guān)函數(shù),可以為語音信號的每一幀確定LTP音調(diào)滯后值參數(shù)。然后,自相關(guān)函數(shù)被加權(quán)來加強(qiáng)為最近的濁音幀確定的音調(diào)滯后值參數(shù)鄰近區(qū)域中的延遲函數(shù)。然后會找到加權(quán)自相關(guān)函數(shù)的最大值,并且該值被識別為該幀的音調(diào)滯后值參數(shù)。
文檔編號G10L19/04GK1255226SQ98804901
公開日2000年5月31日 申請日期1998年3月13日 優(yōu)先權(quán)日1997年5月7日
發(fā)明者A·拉卡尼米, J·瓦伊尼奧, P·奧亞拉, P·哈爾維斯托 申請人:諾基亞流動電話有限公司