两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

可變速率聲碼器的制作方法

文檔序號:2824399閱讀:271來源:國知局
專利名稱:可變速率聲碼器的制作方法
技術領域
本發(fā)明涉及語音處理。具體講,本發(fā)明涉及一種用于壓縮語音的新穎且已改進的方法和系統(tǒng),其中,壓縮量動態(tài)地變化,但對再生語音的質量影響最小。此外,由于壓縮后的語音數(shù)據(jù)要通過一個有可能引入錯誤的信道傳送,故而本發(fā)明的方法和系統(tǒng)還會將信道傳輸錯誤對聲音的影響減至最小。
背景技術
利用數(shù)字技術傳送聲音已經(jīng)得到廣泛的應用,在遠距離和數(shù)字式無線電話設備中尤其如此。這轉而使人們有興趣確定在保持再生語音聽覺質量的信道上能夠傳送的最低信息量。如果語音是在簡單取樣并數(shù)字化后傳送的,那么,為了達到普通模擬式電話機的語音質量,就需要64千比特/每秒(Kbps)數(shù)量級的數(shù)據(jù)速率。但是,通過采用語音分析,再進行適當?shù)木幋a、傳送,在接收器中進行再合成,就能顯著地降低數(shù)據(jù)速率。
采用人類語言信號產(chǎn)生模型所提取的參數(shù)來完成語聲壓縮技術的裝置通常稱為聲碼器。這類裝置由一個分析傳入的語音以提取相關參數(shù)的編碼器和一個利用在傳輸信道中接收到的參數(shù)重新合成語音的譯碼器組成。為了精確些,模型必須不時地變化。這樣,語音被劃分成時間段或分析幀,每一幀內(nèi)進行參數(shù)的計算。然后對每一新的幀更新參數(shù)。
在不同類別的語音編碼器中,編碼激勵線性預測編碼(CELP)、隨機編碼或矢量激勵語音編碼是屬于一類的。在湯姆斯E.特萊門等人所著,發(fā)表于1988年移動衛(wèi)星研討會論文集上的論文“一種4.8Kbps編碼激勵線性預測編碼器”中描述了這一特定類別的一個編碼算法例子。
聲碼器的功能是消除語音中固有的自然冗余,從而將數(shù)字化語音信號壓縮成低比特率信號。通常,語音中含有主要是因聲道的濾波動作而產(chǎn)生的短期冗余,和因發(fā)聲區(qū)域聲帶的激勵而產(chǎn)生的長期冗余。在CELP編碼器中,這些發(fā)聲區(qū)域的動作用兩個濾波器來模擬,一個是短期共振峰濾波器,另一個是長期音調(diào)濾波器(pitchfilter)。一旦除去這些冗余,得到的剩余信號就能模擬成白色高斯噪聲,這也必須編碼。這種技術的基礎是計算一個稱為LPC濾波器的參數(shù),該濾波器利用人的聲道模型來進行語音波形的短期預測。另外,與語音的音調(diào)有關的長期作用則通過計算一個主要模擬人的聲帶的音調(diào)濾波器的參數(shù)而得到模擬。最后,這些濾波器還必須被激勵,這是通過從碼書的大量隨機激勵波形中確定一個在激勵上述兩個濾波器的時候產(chǎn)生最接近原始語音的效果的波形而完成的。這樣,被傳送的參數(shù)涉及到三項(1)LPC濾波器,(2)音調(diào)濾波器,(3)碼書激勵。
聲碼技術的應用在嘗試減少信道中傳送的信息量而仍舊保持再生語音的質量這一點上離目標更進了一步,雖然如此,但還需要采用其它技術,來實現(xiàn)進一步的縮減。以前用來縮減信息傳送量的一種技術是聲音動作選通。在這種技術中,語音停頓時不傳送信息。這種技術實現(xiàn)了預期的數(shù)據(jù)縮減效果,但存在著幾個缺陷。
在許多情況下,由于削去了字語的初始部分,語音質量降低了。在不動作時切斷信道的另一問題是系統(tǒng)用戶感覺到缺少了通常伴隨著語音的背景噪聲,因此認為信道的質量低于普通電話。動作選通的再一個問題是,在沒有語音時背景中偶然的突發(fā)噪聲會引發(fā)發(fā)送器,在接收器中產(chǎn)生惱人的噪聲群。
改進聲音動作選通系統(tǒng)中合成語音的質量的一個嘗試是在譯碼過程中加入合成的令人舒適的噪聲。雖然通過加入舒適的噪聲達到了質量上的某些提高,但是,由于舒適的噪聲并不模擬編碼器中的實際背景噪聲,所以它并不能顯著地改進總體質量。
進行數(shù)據(jù)壓縮以實現(xiàn)需要傳送的信息的縮減的一種更好的技術是進行可變速率聲音編碼。因為語音本身含有靜默期間,例如停頓,所以,代表這些期間所需的數(shù)據(jù)量可以縮減??勺兯俾事曇艟幋a通過降低這些靜默期間的數(shù)據(jù)速率而最有效地利用了這一事實。在靜默期間數(shù)據(jù)速率的降低,與數(shù)據(jù)傳送完全停止相反,克服了與聲音動作選通相關的難題,同時實現(xiàn)了傳送信息的縮減。
因而,本發(fā)明的一個目的是提供一種利用可變速率聲音編碼技術來壓縮語音的新穎和改進的方法和系統(tǒng)。

發(fā)明內(nèi)容
本發(fā)明采用了上述類別語音編碼器的聲音編碼算法,即編碼激勵線性預測編碼(CELP)、隨機編碼或矢量激勵語音編碼。CELP技術本身就能使表示語音所必需的數(shù)據(jù)量顯著減少,并在重新合成時給出高質量的語音。如前所述,聲碼器參數(shù)就每一幀進行更新。本發(fā)明的聲碼器藉助于改變模型參數(shù)的頻率和精度,形成可變的輸出數(shù)據(jù)速率。
本發(fā)明極顯著地不同于基本的CELP技術,在語音動作的基礎上產(chǎn)生可變的輸出數(shù)據(jù)速率。其結構被定義后,使得參數(shù)在語音停頓過程中較少或以較低精度進行更新。該技術使得要傳送的信息量更加減少。被利用來降低數(shù)據(jù)速率的關鍵是聲音動作因子,它是某一指定說話者在交談過程中實際說話的平均時間百分比,就通常的雙向電話交談而言,該平均數(shù)據(jù)速率可降到1/2或更多。在語音停頓過程中,聲碼器只對背景噪聲進行編碼。在這些時候,與人的聲道模型有關的某些參數(shù)勿需傳送。
如前所述,先前在靜默過程中限制信息傳送量的途徑稱為聲音動作選通,這是一種在靜默的期間不傳送信息的技術。在接收側,該期間中加入合成的“舒適噪聲”。與此相反,可變速率聲碼器持續(xù)不斷地進行數(shù)據(jù)傳送,在較佳實施例中是以大約介于8Kbps和1Kbps之間的速率進行的。進行連續(xù)數(shù)據(jù)傳送的聲碼器消除了對“舒適噪聲”的需求,而以背景噪聲的編碼給重新合成的語音提供更真實的質量。因而,本發(fā)明在語音和背景音之間進行平滑的轉變,藉此,在重新合成的語音質量上,比聲音動作選通有了更顯著的改善。
本發(fā)明還結合了一種掩蓋發(fā)生的錯誤的新穎技術。因為數(shù)據(jù)要通過一個可能有噪音的信道傳送,如在無線電線路中傳送,所以,它必須在數(shù)據(jù)中能容錯。利用信道編碼來減少所遇到的出錯總數(shù)的先有技術在減少錯誤方面能夠有某些成功之處。但是,僅有信道編碼還不能完全達到保證高質量再生語言所必需的錯誤警戒水平。在聲音編碼持續(xù)進行的可變速率聲碼器中,一個錯誤可能會破壞涉及到某個重要的語音內(nèi)容的數(shù)據(jù),例如與一個單詞或一個音節(jié)開頭部分有關的數(shù)據(jù)。基于線性預測編碼的聲碼器所帶來的一個典型難題是,與聲道模型有關的參數(shù)中的錯誤會產(chǎn)生類似人聲的聲音,還會將原始單詞的發(fā)音改變到足以使聽者迷惑的程度。在本發(fā)明中,錯誤被掩蓋住,以降低其可覺察程度。這樣,本發(fā)明所采用的錯誤掩蓋技術使得錯誤對語音清晰度的影響急劇減少。
因為任何參數(shù)能夠改變的最大數(shù)量在低速率下被限制在較小范圍中,所以,在這些速率下所傳送的參數(shù)中的錯誤會較少地影響語音質量。由于在不同速率下的錯誤對語音質量有不同的可覺察的影響,所以,傳送系統(tǒng)可以最優(yōu)化,以對較高速率的數(shù)據(jù)提供更多保護。因而,作為一個附加特征,本發(fā)明容忍信道錯誤能力較強(具有魯棒性)。
本發(fā)明通過采用可變速率輸出形式的CELP算法,使得語音壓縮率根據(jù)聲音大小不同在8∶1到64∶1范圍內(nèi)動態(tài)地變動。剛才的壓縮因子是對μ律輸入而言的,對于線性輸入,該壓縮因子將增大一倍。速率的確定是對各個幀分別進行的,以便充分地得益于聲音動作因子。即使由于語音停頓而產(chǎn)生較少的數(shù)據(jù),重新合成的背景噪聲讓人察覺到的質量降低也是最小的。利用本發(fā)明的技術,在最大數(shù)據(jù)速率8Kbps下可以實現(xiàn)質量近似于長途電話的語音,在普通對話中的平均數(shù)據(jù)速率處于3.5Kbps的量級。
本發(fā)明能夠檢測出語音中的短暫停頓,因而實現(xiàn)了有效聲音動作因子的降低。速率確定是逐幀進行的,沒有遺漏,因而,在短到一個幀周期的語音停頓間隙內(nèi)數(shù)據(jù)速率可放慢,對較佳實施例,幀周期的典型值為20msec。因而,可以捕捉諸如在音節(jié)之間的那些停頓。因為不僅詞組之間的長間歇停頓可以編碼成較低速率,而且短暫停頓也可以,所以,這一技術降低了聲音動作因子,在程度上超過了通常所考慮到。
因為速率確定是逐幀進行的,所以不會象聲音動作選通系統(tǒng)那樣,削去單詞的初始部分。在聲音動作選通系統(tǒng)中發(fā)生的這種性質的削去歸因于語音檢測和數(shù)據(jù)傳送再開始之間的延遲。在每一幀基礎上進行的速率確定使得語音中所有的變化都有自然的聲調(diào)。
在聲碼器正常傳送的情況下,在接收端一直能聽到講話者周圍的背景噪聲,因而在語音停頓時有更自然的聲音。這樣,本發(fā)明實現(xiàn)了向背景噪聲的平穩(wěn)轉換。聽者在語音中聽到的背景音不會象聲音動作選通系統(tǒng)中那樣,在停頓時突然轉變成一種合成的舒適噪聲。
因為背景噪聲持續(xù)地被編碼后進行傳送,所以,背景中的重要事件可以完整清晰地得到傳送。在某些情況下,重要的背景噪聲甚至可以以最高速率進行編碼。例如,當背景中有一個人大聲說話,或者有一輛救護車從站在街角處的一個用戶身旁開過的時候,可能進行最高速率編碼。但是,一成不變或者緩慢變化的背景噪聲會以低速率進行編碼。
利用可變速率聲音編碼能夠確?;诖a分多路訪問(CDMA)的數(shù)字蜂窩式電話系統(tǒng)的容量增加一倍以上。因為在CDMA中,信道間的干擾隨著任一信道中數(shù)據(jù)傳送速率的降低而自動地減少,所以,CDMA和可變速率聲音編碼是完全匹配的。與此相反,看一下指定傳送時隙的系統(tǒng),如TDMA或FDMA等。為了使這種系統(tǒng)得益于數(shù)據(jù)傳送速率的降低,需要進行外部干預,以協(xié)調(diào)將不用的時隙轉讓給其它用戶。這種系統(tǒng)中固有的延遲意味著只有在長時的語音停頓過程中才可能轉讓信道。因而,不能充分地得益于聲音動作因子。但是,出于上述其它原因,在外部協(xié)調(diào)下,可變速率聲音編碼在CDMA之外的系統(tǒng)中有用。
在CDMA系統(tǒng)中,當需要附加的系統(tǒng)容量時可以略微降低語音質量。簡而言之,該聲碼器可以看作是多個聲碼器以不同的速率工作,產(chǎn)生不同的語音質量。因而,語音質量可以混合起來,以進一步降低平均數(shù)據(jù)傳送速率。初步的實驗顯示出,將全速和半速聲音編碼語音混合起來,亦即最大允許數(shù)據(jù)速率在8Kbps與4Kbps之間逐幀變化,藉此,得到的語音比半速可變,即最大值為4Kbps情況下質量要好,而差于全速可變,即8Kbps最大值的情況。
眾所周知,在絕大多數(shù)電話交談中,每次只有一個人說話。全雙工電話線路可以增加一個速率聯(lián)鎖的附加功能。如果線路的一個方向上以最高傳送速率進行傳送,那么,另一方向就被迫以最低速率傳送。鏈路兩個方向上的聯(lián)鎖保證對鏈路每一方向的平均使用不超過50%。但是,當信道切斷時,例如在動作選通中速率聯(lián)鎖情況下,收聽者在對話中無法打斷對方的談話,成為說話者。本發(fā)明容易地提供了藉助于設定聲音編碼速率的控制信號進行速率聯(lián)鎖的能力。
最后應該注意到,利用可變速率聲音編碼系統(tǒng),通信信息可以和對語音質量影響極小的語音數(shù)據(jù)分享信道。例如,一個高速率幀可以分割成兩半,一半用于傳送較低速率聲音數(shù)據(jù),另一半用于通信數(shù)據(jù)。在較佳實施例的聲碼器中實現(xiàn)了聲音傳送在全速率和半速率聲音編碼語音之間僅有輕微的語音質量降低。因而,為了與其它數(shù)據(jù)分享傳送而以較低速率進行語音的聲音編碼在語音質量上只給用戶帶來幾乎不能察覺的差異。


從下文中與附圖相結合的詳細說明中,本發(fā)明的特征、目的和優(yōu)點將更為顯而易見,在所有附圖中,類似的標號標志相應的對象,其中圖1a-1e以圖線形式示出聲碼器在各種速率下的分析幀和子幀;圖2a-2d是一系列表示聲碼器在不同速率下輸出位分布的圖表;圖3是一例示編碼器的大致框圖;圖4是編碼器的流程圖;圖5是例示譯碼器的大致框圖;
圖6是譯碼器流程圖;圖7是編碼器更詳細的功能性框圖;圖8是一例示漢明窗口和自相關子系統(tǒng)的框圖;圖9是一例示速率確定子系統(tǒng)的框圖;圖10是一例示LPC分析子系統(tǒng)的框圖;圖11是一例示LPC至LSP轉換子系統(tǒng)的框圖;圖12是一例示LPC量化子系統(tǒng)的框圖;圖13是例示LSP插值及LSP至LPC轉換子系統(tǒng)的框圖;圖14是用于音調(diào)檢索的自適應碼書的框圖;圖15是編碼器的譯碼器的框圖;圖16是音調(diào)檢索子系統(tǒng)的框圖;圖17是碼書檢索子系統(tǒng)的框圖;圖18是數(shù)據(jù)壓縮子系統(tǒng)的框圖;圖19是譯碼器更詳盡的功能性框圖;圖20a-20d是顯示譯碼器在不同速率下接收到的參數(shù)和子幀譯碼數(shù)據(jù)的圖表;圖21a-21d是進一步顯示譯碼器在特定場合下接收到的參數(shù)及子幀譯碼數(shù)據(jù)的圖表;圖22是LSP反量化子系統(tǒng)的框圖;圖23是帶有后置濾波及自動增益控制的譯碼器更詳細的框圖;圖24是自適應亮度濾波器特性的圖線。
具體實施例方式
根據(jù)本發(fā)明,利用眾所周知的技術對諸如語音和/或背景噪聲之類聲音進行取樣并數(shù)字化。例如,模擬信號可以用標準的8位/μ律格式轉換成數(shù)字格式,然后進行μ律/標準編碼轉換。在另一方式下,模擬信號可以直接轉換成標準脈沖編碼調(diào)制(PCM)格式的數(shù)字形式。這樣,在該較佳實施例中,每一取樣由一16位的數(shù)據(jù)字表示。眾多取樣被組織成輸入數(shù)據(jù)的幀,每一幀由預定量的取樣組成。在現(xiàn)在揭示的實施例中,就8KHz的取樣頻率進行考慮。對于8KHz取樣頻率,每幀由160個取樣或20msec的語音組成。應該理解,其它取樣頻率和幀尺寸也可以采用。
聲音編碼領域包括許多不同的語音編碼技術,其中之一是CELP編碼技術。在前文提到論文“一種4.8Kbps的編碼激勵線性預測編碼器”中描述了這種CELP編碼技術的概要。本發(fā)明采用一種形式的CELP編碼技術,以提供編碼語音數(shù)據(jù)的可變速率,其中,LPC分析是對一定量的取樣進行的,而音調(diào)和碼書檢索則是根據(jù)傳送速率對變量的取樣進行的。在原理上,參照圖3和5討論應用于本發(fā)明中的CELP編碼技術。
在本發(fā)明的該較佳實施例中,語音分析幀為20ms長,意味著所提取的參數(shù)以每秒50次的脈沖進行傳送。此外,數(shù)據(jù)傳送速率大致從8Kbps變化至4Kbps、2Kbps和1Kbps。在全速率(亦稱為速率1)下,數(shù)據(jù)傳送處于8.55Kbps的速率下,為每一幀而編碼的參數(shù)用了171位,其中包括一個11位的內(nèi)部CRC(循環(huán)冗余檢驗)。除去CRC位,速率將是8Kbps。在半速率(亦稱為速率1/2)下,數(shù)據(jù)傳送以4Kbps的速率進行,每一幀的編碼參數(shù)用了80位。在四分之一速率(亦稱為速率1/4)下,數(shù)據(jù)傳送為2Kbps的速率,每幀的編碼數(shù)據(jù)用了40位。在八分之一速率(亦稱為速率1/8)下,數(shù)據(jù)傳送速率略低于1Kbps,各幀的編碼參數(shù)使用16位。
圖1例示出語音數(shù)據(jù)的一個分析幀10,以及它與在LPC分析中采用的漢明窗口12的關系。不同速率下的LPC分析幀、音調(diào)和碼書子幀以圖表形式在圖2a-2d中示出。應該理解,LPC分析幀在所有速率下是大小相同的。
現(xiàn)在參見附圖,具體講是圖1a,LPC分析是采用幀10的160個語音數(shù)據(jù)取樣完成的,它們由漢明窗口12窗口化。如圖1a所示,各個幀中的取樣s(n)記數(shù)為0-159。漢明窗口12是這樣定位的,偏離幀10中的60個取樣。該漢明窗口12從當前的數(shù)據(jù)幀10的第60個取樣s(59)開始,延續(xù)進入下一數(shù)據(jù)幀14,包括其第59個取樣s(58)。因而,為當前幀幀10產(chǎn)生的加權數(shù)據(jù)也含有以下一幀幀14的數(shù)據(jù)為依據(jù)的數(shù)據(jù)。
根據(jù)數(shù)據(jù)傳送速率,對于圖1b-1e中示出的數(shù)據(jù)幀10的不同子幀進行多次檢索,以計算出音調(diào)濾波器和碼書激勵參數(shù)。應該理解成,在本實施例中,給幀10只選擇一個速率,因而音調(diào)和碼書檢索在不同大小的子幀中對應于下面說明的選擇速率進行。然而為了示意,在圖1b-1e中示出在本較佳實施例的各種允許速率下對幀10的音調(diào)和碼書檢索的子幀結構。
如圖1a所示,在所有速率下,對每一幀10都有一次LPC計算。如圖1b所示,在全速率下,對應每一音調(diào)子幀16有兩個碼書子幀18。在全速率下有四次音調(diào)更新,四個音調(diào)子幀16各一次,每次長為40個取樣(5ms)。此外,在全速率下,有八次碼書更新,八個碼書子幀18各一次,每次長為20個取樣(2.5ms)。
在半速率下,如圖1C所示,對應每一音調(diào)子幀20,有兩個碼書子幀22。音調(diào)更新兩次,兩個音調(diào)子幀20各一次,而碼書更新四次,四個碼書子幀22各一次。在四分之一速率下,如圖1d所示,對單個音調(diào)子幀20有兩個碼書子幀26。對音調(diào)子幀24進行一次音調(diào)更新,而碼書則為兩次,兩個碼書子幀26各一次。如圖1e所示,在八分之一速率下,不確定音調(diào),在對應于幀10的幀28中碼書只更新一次。
另外,雖然LPC系數(shù)每幀只計算一次,但是,在線頻譜對(LSP)表示式中,利用從前一幀得到的LSP頻率對它們線性內(nèi)插達四次,以逼近漢明窗口位于每一幀中心時的LPC分析的結果。其例外情況是在全速率下對碼書子幀LPC系數(shù)不被內(nèi)插。LSP頻率計算的細節(jié)在此后說明。
在較低速率下音調(diào)和碼書檢索較少地進行,此外,給LPC系數(shù)的傳送也分配少量位數(shù)。在不同速率下配置的位的數(shù)量示出在圖2a-2d中。圖2a-2d中的每一個表示出分配給語音的每一160取樣幀的聲碼器編碼數(shù)據(jù)位的數(shù)量。在圖2a-2d中,各個LPC塊30a-30d中的數(shù)量是在相應速率下用于短期LPC系數(shù)編碼的位數(shù)。在本較佳實施例中,用于LPC系數(shù)編碼的位數(shù)在全、半、四分之一和八分之一速率下分別是40、20、10和10。
為了采用可變速率編碼,LPC首先變換成線頻譜對(LSP),得到的LSP頻率用DPCM編碼器單獨進行編碼。LPC的階數(shù)為10,因而有10個LSP頻率和10個獨立的DPCM編碼器。對DPCM編碼器的位分配按照表I進行。
表I

在編碼器和譯碼器中,LSP頻率都在用于音調(diào)和碼書檢索之前轉換回LPC濾波器系數(shù)。
關于音調(diào)檢索,圖2a示出在全速率下,音調(diào)更新計算四次,對語音幀的每四分之一長度各一次。對于全速率下的每次音調(diào)更新,新的音調(diào)參數(shù)編碼用了10位。如圖2b-2d所示,在其它速率下,音調(diào)更新的次數(shù)不相同。當速率降低時,更新的次數(shù)也減少。圖2b示出在半速率下的音調(diào)更新,它計算兩次,對語音幀的每一半各進行一次。與此類似,圖2c示出在四分之一速率下的音調(diào)更新,對每個語音幀計算一次。同全速率一樣,每次半速率和四分之一速率音調(diào)更新也用了10位來將新的音調(diào)參數(shù)編碼。但在八分之一速率下,如圖2d所示,不計算音調(diào)更新,因為在沒有或很少語音以及音調(diào)冗余不存在的時候,就采用該速率來對各個幀編碼。
在每10位音調(diào)更新值中,7位表示音調(diào)滯后,而3位表示音調(diào)增益。音調(diào)滯后限制在17和143之間。音調(diào)增益線性是量化至0和2之間,以便用3位的值來表示。
關于碼書檢索,圖2a示出,在全速率下碼書更新計算八次,語音幀的每八分之一各一次。全速率下的每次碼書更新用10位來進行新的碼書參數(shù)編碼。圖2b-2d中示出,在其它速率下進行不同次數(shù)的碼書更新。然而,隨著速率降低,碼書更新次數(shù)也減少。圖2b示出半速率下的碼書更新,它計算四次,對語音幀的每四分之一各一次。圖2c示出四分之一速率下的碼書更新,計算兩次,對語音幀的每一半各一次。同全速率下一樣,每個半速率和四分之一速率音調(diào)更新用10位來將新碼書參數(shù)編碼。最后,圖2d示出八分之一速率下的碼書更新,對每一語音幀進行一次計算。要注意到,在八分之一速率下,傳送了6位,其中兩位代表碼書增益,其余四位是隨機位。后文將進一步討論碼書更新的位分配。
為碼書更新而分配的位數(shù)表示將音調(diào)預測余量矢量量化所需的數(shù)據(jù)位。在全、半和四分之一速率下,每次碼書更新由7位碼書索引加3位碼書增益總共10位數(shù)據(jù)組成。碼書增益是用工作在對數(shù)區(qū)域的差分脈碼調(diào)制(DPCM)編碼器進行編碼的。對于八分之一速率,雖然也可以采用類似的位分布,但最好用一不同的方案。在八分之一速率下,碼書增益用兩位表示,而四個隨機產(chǎn)生的位則與接收到的數(shù)據(jù)一起使用,作為替代碼書的偽隨機數(shù)發(fā)生器的種子。
參見圖3所示的編碼器框圖,LPC分析是以開環(huán)方式進行的。從輸入語音取樣s(n)的各個幀中計算出LPC系數(shù)(α1-α10),如后文中說明,由LPC分析/量化器50來完成,已供共振峰合成濾波器60使用。
然而,音調(diào)檢索的計算是以閉環(huán)方式進行的,通常這稱作分析-合成方法。但是,在實際應用中,采用一種新穎的閉環(huán)/開環(huán)混合技術來進行音調(diào)檢索。在音調(diào)檢索中,通過選取使輸入語音與合成語音的均方之差為最小的參數(shù)而進行編碼。為了簡化這部分的討論,速率的問題不作考慮。但在下文中將更詳細地討論選出的速率對音調(diào)和碼書檢索的影響。
在圖3所示的初步實施例中,感知加權濾波器52由下列等式特征化W(z)=A(z)A(z/μ)---(1)]]>其中A(z)=1-Σi=110αiZ-i---(2)]]>它是共振峰預測濾波器,μ是感知加權參數(shù),在本實施例中,μ=0.8。音調(diào)合成濾波器58由下列等式特征化1P(z)=11-bz-L---(3)]]>下文討論共振峰合成濾波器60,它是加權濾波器,由下列等式特征化H(z)=(1A(z))W(z)=1A(z/μ)---(4)]]>輸入語音取樣S(n)由感知加權濾波器52加權,所產(chǎn)生的加權語音取樣X(n)作為和輸入提供給加法器62。感知加權用于給低信號功率頻率中的錯誤加權。在這些低信號功率頻率中,噪聲更易察覺。合成的語音取樣X′(n)從共振峰合成濾波器60輸出作為差輸入加到加法器62與X(n)作減法運算。加法器62輸出的取樣值之差輸入至均方差(MSE)單元64,它們被平方后累加。WSE單元64的結果提供給最小化單元66,它產(chǎn)生音調(diào)滯后L、音調(diào)增益b、碼書索引I和碼書增益G的數(shù)值。
在最小化單化66中P(z)中的音調(diào)滯后參數(shù)L的所有可能值與來自乘法器56的數(shù)值c(n)一起輸入音調(diào)合成濾波器58。在音調(diào)檢索過程中,碼書沒有任何貢獻,即c(n)=0。由最小化單元66選出使輸入語音與合成語音的加權差最小的L和b的數(shù)值。音調(diào)合成濾波器58產(chǎn)生并輸出P(n)值給共振峰合成濾波器60,一旦找到音調(diào)濾波器的音調(diào)滯后L和音調(diào)增益b,就以類似方式進行碼書檢索。
應該理解,圖3是本發(fā)明所采取的分析-合成方法的原理表示。在本發(fā)明的例示應用中,這些濾波器不應用在典型的閉環(huán)反饋結構中。在本發(fā)明中,在檢索過程中反饋聯(lián)系被切斷,而代之以開環(huán)共振峰余量,其細節(jié)在下文中提供。
最小化單元66然后產(chǎn)生碼書索引I和碼書增益G的值。碼書54的輸出值是按照碼書索引I從許多隨機高斯矢量值中選出的,在乘法器56中乘以碼書增益G,產(chǎn)生音調(diào)合成濾波器58中所用的c(n)值序列。選取使均方差為最小的碼書索引I和碼書增益G用于傳送。
應注意到,感知加權W(z)既通過感知加權濾波器52加在輸入語音上,也通過共振峰合成濾波器60中包含的加權功能加在合成語音上。因而,共振峰合成濾波器60實際上是加權后的共振峰合成濾波器,它把等式1的加權功能與典型的共振峰預測濾波器特性 組合起來,產(chǎn)生等式3的加權共振峰合成功能。
應該理解的是,換種方式,感知加權濾波器52可以放在加法器62和MSE單元64之間。在這種情況下,共振峰合成濾波器60具有通常的濾波器特性 圖4示出用圖3的編碼器對語音編碼時所需步驟的流程。為了說明,涉及速率判定的步驟包含在圖4的流程中。在步驟80,從取樣電路獲取數(shù)字化語音取樣,在步驟82中計算出LPC系數(shù)。在LPC系數(shù)計算中用到了漢明窗口和自相關技術。在步驟84,在本實施例中依據(jù)幀能量對重要的幀作出初步的速率確定。
為了有效地以少量位數(shù)將LPC系數(shù)編碼,在步驟86,LPC系數(shù)轉成線頻譜對(LSP)頻率,然后在步驟88量化,以便傳送。一種選擇方案是,在步驟90可以進行附加的速率確定,在步驟92,如果認為對初始速率作的LSP量化不充分,則可增加速率。
在步驟94,對于處在分析中的語音幀的第1個音調(diào)子幀,LSP頻率經(jīng)內(nèi)插后轉換成LPC系數(shù),用于進行音調(diào)檢索。在音調(diào)檢索中,碼書激勵設置為零。在步驟96和98的作為由先前討論的合成方法所進行的一種分析的音調(diào)檢索中,就每一可能的音調(diào)滯后L,將合成語音與原始語音比較。對于每一L值,確定一個取整數(shù)值的最佳音調(diào)增益b。在L和b值的組合中,最佳的L和b值組合給出合成語音與原始語音之間的最小感知加權均方誤差。在所確定的音調(diào)子幀的L、b最佳值中,在步驟100將b值量化,以便與對應的L值一起傳送。在音調(diào)檢索的另一種實現(xiàn)方法中,b值可以作為音調(diào)檢索一部分進行量化,這些量化值用于進行音調(diào)檢索。因而,在這種實現(xiàn)方式中消除了在音調(diào)檢索之后選中的b值在步驟100的量化要求。
對于處在分析中的語音幀的第1碼書子幀,在步驟102,LSP頻率經(jīng)內(nèi)插后轉換成LPC系數(shù),以用于進行碼書檢索。然而,在本實施例中,在全速率下,LSP頻率僅僅內(nèi)插至音調(diào)子幀水平。由于在各個頻率下音調(diào)和碼書子幀的大小有差異,在音調(diào)檢索之外,對碼書檢索也進行這種內(nèi)插和轉換步驟。只有速率1/8是例外,因為不計算音調(diào)數(shù)據(jù),所以這一問題懸而未決。在步驟104和106的碼書檢索中,在音調(diào)合成濾波器中用到音調(diào)滯后L和音調(diào)增益b的最佳值,使得就每一個可能的碼書索引I,將會成語音與原始語音作比較。對于每個I值,確定一個取整數(shù)值的最佳碼書增益G。I和G值組合中,最佳的I和G值組合給出合成語音與原始語音之間最小的誤差。在給碼書子幀確定的最佳值I和G中,G值在步驟108被量化,以便與對應I值一起傳送。在碼書檢索的另一種變換應用中,G值可以量化成碼書檢索的一部分,這些量化值用于進行碼書檢索。在這種變換應用中,省除了碼書檢索之后在步驟108將選中的G值量化的要求。
在碼書檢索之后,編碼器中的一個譯碼器在I、G、L和b的最佳值下運行。編碼中的譯碼器的運行使得編碼濾波存儲器重組,以用于以后的子幀。
然后在步驟110進行驗證,以確定剛完成分析的該碼書子幀是否對應于已進行音調(diào)檢索的音調(diào)子幀的碼書子幀組中的最后一個碼書子幀。換句話說,確認是否還有其他對應于該音調(diào)子幀的碼書子幀。在本實施例中,對應每一音調(diào)子幀有兩個碼書子幀。如果確認有另一個對應于該音調(diào)幀的碼書子幀,則對該碼書子幀重復步驟102-108。
如果不再有對應于該音調(diào)幀的碼書子幀,則在步驟112進行驗證,以確定處于分析中的語音幀中是否有其他任何音調(diào)子幀存在。如果在當前處于分析中的語音幀中有另一個音調(diào)子幀存在,則對每個音調(diào)子幀和對應的碼書子幀重復步驟94-110。當目前處于分析中的語音幀的計算都已完成之后,在步驟114,將代表語音幀的LPC系數(shù)的數(shù)值,即各音調(diào)子幀的音調(diào)滯后L和增益b和各碼書子幀的碼書索引I和增益G進行壓縮,以便傳送。
參見圖5,其中示出一個譯碼器框圖,按收到的LPC系數(shù)(αi),音調(diào)滯后和增益(L&b)、碼書索引和增益(I&G)用來合成語音。同圖3一樣,為了簡化討論,在圖5中也不考慮速率信息。數(shù)據(jù)速率信息可以作為輔助信息傳送,在某些情況下,可以在信道解調(diào)級導出。
譯碼器由碼書130組成,得到所接收到的碼書索引,或者在八分之一速率下得到隨機種子。碼書130的輸出提供給乘法器132的一個輸入端,而乘法器132的另一輸出端接收碼書增益G。乘法器132的輸出與音調(diào)滯后L和增益b一起供給音調(diào)合成濾波器134。音調(diào)合成濾波器134的輸出與LPC系數(shù)αi一起供給共振峰合成濾波器136。共振峰合成濾波器136的輸出供給自適應后置濾波器138,其中濾波和輸出的是再生語音。后文中將討論,有一種形式譯碼器是在編碼器中實現(xiàn)的。編碼器的譯碼器不包括自適應后置濾波器138,但是包括一個感知加權濾波器。
圖6是與圖5譯碼器的動作相對應的流程。在步驟150譯碼器中,根據(jù)接收到的參數(shù)重建語音。具體來講,在步驟152,接收到的碼書索引值輸入進碼書,產(chǎn)生碼矢量或碼書輸出值。在步驟154,乘法器接收該碼矢量和碼書增益G,并將這些值相乘,得出的信號提供給音調(diào)濾波器。應該注意到,碼書增益G是通過將收到的DPCM參數(shù)譯碼和反量化而得以重建的。在步驟156,音調(diào)合成濾波器得到所接收到的音調(diào)滯后L和增益b,以及乘法器輸出信號,以對乘法器輸出進行濾波。
音調(diào)合成濾波器對碼書矢量濾波后得到的數(shù)值輸入共振峰合成濾波器。在步驟158,LPC系數(shù)αi與供給共振峰合成濾波器,用于對音調(diào)合成濾波器的輸出信號濾波。在譯碼器中,將收到的參數(shù)譯碼成量化LSP頻率,將LSP頻率反量化并轉換成LPC系數(shù)αi,藉此重建LPC系數(shù),以進行內(nèi)插。在步驟160,共振峰合成濾波器的輸出提供給自適應后置濾波器,量化噪聲在其中被掩蓋,重建后的語音得到增益控制。在步驟162,重建后的語音輸出,以轉換成模擬形式。
現(xiàn)在參見圖7a和7b的框圖,說明本發(fā)明的語音編碼技術的進一步細節(jié)。在圖7a中,各個數(shù)字化語音取樣的幀提供給一個漢明窗口系統(tǒng)200,在該子系統(tǒng)中,輸入語音在自相關子系統(tǒng)202進行自相關系數(shù)計算之前被窗口化。
圖8的例示應用中示出了漢明窗口子系統(tǒng)200和自相關子系統(tǒng)202。漢明窗口子系統(tǒng)200由通常是80×16位的ROM的查算表250和乘法器252組成。在每一速率下,語音的窗口中心處于160個取樣長的分析幀的第139和140個取樣之間。這樣,用于計算自相關系數(shù)的窗口偏移分析幀60個取樣。
因為漢明窗口是中心對稱的,所以窗口化是利用包含有160個WH(n)值中的80個值的ROM表進行的。漢明窗口的偏移是通過將ROM的地址指針相對于分析幀的第一個取樣偏移60個位置而實現(xiàn)的。這些值由乘法器以單精度與對應的輸入語音取樣相乘。在分析窗口中,將s(n)作為輸入語音信號,因而窗口化的語音信號Sw(n)被定義為Sw(n)=s(n+60)WH(n 0<=n<=79(5)和Sw(n)=s(n+60)WH(159-n)80<=n<=159 (6)查算表250內(nèi)容的16進制例示值在表II中給出。這些數(shù)值解釋成具有14個小數(shù)位的二進制補碼,表格要從左到右、從上到下閱讀。
表II0x051f 0x0525 0x0536 0x0554 0x057d 0x05b1 0x05f2 0x063d0x0694 0x06f6 0x0764 0x07dc 0x085e 0x08ec 0x0983 0x0a240x0ad0 0x0b84 0x0c42 0x0d09 0x0dd9 0x0eb0 0x0f90 0x10770x1166 0x125b 0x1357 0x1459 0x1560 0x166d 0x177f 0x18950x19af 0x1acd 0x1bee 0x1d11 0x1e37 0x1f5e 0x2087 0x21b00x22da 0x2403 0x252d 0x2655 0x277b 0x28a0 0x29c2 0xael0x2bfd 0x2d15 0x2e29 0x2f39 0x3043 0x3148 0x3247 0x333f0x3431 0x351c 0x3600 0x36db 0x37af 0x387a 0x393d 0x39f60x3aa6 0x3b4c 0x3be9 0xec7b 0x3d03 0x3d80 0xdf3 0x3e5b0x3eb7 0x3f09 0x3f4f 0x3f89 0x3fb8 0x3fdb 0x3ff3 0x3fff自相關子系統(tǒng)202由寄存器254、多路轉換器256、移位寄存器258、乘法器260、加法器262、循環(huán)移位寄存器264和緩存器266組成。窗口化的語音取樣Sw(n)每隔20ms運算一次并鎖存在寄存器254中。在LPC分析幀的第一個取樣Sw(o)上,移位寄存器258和264中復位到0。在每一個新的取樣Sw(n)上,多路轉換器256接收一個新的取樣選擇信號。該信號使取樣能夠從寄存器254進入多路轉換器。新的取樣Sw(n)也提供給乘法器260。與取樣Sw(n-10)相乘,取樣Sw(n-10)處在移位寄存器258的未位SR10上。得到的數(shù)值在加法器262中與循環(huán)移位寄存器264的未位CSR11上的數(shù)值相加。
移位寄存器258和260每收到一次時鐘脈沖,就在移位寄存器258的首位SR1中用Sw(n)替換Sw(n-1),并替換先前在位置CSR10中的數(shù)值。在移位寄存器258有時鐘脈沖時,新脈沖選擇信號從多路轉換器256的輸入端中去除,使得當前處在移位寄存器260位SR10中的取樣Sw(n-9)被允許進入多路轉換器256。在循環(huán)移位寄存器264中,先前在位CSR11上的數(shù)值移入首位CSR1中。新取樣選擇信號從多路轉換器中去除后,移位寄存器258置位,以和循環(huán)移位寄存器264一樣,進行數(shù)據(jù)的循環(huán)移位。
對每個取樣,移位寄存器258和264總共都得到11次時鐘脈沖,因而執(zhí)行11次乘積/累加動作。在對160個取樣進行時鐘輸入后包含在循環(huán)移位寄存器264中的自相關結果作為R(0)-R(10)值時鐘輸入緩存器266。所有移位寄存器復位到零,對窗口化語音取樣的下一個幀重復此過程。
回頭再參見圖7a,對語音幀計算好自相關系數(shù)后,速率確定子系統(tǒng)204和LPC分析子系統(tǒng)206就利用該數(shù)據(jù)來分別計算幀數(shù)據(jù)速率和LPC系數(shù)。由于這些運算是彼此獨立的,所以,它們可以以任何順序甚至同時計算。這里為了說明,而首先討論速率確定。
速率確定子系統(tǒng)204有兩個功能;(1)確定當前幀的速率,(2)重新估算背景噪聲水平。當前分析幀的速率最初是依據(jù)當前幀的能量、背景噪聲水平的先前估值、先前速率和來自一控制微機的速率指令確定的。而新的背景噪聲水平是利用背景噪聲水平的先前估值和當前幀能量估算出的。
本發(fā)明將自適應閾值技術用于速率確定。當背景噪聲變化時,用于選擇速率的閾值也變化。在本實施例中,計算三個閾值,以確定初始的速率選擇RTP。這些閾值是背景噪聲先前估值的二次函數(shù),示出如下T1(B)=-5.544613(10-6)B2+4.047152B+363.1293(7)T2(B)=-1.529733(10-5)B2+8.750045B+1136.214(8)和T3(B)=-3.957050(10-5)B2+18.89962B+3346.789(9)其中,B是背景噪聲的先前估值。
幀能量與三個閾值T1(B)、T2(B)和T3(B)作比較。如果幀能量低于所有三個閾值,則選擇最低的傳送速率(1Kbps),即RTP=4速率1/8。如果幀能量低于兩個閾值,則選擇第二個傳送速率(2Kbps),即RTP=3,速率1/4。如果幀能量僅低于一個閾值,就選擇第三個傳送速率(4Kbps),即RTP=2,速率1/2。如果幀能量高于所有閾值,則選取最高傳送速率(8Kbps),即RTP=1,速率1。
此后,可以依據(jù)前一幀的最終速率RTr來修改初始速率RTp。如果初始速率RTP低于前一幀的最終速率減1,即(RTr-1),則設定一個中間速率RTm=(RTr-1)。在發(fā)生高能量信號向低能量信號的轉換時,這種修改過程使得速率緩慢地降低。然而,如果初始速率選擇等于或大于前一速率減1,即(RTr-1),則中間速率RTm設置成與初始速率RTP相同,即RTm=RTP。在這種場合,當發(fā)生低能量信號向高能量信號的轉換時,速率會立即提高。
最后,中間速率RTm由來自微機的速率約束指令作進一步修改。如果速率RTm大于微機所允許的最高速率,則設定初始速率RTi為最高允許值。與此類似,如果中間速率RTm小于微機允許的最低速率,則初始速率RTi設為最低允許值。
在某些情況下,可能會要求以微機決定的速率對所有語音編碼。速率約束指令通過將最高和最低允許速率設為期望速率,而將幀速率設置成期望速率。速率約束指令可用于特殊的速率控制場合,如用于速率聯(lián)鎖和模糊及突發(fā)傳送,這些都在后文說明。
圖9給出速率確定算法的例示執(zhí)行過程。要起動運算,寄存器270要預先裝入提供給加法器272的數(shù)值1。循環(huán)移位寄存器274、276和278分別裝載二次閾值等式(7)-(9)的第1、2和3系數(shù)。例如,循環(huán)移位寄存器274的末位、中位和首位分別裝載計算T1、T2和T3的等式的第1系數(shù)。與此類似,循環(huán)移位寄存器276的末位、中位和首位分別裝入計算T1、T2和T3的等式的第2系數(shù)。最后,循環(huán)移位寄存器278的末位、中位和首位分別裝入計算T1、T2和T3的等式的常數(shù)項。在各個循環(huán)移位寄存器274、276和278中,數(shù)值從末位輸出。
在計算第1閾值T1時,先前幀的背景噪聲估值B在乘法器280中自乘。得到的B2值乘以第1系數(shù)-5.544613(10-6),該系數(shù)從循環(huán)移位寄存器274的末位輸出。得到的結果在加法器286中加上來自乘法器284的背景噪聲B與循環(huán)移位寄存器276末位輸出的第2系數(shù)4.047152的乘積。然后,加法器286的輸出值在加法器288中加上循環(huán)移位寄存器278的末位輸出的常數(shù)項363.1293。加法器288的輸出即為T1的計算值。
加法器288輸出的T1計算值在加法器290中減去幀能量值Ef,在本實施例中,Ef是線性區(qū)域中的數(shù)值R(0),由自相關子系統(tǒng)提供。
換種方式,幀能量Ef也可以以分貝數(shù)在對數(shù)域中表示,它近似為由有效窗口長度歸一化后的第一自相關系數(shù)R(0)的對數(shù)值Ef=10log10R(0)LA/2---(10)]]>其中,LA是自相關窗口長度。應該理解到,聲音動作也可以從包括音調(diào)預測增益或共振峰預測增益Ga在內(nèi)的其它各種參數(shù)中測得Ga=10log10E(10)E(10)---(11)]]>其中,E(10)是第10次疊代后的預測殘留能量,而E(0)是初始LPC預測殘留能量,后文中說明,在LPC分析中與R(0)相等。
利用比較器或限幅器292,從加法器290的輸出中提取二進制補碼差值符號位的補碼,并提供給加法器272,與寄存器270的輸出相加。這樣,如果R(0)與T1之差為正,則寄存器270增量1。如果差值為負,寄存器270保持原樣。
然后,循環(huán)寄存器274、276和278進行循環(huán),因而,T2的等式(8)的系數(shù)出現(xiàn)在其輸出端。同討論閾值T1的過程一樣,重復計算閾值T2和將它與幀能量比較的過程。然后,循環(huán)寄存器264、276和278再次循環(huán),使T3的等式(9)的系數(shù)出現(xiàn)在其輸出端。閾值T3的計算和與幀能量的比較與上文中說明的相同。在完成所有三個閾值的計算和比較后,寄存器270包含有初始速率估算值RTi。初始速率估算值RTP提供給速率緩降邏輯294。存儲在寄存器298中來自LSP頻率量化子系統(tǒng)的先前幀最終速率RTr也供給邏輯294。邏輯296計算數(shù)值(RTr-1),并提供初始速率估算值RTP和數(shù)值(RTr-1)中的較大者作為輸出。數(shù)值RTm給到速率限制邏輯296。
前面說到,微機提供速率限制指令給聲碼器,具體講是給邏輯296。在用到數(shù)字信號處理器時,該指令在編碼過程的LPC分析部分結束之前送入邏輯296中。邏輯296確認該速率不超過速率限制值,并在RTm值超出限制值時修改它。如果RTm值在允許速率范圍內(nèi),它就作為初始速率值RTi從邏輯296中輸出。初始速率值RTi從邏輯296輸出到圖7a的LSP量化子系統(tǒng)210中。
前面提到的背景噪聲估算值用于計算自適應速率閾值。先前幀的背景噪聲估算值B用于建立當前幀的速率閾值。然而,對于每一個幀,背景噪聲估算值被更新后用于為下一個幀確定速率閾值。新的背景噪聲估算值B′是根據(jù)先前幀的背景噪聲估算值B和當前幀能量Ef在當前幀中確定的。
在確定用于下一幀的新的背景噪聲估算值B′(作為先前幀背景噪聲值B)時,要計算兩個數(shù)值。第1個值V1僅僅是當前幀能量Ef。第2個值V2是B+1和KB中的較大者,K=1.00547。為了防止第2個值變得太大,將其限制在一個很大的常數(shù)M=160,000之下。選擇兩個值V1和V2中小的一方作為新的背景噪聲估算值B′。
數(shù)學表示為V1=R(0) (12)V2=min(160000,max(KB,B+1)) (13)新的背景噪聲估算值B′是B′=min(V1,V2) (14)其中,min(x,y)是x,y中的最小值,而max(x,y)是x,y中的最大值。
圖9進一步示出了背景噪聲估算算法的例示執(zhí)行過程。第一個值V1僅僅是直接提供給多路轉換器300一個輸入端的當前幀能量Ef。
第二個值V2從首先算出的數(shù)值KB和B+1中計算得到。在計算數(shù)值KB和B+1時,存儲在寄存器302中的先前幀背景噪聲估算值B輸出到加法器304和乘法器306中。應該注意到,存儲在寄存器302中的用于當前幀的先前幀背景噪聲估算值B與在先前幀中計算出的新的背景噪聲估算值B′相等。加法器304還得到一個輸入值1與數(shù)值B相加,從而產(chǎn)生B+1。乘法器304還得到一個輸入值K與數(shù)值B相乘,從而產(chǎn)生KB。B+1和KB分別從加法器304和乘法器306輸出到多路轉換器308和加法器310的各個輸入端。
加法器310和比較器或限幅器312用于選擇B+1和KB中較大的一方。加法器310從KB中減去B+1并將結果提供給比較器或限幅器312。限幅器312提供一個控制信號給多路轉換器308,選擇B+1和KB較大的一方作為輸出。選出的B+1或KB(選中項)從多路轉換器308輸出到限幅器314,限幅器314是飽和型限幅器,當選中項低于常數(shù)值M時,輸出選中項或者在選中項超出數(shù)值M時輸出數(shù)值M。限幅器314的輸出作為第二輸入供給多路轉換器300并作為加法器316的一個輸入。
加法器316在另一個輸入端還接收到幀能量值Ef。加法器316和比較器或限幅器318用于選擇數(shù)值Ef和限幅器314的輸出中較小的一方。加法器316從限幅器314的輸出值中減去幀能量值,并將結果提供給比較器或限幅器318。限幅器318向多路轉換器300提供一個控制信號。用于選擇Ef值和限幅器314的輸出值中較小的一方。多路轉換器300輸出的選中數(shù)值作為新的背景噪聲估算值B′提供給寄存器302,存儲后作為當前幀背景噪聲估算值B用在下一幀中。
再參見圖7,各自相關系數(shù)R(0)-R(10)從自相關子系統(tǒng)202輸出到LPC分析子系統(tǒng)206中。在LPC分析子系統(tǒng)206中計算出的LPC系數(shù)用在感知加權濾波器52和共振峰合成濾波器60中。
LPC系數(shù)可以通過采用德賓(Durbin)遞推式的自相關方法獲得,該方法在“語音信號數(shù)字化處理”(賴賓納和謝弗,普藍蒂斯-豪公司1978年出版)一書中討論過。這種技術是用于獲得LPC系數(shù)的高效計算方法。該算法可以用下列等式表示E(0)=R(0),i=1; (15)ki={R(i)-Σj=1i-1αj(i-1)R(i-j)}/Ei-1;---(16)]]>αi(i)=Ki;---(17)]]>αj(i)=αj(i-1)-kiαi-j(i-1)1<=j<=i-1;---(18)]]>E(i)=(1-ki2)E(i-1)---(19)]]>如果i<10,則進到等式(16),并取i=i+1(20)十個LPC系數(shù)標為αj(10),1<=j<=10。
在將LPC系數(shù)編碼之前必須確保濾波器的穩(wěn)定性。濾波器的穩(wěn)定性是這樣實現(xiàn)的,將濾波器的極點沿徑向向內(nèi)微量移動,這一變化減小峰值頻率響應的幅值而擴展峰值的帶寬。這種技術作為帶寬擴展是眾所周知的,在拖苦拉等人所著的“PARCOR語音分析-合成中的頻譜平滑”一文(ASSP學報)中有進一步說明。在現(xiàn)情況下通過按比例改變各LPC系數(shù),可以迅速地完成帶寬擴展。因而如表III中所得到的LPC都乘以對應的十六進制數(shù)值以產(chǎn)生LPC分析子系統(tǒng)206的最終輸出LPC系數(shù)α1-α10。應該注意到,表III中列出的數(shù)值是十六進制形式的。用二進制補碼標記時有十五位。在這種形式下數(shù)值0×8000表示-1.0,向數(shù)值0×7333(或29491)表示0.899994等于29491/32768。
表IIIα1=α1(10)·0x7333α2=α2(10)·0x67aeα3=α3(10)·0x5d4fα4=α4(10)·0x53fbα5=α5(10)·0x4b95α6=α6(10)·0x4406α7=α7(10)·0x3d38α8=α8(10)·0x3719α9=α9(10)·0x3196α10=α10(10)·0x2ca1這些運算最好以雙精度進行,即進行32位的除法、乘法和加法。最好有雙精度的準確度,以保持自相關函數(shù)和濾波器系數(shù)的動態(tài)范圍。
在圖10中示出了LPC子系統(tǒng)206的一個例示實施例的方框圖,它用到上述等式(15)-(20)。LPC子系統(tǒng)206由三個電路部分組成,一個計算電路330和兩個用于更新主計算電路330的寄存器的緩存更新電路332和334。計算首先是從數(shù)值R(1)到R(10)裝入緩存器340中開始的。為了啟動計算寄存器346,通過多路轉換器344預先裝入數(shù)值R(1)。寄存器由多路轉換器354用R(0)初始化,緩存器352(它保存十個αj(i-1)數(shù)值)由多路轉換器354初始化為全零,緩存器356(它保持十個αj(i)數(shù)值)由多數(shù)轉換器358初始化為全零,對于計算循環(huán)i設定為1。為了明了起見,計數(shù)器i和j以及其它運算循環(huán)控制在圖中未畫出,但是這種類型的邏輯電路的設計和綜合是處在數(shù)字邏輯設計領域中普通熟練者的能力范圍之內(nèi)的。
αj(i-1)數(shù)值從緩存器356輸出,以計算等式(14)中的KiE(i-1)項。各個數(shù)值R(i-j)從緩存器340輸出,在乘法器360中與αj(i-1)相乘。得到的數(shù)值與來自寄存器346的數(shù)值在加法器362中作減法,每次相減的結果存儲在寄存器346中以供作下一項減法。在第i個循環(huán)中,如等式(14)的求和項中所示,有i-1次乘法和累加運算。在該循環(huán)的最后,寄存器346中的數(shù)值在除法器364中除以來自寄存器348的數(shù)值E(i-1),產(chǎn)生數(shù)值ki。
然后,該數(shù)值ki用在緩存更新電路332中,計算等式(19)中的E(i),數(shù)值E(i)在ki的下一個計算循環(huán)中用作為數(shù)值E(i-1)。當前循環(huán)的數(shù)值ki在乘法器366中自乘以獲得數(shù)值ki2。然后,數(shù)值ki2在加法器368中被減去1。這一加法器運算的結果在乘法器370中乘以來自寄存348的數(shù)值E(i)。其結果E(i)通過多路轉換器350輸入寄存器348存儲起來作為下一周期的數(shù)值E(i-1)。
然后,數(shù)值ki用來以等式(15)計算數(shù)值αi(i)。在這種情況下,數(shù)值ki通過多路轉換器358輸出緩存器356。數(shù)值ki還用在緩存更新電路334中,以等式(18)從數(shù)值αi(i-1)計算出數(shù)值αj(i)。緩存器352中現(xiàn)存的數(shù)值用于計算αj(i)。如等式(18)所示,在第i個循環(huán)中有i-1次運算。在i=1的迭代中,不需要這些運算。對于第i次循環(huán)的各個j值,計算出一個αj(i)值。在計算各αj(i)值時,各αi-j(i-1)值在乘法器372中乘以數(shù)值ki,以輸出到加法器374。在加法器374中,從另外輸入加法器374的數(shù)值αj(i-1)中減去數(shù)值kiαi-j(i-1)。各個乘法和加法的結果作為αj(i)值通過多路轉換器358供給緩存器356。
對當前循環(huán)計算出αi(i)和αj(i)值后,就將剛算出并存儲于緩存器356中的這些數(shù)值通過多路轉換器354輸出給緩存器352。存在緩存器356中的數(shù)值存儲于緩存器352的相應位置中。這樣,緩存器352得到更新,以計算i+1循環(huán)的數(shù)值ki。
在前一循環(huán)的最后產(chǎn)生的數(shù)據(jù)αj(i-1)在當前循環(huán)中用于為下一循環(huán)產(chǎn)生更新數(shù)據(jù)αj(i),注意到這一點是很重要的。必須保留該前一循環(huán)的數(shù)據(jù),以便為下一循環(huán)完整地產(chǎn)生更新數(shù)據(jù)。這樣,兩個緩存器356和352用于將前一循環(huán)的數(shù)據(jù)保存到更新數(shù)據(jù)完全產(chǎn)生為止。
上述說明是針對在完成更新數(shù)值的計算時數(shù)據(jù)從緩存器356向緩存器352并行轉送作出的。這種執(zhí)行方式確保舊的數(shù)據(jù)在計算新數(shù)據(jù)的整個過程中得以保留,而不會象在設置單個緩存器情況下,舊的數(shù)據(jù)在完全利用之前就丟失了。上述方式是實現(xiàn)相同結果的現(xiàn)有幾個方式之一。例如,緩存器352和356可以經(jīng)過多路轉換,以使得在當前循環(huán)中依據(jù)存儲在一個第一緩存器中的數(shù)值計算數(shù)值ki時,更新數(shù)據(jù)存在第二緩存器中,用在下一計算循環(huán)中。在下一循環(huán)中,數(shù)值ki依據(jù)存在第二緩存器中的數(shù)值算出。第二緩存器中的數(shù)值和數(shù)值ki用于為下一循環(huán)產(chǎn)生更新數(shù)據(jù),這些更新數(shù)據(jù)存在第一緩存器中。緩存器的這種替換使得前一計算循環(huán)的數(shù)據(jù)得以保存,以此產(chǎn)生更新數(shù)據(jù),并在不重寫需要用來產(chǎn)生更新數(shù)據(jù)的先前數(shù)據(jù)的情況下存儲更新數(shù)據(jù)。使用這種技術能夠將與下一循環(huán)ki值的計算相關的延遲減至最小。因而,在計算ki時乘積/累加的更新可以在計算下一αj(i-1)值的同時進行。
在完成最后一個計算循環(huán)(i=10)后存在緩存器356中的10個LPC系數(shù)αj(10)換算到相應的最后LPC系數(shù)αj。向多路轉換器344、376和378提供一個換算選擇信號,因而,存在系數(shù)查算表342中的換算數(shù)值,即表III的十六進制數(shù)值,被選中,通過多路轉換器344輸出。存在表342中的數(shù)值按順序在時鐘脈沖控制下輸出,并輸入乘法器360。乘法器360還通過多路轉換器370接收從寄存器356順序輸出的數(shù)值αj(10)。換算后的數(shù)值通過多路轉換器378從乘法器360輸出到LPC至LSP轉換子系統(tǒng)208(圖7)。
為了迅速有效地以少量位數(shù)將10個換算后的LPC系數(shù)編碼,各系數(shù)轉換成線頻譜對頻率,在宋和江發(fā)表于ICASSP′84中的文章“線頻譜對(LSP)和語音數(shù)據(jù)壓縮”中對此有說明。在下列等式(21)和(22)及表IV中示出了LSP參數(shù)的計算。
LSP頻率是處在0和π之間的下列等式的十個根P(ω)=cos5ω+P1cos4ω+…+P4cosω+P5/2(21)Q(ω)=cos5ω+q1cos4ω+…+q4cosω+q5/2(22)其中,Pn和qn對n=1、2、3、4分別取值,并在表IV中遞歸定義表IVP1=-(α1+α10)-1 q1=-(α1-α10)+1P2=-(α2+α9)-P1q2=-(α2-α9)+q1P3=-(α3+α8)-P2q3=-(α3-α8)+q2P4=-(α4+α7)-P3q4=-(α4-α7)+q3P5=-(α5+α6)-P4q5=-(α5-α6)+q4表IV中,α1,……,α10是從LPC分析得到的換算系數(shù)。為了簡化,等式(21)和(22)的10個根換算成0到0.5之間的值。LSP頻率的特性是,當LPC濾波器穩(wěn)定時,兩個等式的根變動;即,最低的根ω1是P(ω)的最低的根,次最低的根ω2是Q(ω)的最低的根,以此類推。在10個頻率中,奇頻率是P(ω)的根,而偶頻率是Q(ω)的根。
根的查找方法如下。首先,如上面所示那樣將LPC系數(shù)加入,從而以雙精度計算出P和q系數(shù)。然后,每隔π/256弧度計算一次P(ω),再觀察這些值的符號變化,辨別在該子區(qū)域中的一個根。如果找到一個根,則在該區(qū)域兩端之間進行一次線性內(nèi)插,以迫近根的真實位置。由于頻率的定序特性,在每對P根之間保證存在一個Q根(第5個Q根處于第5個P根與π之間)。在每對P根之間進行對分查找,確定Q根的位置。為了簡便,每個P根近似取最近的π/256數(shù)值,在這些近似值之間進行對分查找。如果未找到根,則使用先前找到根的最近的幀的LSP頻率的非量化值。
現(xiàn)在參見圖11,其中示出一個用于產(chǎn)生LSP頻率的例示電路。上述操作需要總共257個在0和π之間的可能的余弦值,它們在雙精度下存儲在余弦表400中,該表格由模256計數(shù)器402尋址。對于輸入表400的各個j值,給出cosω、cos2ω、cos3ω、cos4ω和cos5ω輸出,其中ω=jπ/256 (23)j是計數(shù)值。
余弦表400輸出的數(shù)值cosω、cos2ω、cos3ω和cos4ω輸入到相應的各個乘法器404、406、408和410,而數(shù)值cos5ω則直接輸入加法器412中。這些值在各乘法器404、406、408和410中分別乘以通過多路轉換器414、416、418和420輸入其中的數(shù)值P4、P3、P2和P1。
相乘結果也輸入累加器412。此外,數(shù)值P5通過多路轉換器422送到乘法器424,同時,常數(shù)0.5,即1/2也送到乘法器424。乘法器424的輸出結果也作為另一個輸入給加法器412。為了利用同一電路計算P(ω)和Q(ω)值,根據(jù)P/q系數(shù)選通信號,多路轉換器414-422在P1-P5或q1-q5之間作出選擇。圖中未示出產(chǎn)生P1-P5或q1-q5的電路,但是,利用一系列將LPC系數(shù)和P1-P5或q1-q5進行加減運算的加法器,以及存儲P1-P5或q1-q5值的寄存器,很容易實現(xiàn)該電路。
加法器412將輸入值相加,依情況而定,輸出P(ω)或Q(ω)。為了簡便,在以后的討論中將考慮P(ω)值的情況,Q(ω)值以類似方式利用q1-q5數(shù)值算出。加法器412輸出P(ω)的當前值,存儲在寄存器426中。先前存在寄存器426中的前一P(ω)值移位至寄位器428中。當前和先前的P(ω)值的符號位在異或門430中異或,以傳給線性內(nèi)插器434的起動信號的形式顯示零交叉或符號變換。P(ω)的當前和先前數(shù)值也從寄存器426和428輸出到線性內(nèi)插器434,該內(nèi)插器響應起動信號,在P(ω)發(fā)生零交叉的兩個值之間進行內(nèi)插。該線性內(nèi)插小數(shù)值結果,即與數(shù)值j-1的距離,與來自計數(shù)器256的數(shù)值j一起提供給緩存器436。門430還將起動信號提供給緩存器436,緩存器436允許數(shù)值j和對應的小數(shù)值FVj存入。
在加法器438中,數(shù)值j中減去該小數(shù)值,作為緩存器436的輸出,或者換種方式,減去后輸入緩存器436。在替換方式下,在輸入緩存器436的j線中用一個寄存器,使得數(shù)值j-1與小數(shù)值輸入一起輸入緩存器436。小數(shù)值可以在存入寄存器436之前或從中輸出時加到數(shù)值j-1上。在任何情況下,混合值j+FVj或(j-1)+FVj輸出到除法器440,除以輸入的常數(shù)512。只需改變二進制字中的二進制小數(shù)點位置,就可以簡單地完成除法操作。這一除法操作為達到處于0和0.5之間的LSP頻率而提供必需的換算。
P(ω)或Q(ω)的函數(shù)計算需要5次余弦值查表,4次雙精度乘法運算和4次加法運算。算出的根通常只精確到大約13位,并在單精度下存放。LSP頻率提供給LSP量化子系統(tǒng)210(圖7),用于量化。
LSP頻率算出之后,就必須量化,以便傳送。十個LSP頻率中的每一個都大致以一偏置數(shù)為中心。應該注意到,當輸入語音具有平坦的LSP頻譜特性曲線并且不能做任何短期預測時LSP頻率接近偏置數(shù)。偏置數(shù)從編碼器中取出,并且用到一個簡單的DPCM量化器。在譯碼器中,偏置數(shù)又加回去。由LPC至LSP轉換子系統(tǒng)所提供的各LSP頻率ω1-ω10的偏置數(shù)的非,以十六進制形式給出在表V中。表V中給出的數(shù)值也是二進制補碼,有15個小數(shù)位。十六進制數(shù)值0x8000(或-32768)表示-1.0。這樣,表V的第一個值0xfa2f(或-1489)表示-0.045441=-1489/32768。
表V

子系統(tǒng)中用的預測器等于子系統(tǒng)一個緩存器中存儲的來自先前幀的量化LSP頻率的0.9倍。加入衰減常數(shù)0.9,因而信道錯誤最終將消除掉。
用到的量化器是線性的,但動態(tài)范圍和步長隨速率而變。在高速率幀中,每一LSP頻率有更多位數(shù)要傳送,因而,量化級數(shù)依賴于速率。在表VI中,示出了每速率下對各頻率的量化的位分配和動態(tài)范圍。例如,在速率1,ω1統(tǒng)一量化成4位(即16級),最高量化級為0.025,而最低的是-0.025。
表VI

如果由速率確定算法選中的速率的量化范圍不夠大,或者發(fā)生斜率溢出,則速率提高到下一個較高的速率上。速率持續(xù)提升,一直到動態(tài)范圍得到調(diào)節(jié)或達到全速率為止。在圖12中,給出了運用選擇速率提高技術的裝置的一個例示框圖。
圖12以框圖形式示出了LSP量化子系統(tǒng)210的一個例示設備,它包括速率提升電路。圖12中,當前幀LSP頻率從除法器440(圖11)輸出到寄存器442,存儲起來,以在下一幀中進行速率提升限定時輸出。先前幀LSP頻率和當前幀LSP頻率分別從寄存器442和除法器440輸出到速率提升邏輯444,進行當前幀的速率提升限定。速率提升邏輯442還接收到初始速率決定,以及來自速率限定子系統(tǒng)204的速率限制指令。在確定是否必須增大速率時,邏輯444根據(jù)當前和先前幀LSP頻率差值的平方之和,將先前幀LSP頻率與當前幀LSP頻率比較。其結果再與一個閾值比較,閾值如被超出,則顯示有必要提升速率來確保高質量的語音編碼。在超出閾值時,邏輯444將初始速率增加一個速率級別,從而給出整個編碼器通用的最終速率。
圖12中,各LSP頻率值ω1-ω10逐個與對應的偏置數(shù)一起輸入加法器450。從輸入的LSP值中減去偏置數(shù),其結果輸出給加法器452。加法器452還收到一個輸入-預測值,即乘以衰減常數(shù)后的先前幀對應的LSP值。加法器452從加法器450的輸出中減去預測值。加法器452的輸出作為量化器454的一個輸入。
量化器454由限幅器456、最小動態(tài)范圍查算表458、逆步長查算表460、加法器462、乘法器464和位屏蔽466組成。在量化器454中進行量化,首先確定輸入值是否處在量化器454的動態(tài)范圍內(nèi)。輸入值提供給限幅器456,如果該輸入超出了表458提供的限定值,限幅器456就將它限制在動態(tài)范圍的上界和下界內(nèi)。查算表458按照表VI,響應輸入其中的速率和LSP頻率索引i,向限幅器456提供存儲的限定值。限幅器456的輸出值輸入加法器462,從中減去表458提供的動態(tài)范圍的最小值。按照表VI中所列的最小動態(tài)范圍值,先不管其符號,依據(jù)速率和LSP頻率索引i再次確定表格458的輸出值。例如,對于(全速率,ω1),查算表458的值為0.025。
加法器462的輸出在乘法器464中乘以一個選自查算表460的數(shù)值。查算表460包含有與表VI中所列數(shù)值一致的、各個速率下的各LSP值的步長之逆相對應的數(shù)值。依據(jù)速率和LSP頻率索引i來選擇查算表460的輸出值。對于各個速率和LSP頻率索引i,存在查表460中的數(shù)值是((2n-1)/動態(tài)范圍),其中,n是代表量化值的位數(shù)。例如,對于(速率1,ω1),查算表460的數(shù)值是(15/0.05)或300。
乘法器464的輸出是介于0和2n-1之間的一個數(shù)值,它供給位屏蔽466。位屏蔽466響應速率和LSP頻率索引,根據(jù)表VI,從輸入值中提取適當?shù)奈粩?shù)。提出的是輸入值中的n個整數(shù)位,從而形成位限制輸出Δωi。數(shù)值Δωi是量化未偏置差分編碼LSP頻率,從代表LPC系數(shù)的信道中傳送。
數(shù)值Δωi也通過一個由逆量化器468、加法器470、緩存器472和乘法器474組成的預測器反饋。逆量化器468由步長查算表476、最小動態(tài)范圍查算表478、乘法器480和加法器482組成。
數(shù)值Δωi與選自查算表476的一個數(shù)值一起輸入乘法器480。查算表476含有在各個速率下依據(jù)于表VI中所列數(shù)值的各LSP數(shù)值的步長所對應的數(shù)值。依據(jù)速率和LSP頻率索引i,從查算表476中選擇輸出值。對于各個速率和LSP頻率索引i,存在查算表460中的數(shù)值是(動態(tài)范圍/2n-1),其中,n是代表量化值的位數(shù)。乘法器480將輸入值相乘,提供輸出給加法器482。
加法器482從另一輸入接收表478的一個數(shù)值。表478的輸出數(shù)值根據(jù)表VI中所列最小動態(tài)范圍數(shù)值,無視其符號,由速率和LSP頻率索引i來確定。加法器482將表478提供的最小動態(tài)范圍值與乘法器480的輸出值相加,結果輸出給加法器470。
加法器470在另一輸入端接收到乘法器474的預測值輸出。這些值在加法器470中相加,并存儲在十個字容量的緩存器472中。在當前幀中緩沖器472的每個先前幀輸出值在乘法器474中乘以常數(shù)0.9。乘法器474輸出的預測值如前面討論過的那樣,供給加法器452和470。
在當前幀中,緩存器472中存儲的數(shù)值是先前幀重建LSP值減去偏置值。相類似,在當前幀中,加法器470的輸出值是不帶偏置的當前幀重建的LSP值。在當前幀中,緩存器472和加法器470的輸出分別提供給加法器484和486,加上偏置數(shù)。加法器484和486的輸出值分別是先前幀重建LSP頻率和當前幀重建LSP頻率值。依照下列等式在更低速率下進行LSP平滑化平滑后LSP=a(當前LSP)+(1-a)(先前LSP)(24)其中a=0全速率下a=0.1 半速度下a=0.5 四分之一速率下a=0.85 八分之一速率下先前幀(f-1)重建LSP頻率值ω′i,f-1和當前幀(f)重建頻率值ω′i,f從量化子系統(tǒng)210輸出到音調(diào)子幀LSP內(nèi)插子系統(tǒng)216和碼書子幀LSP內(nèi)插子系統(tǒng)226。量化后的LSP頻率值Δωj從LSP量化子系統(tǒng)210輸出到數(shù)據(jù)匯編子系統(tǒng)236,用于傳送。
以后說明的加權濾波器和共振峰合成濾波器所用到的LPC系數(shù)對于正在編碼的音調(diào)子幀是合適的。對各個音調(diào)子幀,LPC系數(shù)的內(nèi)插對每個音調(diào)子幀進行一次,如表VII表VII速率1ωi=0.75ω′i,f-1+0.25ω′i,f音調(diào)子幀1ωi=0.5ω′i,f-1+0.5ω′i,-f音調(diào)子幀2ωi=0.25ω′i,f-1+0.75ω′i,f音調(diào)子幀3ωi=ω′i,f音調(diào)子幀4速率1/2ωi=0.625ω′i,f-1+0.375ω′i,f音調(diào)子幀1ωi=0.125ω′i,f-1+0.875ω′i,f音調(diào)子幀2速率1/4ωi=0.625ω′i,f-1+0.375ω′i,f音調(diào)子幀1速率1/8不進行音調(diào)檢索音調(diào)子幀計數(shù)器224用于跟蹤計算音調(diào)參數(shù)的音調(diào)子幀,計數(shù)器的輸出提供給音調(diào)子幀LSP內(nèi)插子系統(tǒng)216,用于音調(diào)子幀LSP內(nèi)插。音調(diào)子幀計數(shù)器224還提供一個輸出給數(shù)據(jù)壓縮子系統(tǒng)236,指示在選中速率下音調(diào)子幀的結束。
圖13示出音調(diào)子幀LSP內(nèi)插子系統(tǒng)216的一個例示裝置,它用于對相關音調(diào)子幀的LSP頻率進行內(nèi)插。在圖13中,先前和當前LSP頻率ω′i,f-1和ω′i,f分別從LSP量化子系統(tǒng)輸出到乘法器500和502,再分別乘以存儲器504提供的常數(shù)。存儲器504存儲一組常數(shù),并且,根據(jù)來自音調(diào)子幀計數(shù)器的音調(diào)子幀數(shù)輸入(這在后文討論),提供一個表VII中所列的常數(shù)輸出,與先前和當前幀LSP數(shù)值相乘。乘法器500和502的輸出按照表VII中的等式在加法器506中相加,形成該音調(diào)子幀的LSP頻率值。對于各音調(diào)子幀,LSP頻率的內(nèi)插一旦完成,就執(zhí)行LSP至LPC的反向轉換,以獲得感知加權濾波器和A(z)的當前系數(shù)值。這樣,內(nèi)插后的LSP頻率提供給圖7的LSP至LPC轉換子系統(tǒng)218。
LSP至LPC轉換子系統(tǒng)218將內(nèi)插LSP頻率逆轉換成LPC系數(shù),用于語音的再合成。先前的參考文章,宋和江所著的“線頻譜對(LSP)和語音數(shù)據(jù)壓縮”中對本發(fā)明在轉換過程中用的算法有全面的討論和推導。計算特征是這樣的,P(z)和Q(z)可以利用LSP頻率由下列等式表示P(z)=(1+Z-1)πi=15(1-2cos(ω2i-1)Z-1+Z-2)---(25)]]>其中,ωi是P′多項式的根(奇頻率),Q(z)=(1-Z-1)πi=15(1-2cos(ω2i)Z-1+Z-2)---(26)]]>其中,ωi是Q′多項式的根(偶頻率),A(z)=Pz+Qz2---(27)]]>這一運算首先是對所有奇頻率i算出數(shù)值2cos(ωi)。利用零附近的余弦的5階單精度泰勒級數(shù)展開式完成該計算。在余弦表中最接近點處的泰勒展開式可能更準確,但是,零附近的展開式有足夠精度,并且,不會帶來多余的計算。
接下去,計數(shù)P多項式的系數(shù)。多項式之積的系數(shù)是單個多項式的系數(shù)序列的卷積。上述等式(25)中6個z多項式系數(shù)序列的卷積{1,-2cos(ω1),1},{1,-2cos(ω3),1}……{1,-2cos(ω9),1}和{1,1}被算出。
P多項式一經(jīng)算出,就對Q多項式重復相同的程序,上述等式(26)中的6個z多項式系數(shù)序列{1,-2cos(ω2),1},{1,-2cos(ω4),1}……{1,-2cos(ω10),1}和{1,1}以及適當?shù)南禂?shù)被加起來,并除以2,即移動1位,以形成LPC系數(shù)。
圖13還詳細地示出LSP至LPC轉換子系統(tǒng)的例示執(zhí)行過程。電路部分508依據(jù)輸入值ωi計算出數(shù)值-2cos(ωi)。電路部分508由緩存器509、加法器510和515、乘法器511、512、514、517和518、寄存器513和516組成。在計算數(shù)值-2cos(ωi)時,寄存器513和516被初始化為零。因為該電路是計算sin(ωi)的,所以,在加法器510中首先先以輸入常數(shù)值π/2減ωi。該數(shù)值由乘法器511取平方,然后,用乘法器512和寄存器513依次計算數(shù)值(π/2-ωi)2、(π/2-ωi)4、(π/2-ωi)6和(π/2-ωi)8。
泰勒級數(shù)展開式系數(shù)C[1]-C[4]依次和乘法器512的輸出值一起輸入乘法器514。乘法器514的輸出值輸入加法器515,與寄存器516的輸出相加,這些值累加形成輸出C[1](π/2-ωi)2+C[2](π/2-ωi)4+C[3](π/2-ωi)6+C[4](π/2-ωi)8,輸給乘法器517。來自寄存器516的乘法器的輸入與來自加法器510的輸出(π/2-ωi)在乘法器517中相乘。來自乘法器517的數(shù)值cos(ωi)在乘法器518中乘以常數(shù)-2,從而形成輸出-2cos(ωi),提供給電路部分520。
電路部分520用于計算P多項式的系數(shù),它由存儲器512、乘法器522和加法器523組成。存儲器單元P(1)…P(11)的陣列除P(1)置為1之外其余初始化為0。已標到的-2cos(ωi)數(shù)值送入乘法器524,執(zhí)行卷積(1,-2cos(ωi),1),其中,1≤i≤5,1≤j≤2i+1,j<1時P(j)=0。電路部分520是雙份的(未示出),以便計算Q多項式的系數(shù)。得到的P(1)-P(11)和Q(1)-Q(11)新的最終值送給電路部分524。
電路524用來完成i=1至i=10的十個音調(diào)子幀LPC系數(shù)αi的計算。它由緩存器525和526、加法器527、528和529、除法器或位移位器530組成。最終值P(i)和Q(i)存儲在緩存器525和526中。P(i)和P(i+1)數(shù)值在加法器527中相加,而相應的Q(i)和Q(i+1)值在加法器528中相減,這里1≤i≤10。加法器527和528的輸出,分別為P(z)和Q(z),輸入加法器529,相加并輸出數(shù)值(P(z)+Q(z))。將各個位移動一位,從而將加法器的輸出除以2。各移位后的數(shù)值(P(z)+Q(z))/2是LPC系數(shù)αi輸出。音調(diào)子幀LPC系數(shù)送給圖7的音調(diào)檢索子系統(tǒng)220。
除了全速率之外,對選中速率所確定的各個碼書子幀,LSP頻率也經(jīng)過內(nèi)插。內(nèi)插的計算方式與音調(diào)子幀LSP內(nèi)插的相同。碼書子幀LSP內(nèi)插在碼書子幀LSP內(nèi)插子系統(tǒng)226中運算,并提供給LSP至LPC轉換子系統(tǒng)228,轉換是以類似于LSP至LPC轉換子系統(tǒng)218的方式進行的。
在參見圖3時討論過,音調(diào)檢索是一種利用合成技術的分析,通過選擇使輸入語音和合成語音的誤差最小的參數(shù)來進行編碼。在音調(diào)檢索中,語音是用等式(2)表示頻率特性的音調(diào)合成濾波器合成的。每隔20ms,語音幀被劃分成一定量的音調(diào)子幀,如前所述,它依賴于為該幀所選擇的數(shù)據(jù)速率。對于每一個音調(diào)子幀分別計算一次參數(shù)b和L,即音調(diào)增益和滯后。在這兒例示的執(zhí)行過程中,音調(diào)滯后L介于17和143之間的,在b=0的情況下,為了傳送原因L=16。
語音編碼器用到了在等式(1)中所列形式的感知噪聲加權濾波器。如前所述,感知加權濾波器的目的是給處在低能量的頻率中的錯誤加權,從而減少錯誤引起的噪聲的影響。感知加權濾波器是從以前建立的短期預測濾波器中導出的。在該加權濾波器以及后文將說明的共振峰合成濾波器中用到的LPC系數(shù)是為正在編碼的子幀適當?shù)貎?nèi)插過的數(shù)值。
在進行合成-分析操作時,在編碼器中用到語音譯碼器/合成器的備份。在語音編碼器中所用的合成濾波器的形式由等式(3)和(4)給出。等式(3)和(4)對應于一個其后有感知加權濾波器的譯碼語音合成濾波器,因而稱其為加權合成濾波器。
在假設當前幀時碼書基值為零,即G=0情況下,進行音調(diào)檢索。對于每個可能的音調(diào)滯后L進行語音合成,并將它與原始語音比較。輸入語音和合成語音之間的誤差在計算其均方誤差(MSE)之前由感知加權濾波器加權。其目的是從所有可能的L和b值中選取使感知加權語音和感知加權合成語音之間的誤差最小的L和b數(shù)值。誤差的最小化可以用下列等式表示MSE=1LPΣn=0Lp-1(x(n)-x′(n))2---(28)]]>其中,Lp是音調(diào)子幀中取樣的數(shù)量,在本實施例中,對全速率音調(diào)子幀為40。計算出使MSE最小的音調(diào)增益b。對所有允許的L數(shù)值重復這些運算,并給音調(diào)濾波器選擇產(chǎn)生最小MSE的L和b。
最佳音調(diào)滯后的計算涉及在n=-Lmax與n=(Lp-Lmin)-1之間所有時間下的共振峰余量(圖3中的P(n)),其中Lmax是最大音調(diào)滯后值,Lmin是最小音調(diào)滯后值,而Lp是選中速率下的音調(diào)子幀長度,n=0是音調(diào)子幀的起點。在本實施例中,Lmax=143,而Lmax=17。采用圖14中給出的編號方案,對于速率1/4,n=-143到n=142,而對于速率1/2,n=-143到n=62,對于速率1,n=-143到n=22。當n<0時,共振峰余量就是來自先前音調(diào)子幀的音調(diào)濾波器輸出,它保存在音調(diào)濾波器存儲器中,稱為閉環(huán)共振峰余量。在n>=0的時候,共振峰余量是共振峰分析濾波器的輸出,該濾波器具有濾波特性A(z),其輸入是當前分析幀語音取樣。在n>=0時,共振峰余量稱為開環(huán)共振峰余量,并且當音調(diào)濾波器和碼書在該子幀中作了極好的預測時,正好為P(n)。對于從相關的共振峰余量值計算出最佳音調(diào)滯后的說明將參照圖14-17給出。
音調(diào)檢索是對143個重建的閉環(huán)共振峰余量取樣P(n)(n<0)以及Lp-Lmin非量化開環(huán)共振峰余量取樣Po(n)(n≥0)作出的。該檢索有效地從一種基本開環(huán)檢索,其中L是小的,并且所用到的大部分余量取樣為n>0,逐漸轉變成一種基本閉環(huán)檢索,其中L是大的,因而用到的所有余量取樣是n<0。例如,在全速率下利用圖14中的編號方案,其中,音調(diào)子幀由40個語音取樣組成,則語音檢索從采用號碼n=-17到n=22的共振峰余量取樣組開始進行。在這一方案中,從n=-17到n=-1,取樣為閉環(huán)共振峰余量取樣,而從n=0到n=22,取樣為開環(huán)共振峰余量取樣。用于確定最佳音調(diào)滯后的下一組共振峰余量取樣是編號由n=-18到n=21的取樣。而從n=-18到n=-1,取樣是閉環(huán)共振峰余量取樣,從n=0到n=21,則是開環(huán)共振峰余量取樣。對所有取樣組進行該過程,直到給最后的共振峰余量取樣組n=-143至n=-104計算出音調(diào)滯后為止。
前面就等式(28)討論過,目的是在隨機碼書給出零基值(G=0)的情況下,對于所有可能的L和b值,使x(n)與x′(n)之間的誤差最小,這里x(n)是感知加權語音減去加權共振峰濾波器的零輸入特性曲線(ZIR),x′(n)是濾波器中無存儲時的感知加權合成語音。等式(28)可以重寫成關于b的等式MSE=1LPΣn=0Lp-1(x(n)-by(n))2---(29)]]>其中y(n)=h(n)*P(n-L)0≤n≤Lp-1 (30)其中,y(n)當b=1時是帶有音調(diào)滯后L的加權合成語音,而h(n)是具有等式(3)的濾波特性的加權共振峰合成濾波器的沖激響應。
該最小化過程等同于使EL值最大化,其中EL=(Exy)2Eyy---(31)]]>其中Exy=Σn=0Lp-1x(n)y(n)---(32)]]>及Eyy=Σn=0Lp-1y(n)y(n)---(33)]]>對于給定的L,最佳值b為bL=ExyEyy---(34)]]>這一檢索對所有允許的L值重復進行。最佳值b限制為正,因而,對于在檢索中導致任何負的Exy值的L值不作考慮。最后,選出使EL值最大的音調(diào)滯后L和音調(diào)增益b用于傳送。
如前所述,x(n)實際是輸入語音與加權共振峰濾波器的ZIR之間的感知加權差,這是因為,對于后面的等式(35)-(38)中設定的遞歸卷積,已假設濾波器A(z)總是從濾波器存儲器中的零起始。然而,濾波器從濾波器存儲器中的零起始并非實際情況。在合成時,濾波器處在從先前子幀保留下來的狀態(tài)下。在執(zhí)行過程中,在起始點,從感知加權語音中除去初始狀態(tài)的影響。在這種方式下,對每一L值,只需計算穩(wěn)態(tài)濾波器A(z)的特性曲線直到p(n),所有存儲器最初為0,并且可以用到遞歸卷積。x(n)的值只需計算一次,但是,共振峰濾波器對音調(diào)濾波器的輸出的零狀態(tài)響應y(n)要就每一滯后L進行計算。各y(n)的計算涉及許多次不必就每一滯后都進行的冗余乘法運算。下文中說明的遞歸卷積方法用于將所需計算減至最少。
關于遞歸卷積,數(shù)值yL(n)用y(n)值定義成yL(n)=h(n)*P(n-L) 17≤L≤143 (35)或yL(n)=h(i)p(n-L-i) 17≤L≤143 (36)從等式(32)和(33)可看出yL(o)=P(-L)h(o)(37)yL(n)=y(tǒng)L-1(n-1)+p(-L)h(n) 1≤n≤Lp,17≤L≤143(38)這樣,一旦完成y17(n)的初始卷積,余下的卷積就可以遞歸地進行,大大減少了所需的計算次數(shù)。對于速率1的上述特定例子,利用編號為n=-17到n=22的共振峰余量取樣組藉助等式(36)計算出數(shù)值y17(n)。
參見圖15,編碼器包括圖5譯碼器的備份,即圖7的譯碼器子系統(tǒng)235,但不帶自適應后置濾波器。在圖15中,音調(diào)合成濾波器550的輸入是碼書值c1(n)與碼書增益G的乘積。輸出的共振峰余量取樣p(n)輸入共振峰合成濾波器552,經(jīng)過濾波并作為重建語音取樣s′(n)輸出。在加法器554中,從對應的輸入語音取樣s(n)中減去重建語音取樣s′(n)。取樣s′(n)與s(n)之差輸入感知加權濾波器556。關于音調(diào)合成濾波器550、共振峰合成濾波器552和感知加權濾波器556,每一濾波器含有一個濾波器狀態(tài)記憶,其中Mp是音調(diào)合成濾波器550中的記憶;Ma是共振峰合成濾波器552中的記憶,而Mw是感知加權濾波器556中的記憶。
來自譯碼器子系統(tǒng)共振峰合成濾波器552的濾波器狀態(tài)Ma提供給圖7的音調(diào)檢索子系統(tǒng)220。在圖16中,濾波器狀態(tài)Ma用來計算濾波器560的零輸入響應(ZIR),濾波器560計算共振峰合成濾波器552的ZIR。在加法器562中從輸入語音取樣s(n)中減去計算出的ZIR值,其結果由感知加權濾波器564加權。感知加權濾波器564的輸出xp(n)用在等式(28)-(34)中作為加權輸入語音,其中,x(n)=xp(n)。
再參見圖14和15,圖14中示出的音調(diào)合成濾波器552輸出到自適應碼書568,后者基本上是一個存儲器,用于存儲如上文討論的那樣計算出的閉環(huán)和開環(huán)共振峰余量取樣。閉環(huán)共振峰余量存在存儲器部分570中,而開環(huán)共振峰余量存在存儲器部分572中。這些取樣按照前文討論過的編號方案存儲。如上文中討論的那樣,按照各音調(diào)滯后L檢索中的使用情況來組織閉環(huán)共振峰余量。開環(huán)共振峰余量用共振峰分析濾波器574從各音調(diào)子幀的輸入語音取樣中算出,濾波器574在計算po(n)值時用到譯碼器子系統(tǒng)共振峰濾波器552的記憶Ma。用于各當前音調(diào)子幀的Po(n)數(shù)值移位通過一系列延遲元件576,提供給自適應碼書568的存儲器部分572。開環(huán)共振峰余量被存儲起來,所產(chǎn)生的第一個余量取樣編號為0,而最后一個編號為142。
現(xiàn)參見圖16,共振峰濾波器的沖激響應h(n)在濾波器566中算出,并輸出給移位寄存器580。在濾波器中為每一音調(diào)子幀計算這些數(shù)值,這在上文中談到共振峰濾波器h(n)的沖激響應時,即談到等式(29)-(30)和(35)-(38)時討論過。為了進一步減少音調(diào)濾波器子系統(tǒng)的計算需求,共振峰濾波器h(n)的沖激響應截斷為20個取樣。
移位寄存器580及乘法器582、加法器584和移位寄存器586組合起來,如上文中討論的那樣,進行來自移位寄存器580的數(shù)值h(n)與來自自適應碼書568的數(shù)值c(m)之間的遞歸卷積。執(zhí)行這一卷積操作是為了在假定音調(diào)增益設為1的情況下尋找共振峰濾波器對來自音調(diào)濾波器存儲器的輸入的零狀態(tài)響應(ZSR)。在卷積電路的操作中,對每一m值,n從Lp循環(huán)至1,而m從(Lp-17)-1循環(huán)至-143。在寄存器586中,當n=1時數(shù)據(jù)不移動,而當n=Lp時不鎖存數(shù)據(jù)。當m≤-17時,數(shù)據(jù)提供為卷積電路的輸出。
繼卷積電路之后的是相關和比較電路,執(zhí)行檢索,以尋找最佳音調(diào)滯后L和音調(diào)增益b。相關電路亦稱為均方誤差(MSE)電路,計算ZSR與共振峰濾波器的ZIR和輸入語音即x(n)之間的感知加權差的自相關性和互相關性。利用這些數(shù)值,相關電路就每一音調(diào)滯后數(shù)值計算出最佳音調(diào)增益b的數(shù)值。相關電路由移位寄存器588、乘法器590和592、加法器594和596、寄存器598和600、除法器602組成。在相關電路中,計算是這樣進行的,即n從Lp循環(huán)至1,而m從(Lp-17)-1循環(huán)至-143。
相關電路之后是比較電路,它執(zhí)行數(shù)據(jù)比較和存儲,以確定音調(diào)滯后L和增益b的最佳值。比較電路由乘法器604、比較器606、寄存器608、610和612、量化器614組成。比較電路為每一音調(diào)子幀輸出使合成語音和輸入語音之間的誤差最小的L和b值。b的值由量化器614量化到8級,用一3位的數(shù)值表示,當L=16時導出一個附加級,b=0級。這些L和b值提供給碼書檢索子系統(tǒng)230和數(shù)據(jù)緩存器222。它們通過數(shù)據(jù)壓縮子系統(tǒng)238或數(shù)據(jù)緩存器222提供給譯碼器234,用于音調(diào)檢索。
類似于音調(diào)檢索,碼書檢索是一種由合成編碼系統(tǒng)進行的分析,在系統(tǒng)中,編碼是通過選取使輸入語音與用這些參數(shù)合成的語音之間的誤差最小的參數(shù)完成的。對于速率1/8,音調(diào)增益b設為零。
如前文中討論的那樣,每20ms分成多個碼書子幀,如前所述,它們依賴于為該幀所選取的數(shù)據(jù)速率。對每一碼書子幀分別計算一次參數(shù)G和I,即碼書增益和索引。在計算這些參數(shù)時,除了全速率之外,在碼書子幀LSP內(nèi)插子系統(tǒng)226中以類似于對音調(diào)子幀LSP內(nèi)插子系統(tǒng)216說明過的方式對該子幀進行LSP頻率內(nèi)插。對于每個碼書子幀,碼書子幀內(nèi)插LSP頻率也由LSP至LPC轉換子系統(tǒng)228轉換成LPC系數(shù)。碼書子幀計數(shù)器232用于跟蹤計算碼書參數(shù)的碼書子幀,計數(shù)器輸出提供給碼書子幀LSP內(nèi)插子系統(tǒng)226,用于碼書子幀LSP內(nèi)插。碼書子幀計數(shù)器232也提供一個輸出給音調(diào)子幀計數(shù)器224,顯示在選中速率下的碼書子幀的結束。
激勵碼書由2M個碼矢量組成,它們是依據(jù)一種單元變量白色高斯隨機序列而建立的。M=7時,碼書中有128個入口。碼書以某種遞歸方式組織,以使各個碼矢量與相鄰的碼矢量相差一個取樣,即一個碼矢量中的取樣移動一位,在一端移入一個新的取樣,而在另一端拋掉一個取樣。因而,一個遞歸碼書可以作為一個長2M+(Lc-1)的線性陣列存儲,其中,Lc是碼書子幀長度。然而,為了簡化執(zhí)行過程,和保存存儲器空間,采用2M個取樣長的循環(huán)碼書(128個取樣)。
為了減少計算量,碼書中的高斯數(shù)值的中心部分值被消除。這些數(shù)值最初選自方差為1的白色高斯過程。然后,將小于1.2的數(shù)值設為零。這有效地將大約75%的數(shù)值設置成零,產(chǎn)生一個脈沖碼書。碼書的中心削除將在碼書檢索中執(zhí)行遞歸卷積所需的計算量降低到1/4,因為對零無須進行計算。用在當前執(zhí)行過程中的碼書在下面的表VII中給出。
表VII0x0000 0x0000 0x0000 0x0000 0x2afe 0x0000 0x0000 0x00000x41da 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x00000x0000 0x0000 0x0000 0x0000 0x0000 0x3bb3 0x0000 0x363e0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x417d 0x00000x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x00000x0000 0x0000 0x0000 0x0000 0x0000 0x9dfe 0x0000 0x00000x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x00000x0000 0xc58a 0x0000 0x0000 0x0000 0x0000 0x0000 0x00000x0000 0xc8db 0xd365 0x0000 0x0000 0xd6a8 0x0000 0x00000x0000 0x3e53 0x0000 0x0000 0xd5ed 0x0000 0x0000 0x00000xd08b 0x0000 0x0000 0x0000 0x0000 0x3d14 0x396a 0x00000x0000 0x0000 0x0000 0x0000 0x0000 0x4ee7 0xd7ca 0x00000x0000 0x438c 0x0000 0x0000 0xad49 0x30b1 0x0000 0x00000x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x00000x0000 0x0000 0x3fcd 0x0000 0x0000 0xd187 0x2e16 0xd09b0xcd8d 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x32ff又語音編碼器采用包括公式(3)給出形式的加權合成濾波器在內(nèi)的公式(1)給出形式的感知噪聲加權濾波器。對于各個碼書指數(shù)I,合成語音并與原來的語音比較。在計算出其MSE前誤差由感知加權濾波器加權。
如前所述,目的是使X(n)和X′(n)之間的誤差在I和G的所有可能值上為極小。該誤差的極小化可以由下面公式表示MSE=1LcΣn=0Lc-1(X(n)-X′(n))2---(39)]]>這里Lc是碼書子幀中的樣本數(shù)。這里對于G公式(38)可改寫MSE=1LcΣn=0Lc-1(X(n)-GY(n))2---(40)]]>這里Y是通過用第1碼矢量并假定G=1卷積共振峰主頻成分濾波器的沖激響應而得到的。使該MSE極小轉而等效于使大E1=(Exy)2Eyy---(41)]]>為極大,這里Exy=Σn=0Lc-1X(n)Y(n)---(42)]]>和Eyy=Σn=0Lc-1y(n)Y(n)---(43)]]>根據(jù)下面的公式得到對于所給的I最優(yōu)的G,G1=ExyEyy]]>對于I的所有允許值重復這檢索。與音調(diào)檢索相反,該最優(yōu)增益G允許為正值或負值。最后使E1極大的指數(shù)I,和碼書增益G被選擇用于傳送。
還應注意加權音調(diào)和共振峰主頻成分的濾波器的ZIR跟輸入語音之間的感知加權差值X(n)僅需計算一次。而對于各個碼矢量的音調(diào)和共振峰主頻成分濾波器的零狀態(tài)響應需對于各個指數(shù)I來計算。由于采用循環(huán)碼書,用于音調(diào)檢索的所述遞歸卷積方法可用來使所需的計算量為最小。
再參見圖15,編碼器包括與圖5中的譯碼器一樣的即圖7的譯碼器子系統(tǒng)在此計算出濾波器狀態(tài)。其中Mp是在音調(diào)合成濾波器550中的記憶,Ma是在共振峰合成濾波器552中的記憶;Mw是在感知加權濾波器中的記憶。
分別來自譯碼器子系統(tǒng)的音調(diào)合成和共振峰濾波器的濾波器狀態(tài)Mp和Ma送給圖7的碼書檢索子系統(tǒng)230。在圖17中濾波器狀態(tài)Mp和Ma送給零沖激響應(ZIR)濾波器620以計算音調(diào)和共振峰合成濾波器550和552的ZIR。在加法器622中從所輸入的輸入語音樣值S(n)減去計算出的音調(diào)和共振峰濾波器的ZIR,該結果由感知加權濾波器加權。感知加權濾波器的輸出Xc(n)用作上面的MSE公式(39)-(44)中的加權了的輸入語音則X(n)=Xc(n)。
圖17,在濾波器626中計算共振峰濾波器的沖激響應h(n)并輸出至移位寄存器628。對于各個碼書子幀計算共振峰濾波器的沖激響應h(n)。為進一步減少所需的計算量,該共振峰濾波器的沖激響應h(n)截取20個樣本。
移位寄存器628隨同乘法器630、加法器632和移位寄存器634一起進行來自移位寄存器628的值h(n)與來自于如上所述含有碼書矢量的碼書636的值c(m)間的遞歸卷積。假定碼書增量為1,進行這卷積運算以對各個碼矢量尋找共振峰濾波器的零狀態(tài)響應。該卷積電路的運行,對于每個m,n從Lc到1循環(huán),而m則從1到256循環(huán)。在寄存器586中當n=1數(shù)據(jù)不送出而當n=Lc數(shù)據(jù)不鎖存。當m≤1數(shù)據(jù)才作為該卷積電路的輸出給出。應該注意的是在開始緊接在卷積電路后的相關與比較電路前必須起動卷積電路以通過循環(huán)m子幀大小次數(shù)進行遞歸卷積運算。
該相關與比較電路進行實際的碼書檢索產(chǎn)生碼書指數(shù)I值和碼書增益G值。該相關電路除了被作為均方差(MSE)電路借用以外,還由音調(diào)與共振峰濾波器的ZIR跟輸入語音X′(n)之間的感知加權差值來計算ZSR的自相關和互相關。換句話說該相關電路對碼書指數(shù)I的各個值計算碼書增益G。該相關電路包括移位寄存器638,乘法器640和642,加法器644和646,寄存器648和650,和除法器652。在相關電路中計算是n從Lc到1循環(huán)而m從1到256循環(huán)的。
接在相關電路后的比較電路為確定碼書指數(shù)I和增益G的最優(yōu)值進行數(shù)據(jù)的比較和存儲。該比較電路包括乘法器654,比較器656,寄存器658、660和662,和量化器664。該比較電路為各個碼書子幀提供使合成語音與輸入語音之間的誤差為極小的I和G的值。該碼書增益G在量化器614中量化,DPCM在量化期間以類似于參考圖12所述的偏置消除的LSP頻率量化和編碼對該值編碼。這些I和G值然后送給數(shù)據(jù)緩沖器222。
在量化和該碼書的DPCM編碼中增益G是按照下面的公式計算的。
量化后的Gi=20logGi-0.45(20logGi-1+20logGi-2)(45)這里20logGi-1和20logGi-2分別是對前一幀(i-1)和再前一幀(i-2)計算出的值。
該LSP、I、G、L和b值隨同速率送到數(shù)據(jù)壓縮子系統(tǒng)236以安排這數(shù)據(jù)用于傳輸。在一項實施中該LSP、I、G、L和b值隨同速率可經(jīng)數(shù)據(jù)壓縮子系統(tǒng)236送給譯碼器234。在另一項實施中這些數(shù)據(jù)可經(jīng)數(shù)據(jù)緩沖器222送給譯碼器234以用于音調(diào)檢索。而在較佳實施例中在數(shù)據(jù)壓縮子系統(tǒng)236中所采用的對碼書符號位的保護會影響碼書指數(shù)。所以I和G數(shù)據(jù)直接從數(shù)據(jù)緩沖器222送出時必須考慮到該保護。
在數(shù)據(jù)壓縮子系統(tǒng)236中數(shù)據(jù)可根據(jù)各種傳輸格式壓縮。圖18示出數(shù)據(jù)壓縮子系統(tǒng)236的功能單元的說明性實施例。數(shù)據(jù)壓縮子系統(tǒng)236包括偽隨機數(shù)發(fā)生器(PN)670,循環(huán)冗余校驗(CRC),計算單元672,數(shù)據(jù)保護邏輯674和數(shù)據(jù)組合器676。PN發(fā)生器670接收速率并對八分之一速率產(chǎn)生一4位的隨機數(shù)送給數(shù)據(jù)組合器676。CRC單元672接收碼書增益和LPS值以及速率,并對全速率產(chǎn)生一11位內(nèi)部CRC碼送到數(shù)據(jù)組合器676。
數(shù)據(jù)組合器676接收該隨機數(shù),CRC碼,以及來自數(shù)據(jù)緩沖器222(圖7b)的速率和LSP、I、G、L和b值將輸出送到傳輸信道數(shù)據(jù)處理子系統(tǒng)234。在該項實施中數(shù)據(jù)以最小量直接從數(shù)據(jù)緩沖器222送到譯碼器234則PN發(fā)生器4位數(shù)則從PN發(fā)生器670經(jīng)數(shù)據(jù)組合器676送到譯碼器234,在全速率時包括CRC位在內(nèi)隨同幀數(shù)據(jù)作為從數(shù)據(jù)組合器674的輸出,而在八分之一速率該碼書指數(shù)丟下并由隨機4位數(shù)取代。
在該例示實施例中最好向碼書增益符號位提供保護。對該位的保護會使聲碼器的譯碼器對在該位的單個位的誤碼不敏感。如果因一個未檢出的誤碼而使該符號位改變,該碼書指數(shù)就會指向與最優(yōu)值不相關的矢量。在誤碼情況下沒有保護,就會選取該最優(yōu)矢量的相反量,實質上為所要采用的可能矢量的最差矢量。這里所采用的保護方案確保增益符號位中的單個位誤碼不會使該最優(yōu)矢量的相反量在該誤碼情況下被選用。數(shù)據(jù)保護邏輯674接收該碼書指數(shù)和增益并檢查該增益值的符號位。若確定出增益值符號位是相反的對相關聯(lián)的碼書指數(shù)加該值89,取模128。該碼書指數(shù)不論是否修改都從數(shù)據(jù)保護邏輯674輸出到數(shù)據(jù)組合器676。
在該例示實施例中最好在全速時例如由一內(nèi)部CRC(循環(huán)冗余校驗)保護所壓縮的話音包數(shù)據(jù)在感覺上最敏感的位。11特殊位被用來進行可校正所保護的任何單個誤碼的這種誤碼校驗功能。所保護的塊包括10個LSP頻率的最重要位和8個碼書增益值的最重要位。若在該塊中出現(xiàn)無法校正的誤碼,該包則被廢棄并標明下面述及的消除記錄。否則該音調(diào)增益設為0而余下的參數(shù)仍用收到的值。在例示實施例中讓一生成多項式g(X)=1+X3+X5+X6+X8+X9+X10產(chǎn)生一(31,21)循環(huán)碼來選出循環(huán)碼。但應注意的是也可用其他生成多項式。附加一總的奇偶校驗位使它為-(32,21)碼。既然僅有18個信息位,則該碼字中的前3位置零并且未被傳輸。該項技術提供附加的保護,這樣若校正子表明在這些位置有誤碼,這就意味著有無法校正的誤碼。系統(tǒng)地對循環(huán)碼的編碼涉及當X10μ(X)模g(X)奇偶校驗位的計算則μ(X)是信息多項式。
在譯碼結束時,該校正子是用g(X)除所接收到的矢量計算得出的余數(shù)。若該校正子未顯示有誤碼,則不論總的奇偶校驗位的狀態(tài)均接收該包。若該校正子顯示有單個誤碼,若未對總的奇偶校驗位的狀態(tài)檢查則該誤碼被校正若該校正子顯示有多于一個的誤碼,則該包被廢棄。關于這些誤碼防護方案的更詳細內(nèi)容可在林和科斯特羅的“誤碼控制編碼基礎及應用”4.5節(jié)中校正子計算的詳細內(nèi)容中找到。
在CDMA蜂窩式電話系統(tǒng)實施中為在20秒數(shù)據(jù)傳送幀內(nèi)傳送將數(shù)據(jù)從數(shù)據(jù)組合器674送到傳輸信道數(shù)據(jù)處理子系統(tǒng)238用于數(shù)據(jù)壓縮。在其中聲碼器設定為全速率的傳輸幀中,由于有效位速率為9.6Kbps故傳輸192位。本例中的傳輸幀包括1位用以指示混合幀形式(0=僅為話音,1=話音和數(shù)據(jù)/信號碼)的混合方式位;160位聲碼器數(shù)據(jù)隨同11位內(nèi)部CRC位;12位外部或幀CRC位;和8位尾部位或嵌入位。在半速率時,由于4.8Kbps的有效位速率故傳送80位聲碼器數(shù)據(jù)位以及8位幀CRC位和8位尾部位。在四分之一速率時,由于2.4Kbps的有效位速率故傳送40位聲碼器數(shù)據(jù)位以及8位尾部位。最后在八分之一速率時,由于1.2Kbps的有效位速率故傳送16位聲碼器數(shù)據(jù)位以及8位尾部位。
要應用本發(fā)明聲碼器的CDMA系統(tǒng)中所采用的調(diào)制的更詳細細節(jié)在1990年6月25日申請的申請?zhí)枮?7/543,496,轉讓給本發(fā)明的受讓人的題為“用于產(chǎn)生CDMA蜂窩式電話系統(tǒng)中信號波形的系統(tǒng)和方法”的共同待批專利申請中揭示。在這種系統(tǒng)中在不是全速率的速率時采用了數(shù)據(jù)位組織成位組而位組偽隨機地置于20ms的數(shù)據(jù)傳送幀中的方案。應該理解除了那些用于這里對聲碼器和CDMA系統(tǒng)實施作說明的還可現(xiàn)成地采用其他幀速率和位表示,這樣別的實施例可用于聲碼器和其他系統(tǒng)的應用。
在CDMA系統(tǒng)與也適用的其他子系統(tǒng)中,以一幀接一幀為基礎的處理子系統(tǒng)238可中斷聲碼器數(shù)據(jù)的傳輸以傳輸諸如信號碼數(shù)據(jù)或其他非語音數(shù)據(jù)之類的其他數(shù)據(jù)。傳輸情況的這種特殊形式是指“間隔和突發(fā)”。處理器子系統(tǒng)238必須用在該幀所要傳輸?shù)臄?shù)據(jù)取代該聲碼器數(shù)據(jù)。
會出現(xiàn)另一種情況人們希望在同一數(shù)據(jù)傳輸幀期間傳輸聲碼器數(shù)據(jù)和其他數(shù)據(jù)。傳輸情況的這種特殊形式是指“遲緩和突發(fā)”。在“遲緩和突發(fā)”傳輸中,該聲碼器沒有速率約束指令以設定聲碼器最終速率在所需要的速率上,例如半速率。該半速率編碼的聲碼器數(shù)據(jù)送給處理器子系統(tǒng)238而為該數(shù)據(jù)傳輸幀插入隨同聲碼數(shù)據(jù)的附加數(shù)據(jù)。
提供給全雙工電話線路的另一個附加功能是速率聯(lián)鎖。若線路的一個方向以最高的傳輸速率傳輸,那么上線路的另一個方向則被迫以最低的速率傳輸。甚至以最低速率,對于主動談話者有足夠的理解以意識到他正被打斷和要停止談話是可行的,藉此允許該線路別的方向估計主動談話者一方。而且若主動談話者在企圖中斷時繼續(xù)談話,因為他自己的語音干擾了感覺質量的能力也可能會未感覺出質量的降級。該聲碼器還能通過采用速率限制指令設定成以低于通常速率的速率對話音進行聲音編碼。
應該理解當在CDMA系統(tǒng)中需要額外的容量時該速率限制指令可設定該聲碼器最大速率低于全速率。在其中公共頻譜用于傳輸?shù)腃DMA系統(tǒng)中某用戶信號會對該系統(tǒng)中的別的用戶有干擾。系統(tǒng)用戶容量因而由系統(tǒng)用戶引起的總干擾所限制。隨著干擾水平的上升,通常是由于在該系統(tǒng)中的用戶的增長,由于干擾的增加用戶體驗到質量的降級。
各個用戶對CDMA系統(tǒng)的干擾的貢獻是用戶傳輸數(shù)據(jù)速率的函數(shù)。通過設定聲碼器以低于通常的速率對語音編碼,該編碼數(shù)據(jù)隨后以相應降低的數(shù)據(jù)速率傳輸,以降低由該用戶所引起的干擾的水平。所以通過以較低速率對語音進行聲音編碼系統(tǒng)容量會得到實質性的提高。隨著系統(tǒng)的需求上升,可由系統(tǒng)管理機或蜂窩基地站指令用戶聲碼器降低編碼速率。本發(fā)明的聲碼器具有一種良好的質量,語音以全速和半速編碼時雖然兩者可感覺有些差異但量很小。因而語音以例如半速率的較低速率進行聲音編碼對系統(tǒng)用戶間的通信質量的后果不及因系統(tǒng)用戶數(shù)量的上升所引起的干擾水平的上升所帶來的后果嚴重。
因而可采用各種方案為低于通常的聲音編碼的速率來設定各自的聲音編碼器速率界限。例如可指令在蜂窩中的所有用戶以半速率對語音編碼。這種辦法實質上以很小的用戶間通信質量的損失降低系統(tǒng)的干擾,而為額外客戶在容量上提供實質的增長。直到由額外用戶引起的系統(tǒng)的總干擾量上升到降級水平故而不會對用戶間的通信質量形成沖擊。
如前所述,為實現(xiàn)對語音樣本幀編碼的分析一合成技術該編碼器包括一個與譯碼器相同的復本如圖7所示,譯碼器234接收經(jīng)過數(shù)據(jù)壓縮子系統(tǒng)238或數(shù)據(jù)緩沖器222的L,b,I和G值以重建合成的語音來與輸入語音比較。譯碼器的輸出如前所述為Mp,Ma和Mw值。用于編碼器和在傳輸信道另一端重建合成語音的譯碼器234的更詳細細節(jié)可參見圖19-24說明。
圖19是本發(fā)明譯碼器例示性實施例的流程圖。在編碼器中和在接收機中所實施的譯碼器具有共同的結構,因而這些實施例在一起說明。對圖19的說明主要針對在傳輸信道一端的譯碼器,因為在那里接收到的數(shù)據(jù)必須在譯碼器中預處理正象在編碼器的譯碼器中直接從數(shù)據(jù)壓縮子系統(tǒng)238或數(shù)據(jù)緩沖器222收到合適數(shù)據(jù)(速率,I,G,L和b)。不過對于實施編碼器和譯碼器來說譯碼器的基本功能是相同的。
如前面參見圖5所討論的那樣,對各個碼書子幀由該碼書指數(shù)I所規(guī)定的碼書矢量是從存儲的碼書中檢索出的。該矢量以該碼書增益G隨后對每音調(diào)子幀由音調(diào)濾波器濾波產(chǎn)生共振峰余量。該共振峰余量由共振峰濾波器濾波隨后通過一自適應共振峰后置濾波器和一清晰度后置濾波器,以及自動增益控制(AGC)以產(chǎn)生輸出語音信號。
盡管碼書和音調(diào)子幀的長度是變化的,為方便實施在40樣本塊中進行譯碼。所收到的壓縮數(shù)據(jù)首先被分解成碼書增益,碼書指數(shù),音調(diào)增益,音調(diào)滯后和LSP頻率。該LSP頻率如參見圖22所說明的那樣必須經(jīng)他們各自的逆向量化器和DPCM譯碼器處理。類似地碼書增益值除了沒有偏置必須以與LSP頻率相似的方式處理。音調(diào)增益值也被逆向量化。這些參數(shù)隨后送給各個譯碼子幀。在各個譯碼子幀中,2套碼書參數(shù)(G和I),1套音調(diào)參數(shù)(b和I)和一套LPC系數(shù)需產(chǎn)生40個輸出樣本。圖20和21對于各種速度和其他幀狀況示出例示性子幀譯碼參數(shù)。
對于全速率幀,有8套收到的碼書參數(shù)和4套收到的音調(diào)參數(shù)。LSP頻率被內(nèi)插4次產(chǎn)生4套LSP頻率。所收到的參數(shù)和相應的子幀信息列于圖20a中。
對于半速率幀,4套收到碼書參數(shù)的各套重復一次,2套收到的音調(diào)參數(shù)的各套重復一次。LSP頻率被內(nèi)插3次產(chǎn)生4套LSP頻率。所收到的參數(shù)和相應的子幀信息列于圖20b中。
對于四分之一速率幀,2套收到的碼書參數(shù)的各套重復4次,該套音調(diào)參數(shù)也被重復4次。LSP頻率被內(nèi)插一次產(chǎn)生2套LSP頻率。所收到的參數(shù)和相應的子幀信息列于圖20c中。
對于八分之一速率幀,該套收到的碼書參數(shù)用于整個幀。音調(diào)參數(shù)對于八分之一速率未給出且該音調(diào)增益簡單地設為零。該LSP頻率內(nèi)插1次產(chǎn)生1套LSP頻率。所收到的參數(shù)和相應的子幀信息列于圖20d中。
有時,話音包可按序空出讓CDMA單元或移動臺傳輸信號碼信息。當聲碼器收到一空白幀,它繼續(xù)對前一幀參數(shù)作較小的改動。碼書增益設為零。前一幀的音調(diào)滯后和增益用于當前幀的音調(diào)滯后和增益,除非該增益被限定成某值或更小。就像沒有內(nèi)插而用前一幀的LSP頻率。注意編碼端和譯碼端一直被同步且聲碼器能很快從一空白幀復原。所收到的參數(shù)和相應的子幀信息列于圖21a。
在因信道差錯而丟失一幀的情況下,該聲碼器試圖通過保持前一幀的能量部分且平滑地過渡到背景噪聲來屏蔽該差錯。在該例中音調(diào)增益設成零;通過用前一幀的碼書指數(shù)加89選取一隨機碼書;碼書增益則是前一子幀的碼書增益的0.7倍。應該注意的是數(shù)89沒有什么特別的東西,這只是選取偽隨機碼書矢量的通常方法。該前一幀的LSP頻率被迫向他們偏置值衰落為ωi=0.9(前面的ωi-ωi的偏置值)+ωi的偏置值(47)該LSP頻率偏置值在表5中示出。所收到的數(shù)據(jù)和相應的子幀信息列于圖21b中。
若在接收機中未能確定出速率,該包被廢棄并標上消除記錄。然而若接收機確定有很大可能該幀是以全速率傳輸?shù)?,盡管帶有差錯仍進行下面的過程。如前所述在全速率時該壓縮的話音包數(shù)據(jù)的感覺上最敏感的位由內(nèi)部CRC保護。在譯碼端正如接收到的矢量除以來自公式(46)的g(X)而得出余式那樣計算出校正子。若校正子顯示無誤碼,則不論總的奇偶校驗位而接收該包。若該校正子顯示單個誤碼,若總的奇偶校驗位不檢查該誤碼被校正。若該校正子顯示多于一個誤碼。該包則被廢棄。若在該塊中出現(xiàn)無法校正的誤碼,該包被廢棄且標明消除記錄。否則該音調(diào)增益被置零而其余的參數(shù)如圖21c所示隨著校碼被接收而被采用。
本實施例中所采用的后置濾波器首先在J.H.陳等人的“用自適應后置濾波以4800BPS實時向量APC語言編碼”(Proc.ICASSP,1987)中揭示。既然語音共振峰主頻成分比起頻譜凹谷在感覺上更為重要,該后置濾波器促使該共振峰主頻成分稍微提升以改善該編碼語音的感性質量。通過相對于原來的徑向地對共振峰主頻成分的極點定標來進行。然而全極點后置濾波器通常引入頻譜傾斜而導致濾波后的語音消音。通過增加具有與極點相同相位角而較小直徑的零點來減少該全極點后置濾波器的頻率的傾斜,從而后置濾波器具有形式H(z)=A(z/ρ)A(z/σ)0<ρ<σ<1---(48)]]>這里A(z)是共振峰主頻成分預測濾波器,且ρ和σ值為后置濾波器定標因數(shù)這里ρ設為0.5,σ設為0.8。
加上一自適應清晰度濾波器就能進一步補償由該共振峰主頻成分后置濾波器引進的頻譜傾斜。該清晰度濾波器具有形式B(z)=1-KZ-11-KZ-1---(49)]]>
這里K值(分接濾波器的系數(shù))由與A(z)的頻譜傾斜中的變化相近似的LSP頻率平均值確定。
為避免因后置濾波器引起的任何大的增益漂移,采用AGC環(huán)路對語音輸出定標使它具有與未后置濾波的語音近乎相同的能量。通過用40個濾波器輸出樣本的平方和除40個濾波器輸入樣本的平方和來實現(xiàn)增益控制以獲得反向濾波器增益。隨后使該增益因數(shù)的平方根平滑平滑后的p=0.2當前β+0.98前一個然后濾波器輸出乘以該平滑后反向增益以產(chǎn)生輸出語音。
在圖19中來自信道的數(shù)據(jù)以及隨同數(shù)據(jù)傳輸或由其他裝置得到的速率被送給數(shù)據(jù)壓縮子系統(tǒng)700。在一個CDMA系統(tǒng)的實施例中當以各種不同速率進行譯碼時就可從所收到的數(shù)據(jù)的誤碼率來得到速度判定。在數(shù)據(jù)分解子系統(tǒng)700中,在全速率時對差錯進行CRC檢碼因而該檢碼送到子幀數(shù)據(jù)分解子系統(tǒng)702。子系統(tǒng)700將諸如空白幀,消除幀或具有可用數(shù)據(jù)的差錯幀之類異常幀狀況的標志送到子系統(tǒng)702。子系統(tǒng)700將對于該幀的速率以及I,G,L,和b參數(shù)送到子系統(tǒng)702。在提供碼書指數(shù)I和增益G值時,該增益值的符號位在子系統(tǒng)702中被檢碼。若符號位相反,從關聯(lián)的碼書指數(shù)減去值89,取模(mod)128。而且在子系統(tǒng)中該碼書增益被反向量化且DPCM編碼,同時音調(diào)增益被反向量化。
子系統(tǒng)700還將速率與LSP頻率送到LSP反向量化/內(nèi)插子系統(tǒng)704。子系統(tǒng)700還將空白幀、消除幀或有可用數(shù)據(jù)的差錯幀的標志送到子系統(tǒng)704。編碼子幀計數(shù)器706將子幀計數(shù)值i和j的標志送到子系統(tǒng)702和704。
在子系統(tǒng)704中該LSP頻率被反向量化和內(nèi)插。圖22示出子系統(tǒng)704的反向量化部分的實施例,而該內(nèi)插部分與參見圖12說明的那種在實質上是相同的。在圖22中,子系統(tǒng)704的反向量化部分包括反向量化器750,它與圖12中的反向量化器468結構相同且以相似方式工作。反向量化器750的輸出作為輸入送到加法器752。加法器752的其他輸入則由乘法器754的輸出提供。加法器752的輸出送給寄存器756存儲并輸出在乘法器754與常數(shù)0.9相乘。加法器752的輸出回被送到加法器758將偏置值加回給LSP頻率。由邏輯760確保LSP頻率的序列使LSP頻率具有最小間隔。除非在傳輸中出現(xiàn)差錯一般不會出現(xiàn)強迫分隔的需要。該LSP頻率如參見圖13和參見圖20a-20d和21a-21c說明的那樣是內(nèi)插值。
再參見圖19,存儲器706與子系統(tǒng)704連接存儲前一幀LSPs,ωi,f-1,還可用來存儲偏置值bwi。這些前一幀值對于所有速率都用于內(nèi)插。在空白幀,消除幀或有可用數(shù)據(jù)的差錯幀的情況下,按照圖21a-21c中的表應用前一幀的LSPs,ωi,ωi,f-1。響應來自子系統(tǒng)700的空白幀標志,子系統(tǒng)704檢取出存于存儲器708的前一幀LSP頻率用于當前幀。響應消除幀標志,子系統(tǒng)704隨同偏置值再從存儲器708檢取出前一幀LSP頻率以如上所述計算當前幀的LSP頻率。在進行該計算時,在一加法器中從前一幀LSP頻率減去所存儲的偏置值,該結果在一乘法器中乘以常數(shù)值0.9,其結果在一加法器中加到所存儲的偏置值。響應具有可用數(shù)據(jù)的差錯幀標志,對于全速率若CRC通過該LSP頻率就被內(nèi)插。
該LSPs送到LSP至LPC轉換子系統(tǒng)710將LSP頻率變換回LPC值。子系統(tǒng)710實質上與圖7的LSP至LPC轉換子系統(tǒng)218和228相同并如參見圖13說明的那樣。該LPC系數(shù)αi隨后送給共振峰主頻成分濾波器714和共振峰主頻成分后置濾波器716。該LSP頻率在LSP平均值子系統(tǒng)還在子幀上取平均并作為值K送給自適應清晰度濾波器718。
子系統(tǒng)702隨同速率或異常幀狀態(tài)標志從子系統(tǒng)700接收該幀的參數(shù)I、G、L和b。子系統(tǒng)702還從子幀計數(shù)器收到對于各個譯碼子幀1-4中的每個i計數(shù)的j計數(shù)。子系統(tǒng)702還連接存儲器720以存儲用于異常幀狀態(tài)的G,I,L和b的前一幀值。子系統(tǒng)702處于正常幀狀態(tài),除去八分之一速率,要將碼書指數(shù)值Ij送到碼書722;將碼書增益Gj送到乘法器724,音調(diào)滯后L和增益b值按照20a-20d送到音調(diào)濾波器726。對于八分之一速率,由于所送的碼書指數(shù)沒有值,對于八分之一速率,由于所送的碼書指數(shù)沒有值,對于八分之一速率是16位參數(shù)值的包種籽隨同度標志送到碼書722。在異常幀狀態(tài)子系統(tǒng)702按照圖21a-21c提供這些數(shù)據(jù)。而且對于八分之一速率,如參見圖23所說明的那樣向碼書722提供標志。
響應來自子系統(tǒng)700的空白幀標志,子系統(tǒng)702檢取出存在存儲器中的前一幀音調(diào)滯后L值和增益b值除了該增益限制為某值或小些,以用于當前幀的譯碼子幀。而且未提供碼書指數(shù)I且碼書增益G被設為零。響應消除幀標志,子系統(tǒng)702再從存儲器720檢取出前一幀子幀碼書指數(shù)并在加法器加89的值。該前一幀子幀碼書增益在乘法器乘以常數(shù)0.7以產(chǎn)生各自子幀的G值。未提供音調(diào)滯后值并將音調(diào)增益置零。響應具有可用數(shù)據(jù)的差錯幀標志,當在全速率幀中假使CRC通過就運用碼書指數(shù)和增益,而不提供音調(diào)滯后值且音調(diào)增益置零。
如參考分析-合成技術中的編碼器的譯碼器所說明的那樣,該碼書指數(shù)I用作該碼書值的起動地址以向乘法器724輸出。該碼書增益值在乘法器724乘以來自碼書722的輸出值該結果送到音調(diào)濾波器726。音調(diào)濾波器用輸入的音調(diào)滯后L值和增益b值以產(chǎn)生輸出給共振峰主頻成分濾波器714的共振峰主頻成分余量。在共振峰主頻成分濾波器714 LPC系數(shù)用來對共振峰主頻成分余量濾波以重建語音。在接收端的譯碼器重建語音進一步由共振峰主頻成分后置濾波器716和自適應清晰度濾波器718濾波。在共振峰主頻成分濾波器714和共振峰主頻成分后置濾波器716的輸出采用AGC回路,其輸出在乘法器730中乘以自適應清晰度濾波器718的輸出。乘法器730輸出的重建語音利用熟知技術變換成模擬形式并送給聽眾。在編碼器的譯碼器中,為更新它的記憶,在輸出端設置感知加權濾波器。
參見圖22,說明實施譯碼器本身的更詳細節(jié)。在圖22中碼書722包括與參見圖17所說明的那種相類似的存儲器750。然而為便于說明,對于存儲器75。說明稍有差異的方法并在圖22中示出其編址。碼書722還包括開關752,多路轉換器753和偽隨機數(shù)發(fā)生器(PN)754。開關752如參見圖17說明的那樣響應該碼書指數(shù)以指向存儲器750的指數(shù)地址位置。存儲器750是有開關752指向起始記憶位置的循環(huán)存儲器,數(shù)值移過存儲器而輸出。該碼書數(shù)值經(jīng)開關752從存儲器750輸出作為多路轉換器753的輸入。多路轉換器753響應全速率,半速率和四分之一速率以將經(jīng)開關752提供的數(shù)值送到碼書增益放大器,乘法器724。多路轉換器753還響應八分之一速率標志以選取PN發(fā)生器754的輸出使碼書722的輸出送到乘法器724。
為維持在CELP編碼的高話音質量,編碼器和譯碼器必須有相同數(shù)值存儲在他們的內(nèi)部濾波器存儲器中。這可通過傳輸碼書指數(shù)進行,使譯碼器和編碼器的濾波器由數(shù)值的相同序列激勵。而對高話音質量這些序列包括大多數(shù)零,并有一些尖峰分布其間。這種激勵方式對于對背景噪聲編碼不是最優(yōu)的。
在對背景噪聲的編碼中,以最低速率進行,可實現(xiàn)偽隨機序列激勵濾波器。為確保該濾波器存儲器在編碼器和譯碼器中的相同,這兩個偽隨機序列必須相同。不管怎樣必須傳輸種籽到接收機譯碼器。既然沒有額外的位可用以送該種籽,所傳輸包位可用作種籽,似乎它們構成一個數(shù)。該技術可進行是因為是以低速率用完全相同CELP分析合成結構來確定碼書增益和指數(shù)的。差異是該碼書指數(shù)被扔掉而編碼器的濾波器存儲器用一偽隨機序列來更新。因而分析完后可確定出用于激勵的種籽。為確保包本身不在一套位模式周期地循環(huán),在該八分之一速率的包中插入4位隨機位來取代該碼書指數(shù)值。因此該包種籽是如圖2所見到的16位數(shù)據(jù)。
NP發(fā)生器754用熟知技術構筑并可由各種算法實施。在例示性實施例中所采用的算法其本質在保羅·門恩的文章“DSP片采用已證明的算法可產(chǎn)生隨機數(shù)”(EDN,1991,1,21)中說明。所傳輸?shù)奈话脕懋a(chǎn)生序列的種籽(來自圖18中的子系統(tǒng)700)。在一實施例中種籽乘以數(shù)值521且加上數(shù)值259。從這合成數(shù)值的最不重要的位用來作為有符號的16位數(shù)。該數(shù)值隨后用作產(chǎn)生下一碼書數(shù)值的種籽。由PN發(fā)生器產(chǎn)生的序列被歸一化而具有1的方差。
從碼書722輸出的各個數(shù)值在乘法器724中乘以如在譯碼子幀期間所提供的碼書增益G。該數(shù)值作為輸入送給音調(diào)濾波器726的加法器756。音調(diào)濾波器726還包括乘法器758和存儲器760。該音調(diào)滯后L確定存儲器760分接位置被輸出給乘法器758。該存儲器760的輸出在乘法器758中乘以音調(diào)增益值b,結果輸出給加法器756。加法器756的輸出送到存儲器760的輸入端,它是諸如移位寄存器的一系列的延時單元。該數(shù)值經(jīng)存儲器760移出(沿箭頭所指方向)且如L值所確定那樣在所選取的分接輸出端給出。既然該值經(jīng)存儲器760移出,比143移出值更老的值被廢棄。加法器756的輸出還作為輸入送到共振峰主頻成分濾波器714。
加法器756的輸出送到共振峰主頻成分濾波器714的加法器762的一個輸入端。共振峰主頻成分濾波器還包括乘法器764a-764j的存儲單位和存儲器766。該加法器762的輸出作為輸入送到存儲器766,它也構建成一系列分接的延時單元如移位寄存器。該數(shù)值經(jīng)存儲器766移出(沿箭頭所指方向)且最后清出每個單元有分接口以將存在那里的數(shù)據(jù)作為輸入送給乘法器764a-764j的相應的分接口。每個乘法器764a-764j還接收LPC系數(shù)α1-α10的各個值來乘以來自存儲器766的輸出。來自加法器762的輸出送給作為共振峰主頻成分濾波器的輸出。
共振峰主頻成分濾波器714的輸出作為輸入送到共振峰主頻成分后置濾波器716和AGC子系統(tǒng)728。共振峰主頻成分濾波器716包括加法器768和770以及存儲器772和乘法器774a-774j,776a-776j,和782a-782j。隨著該數(shù)值經(jīng)存儲器772移出它們在相應的分接口輸出用來乘以定標的LPC系數(shù)值而在加法器768和770累加。共振峰主要頻率成分后置濾波器716的輸出作為輸入送給自適應清晰度濾波器718。
自適應清晰度濾波器718包括加法器784和786,寄存器788和790,和乘法器792和794。圖24是說明自適應清晰度濾波器特點的圖表。共振峰主頻成分后置濾波器716作為輸入送給加法器784而另一輸入由乘法器792的輸出提供。加法器784的輸出送給寄存器788并存儲一循環(huán)而在下一循環(huán)隨同圖19的LSP平均器712提供的K值輸出給乘法器792和794。乘法器792和794的輸出被送給加法器784和786。加法器786的輸出送給AGC子系統(tǒng)728和移位寄存器790。寄存器790作為延時線以確保從共振峰主頻成分濾波器714輸出給AGC子系統(tǒng)728的數(shù)據(jù)與經(jīng)共振峰主頻成分后置濾波器716提供給自適應清晰度濾波器718的數(shù)據(jù)間的協(xié)調(diào)。
AGC子系統(tǒng)728接收來自共振峰主頻成分濾波器和自適應清晰度濾波器的數(shù)據(jù)以對語音輸出能量定標至大約輸入到共振峰主頻成分后置濾波器716和自適應清晰度應濾波器718的語音的能量。AGC子系統(tǒng)728包括乘法器798、800、802和804,加法器806、808和810,寄存器812、814和816,除法器818,和平方根單元820。從共振峰主頻成分濾波器輸出的40個樣本在乘法器798平方并在包括加法器806和寄存器812的累加器中累加以產(chǎn)生數(shù)值“X”。相似地從自適應清晰度濾波器718輸出的40樣本,優(yōu)先于存儲器790,在乘法器800中平方并在包括加法器808和寄存器814的累加器中累加以產(chǎn)生數(shù)值“Y”。該數(shù)值“Y”在除法器816中除以數(shù)值“X”以產(chǎn)生該濾波器的反向增益。在單元818得到該反向增益因數(shù)的平方根其結果被平滑。通過當前增益G值在乘法器802乘以常數(shù)0.02,該結果在加法器810加上如寄存器820和乘法器804所計算出的0.98倍的前增益的結果來實現(xiàn)平滑工作。濾波器718的輸出隨后在乘法器730乘以平滑后的反向增益以提供輸出的重建語音。該輸出語音用各種已知變換技術變換成模擬形式輸出給用戶。
應該理解這里所揭示的本發(fā)明的實施例只是例示性的實施例,對該實施例作出的改變可認為在功能上的等同物。本發(fā)明可以在合適的程序控制下在數(shù)字信息處理機中實施,提供如這里所公開的對語音樣本編碼并對該編碼的語音譯碼的功能操作。在本發(fā)明的另一個實施例中可以在實用熟知的超大規(guī)模集成(VLSZ)技術的專用集成電路(ASIC)來實現(xiàn)。
所提供的對較佳實施例的前面的說明能使本領域技術人員運用本發(fā)明。對這些實施例的各種變動對于本領域技術人員將是現(xiàn)成明顯的,這里確定的總原則可不需要創(chuàng)造性勞動就可應用于其他實施例中。因而本發(fā)明希望不是限定在這所示出的實施例而是給予與這里所說的原則和新穎特征相一致的最大保護范圍。
權利要求
1.一種為多幀語音信號中一幀語音的背景噪聲生成當前估算的方法,其特征在于,包括以下步驟計算一幀語音信號的能量電平;獲得前一幀語音信號的背景噪聲估算;和根據(jù)所述能量電平和前一幀語音信號的背景噪聲估算生成當前背景噪聲估算。
2.如權利要求1所述的方法,其特征在于,所述生成步驟包括限制當前背景噪聲估算相對于前一幀語音信號之背景噪聲估算的增量,使其低于一預定值。
3.如權利要求2所述的方法,其特征在于,所述限制步驟包括將當前背景噪聲估算限制為小于或等于能量電平的值。
4.如權利要求2所述的方法,其特征在于,所述增量由一增量百分數(shù)構成。
5.如權利要求1所述的方法,其特征在于,所述增量由一絕對增量構成。
6.一種語音處理器,用于處理包含多個幀的語音信號,其特征在于,所述語音處理器包括計算裝置,用于計算一幀語音信號的能量電平;獲取裝置,用于獲得前一幀語音信號的背景噪聲估算;和生成裝置,用于根據(jù)能量電平和前一幀語音信號的背景噪聲估算生成當前背景噪聲估算。
7.如權利要求6所述的語音處理器,其特征在于,所述生成裝置包括限制裝置,用于限制當前背景噪聲估算相對于前一幀語音信號之背景噪聲估算的增量,使其低于一預定值。
8.如權利要求7所述的語音處理器,其特征在于,所述限制裝置包括將當前背景噪聲估算限制為小于或等于能量電平的值的裝置。
9.如權利要求7所述的語音處理器,其特征在于,所述增量由一增量百分數(shù)構成。
10.如權利要求7所述的語音處理器,其特征在于,所述增量由一絕對增量構成。
11.一種語音處理器,用于處理包含多個幀的語音信號,其特征在于,所述語音處理器包括第一電路,用于計算一幀語音信號的能量電平;第二電路,用于計算前一幀語音信號的背景噪聲估算,并且對前一幀語音信號的背景噪聲估算增加一預定量,生成一增大的估算值;第一多種轉換器,它與第一和第二電路耦連,用于接收增大的估算值以及能量電平,并且選擇增大的估算值或能量電平,作為語音信號當前幀的背景噪聲估算。
12.如權利要求11所述的語音處理器,其特征在于,還包括第一限制器,它與第二電路耦連,用于將所述增大的估算值限制為低于一預定值的值。
13.如權利要求12所述的語音處理器,其特征在于,還包括第二限制器,它與第一多種轉換器耦連,用于將語音信號當前幀的背景噪聲估算限制為小于或等于能量電平的值。
14.如權利要求12所述的語音處理器,其特征在于,第二電路包括第一加法器,用于將一標稱常數(shù)與前一幀語音信號的背景噪聲估算相加,生成一絕對增大的估算值;乘法器,用于將前一幀語音信號的背景噪聲估算乘以一個略大于1的常數(shù),生成一百分數(shù)增大的估算值;第二多種轉換器,它與第一加法器和所述乘法器耦連,用于接收絕對增大的估算值和百分數(shù)增大的估算值;第三電路,它與第一加法器、第二乘法器和第二多種轉換器耦連,用于控制第二多種轉換器,選擇絕對增大的估算值和百分數(shù)增大的估算值中的較大者,作為增大的估算值。
全文摘要
本發(fā)明揭示了一種為多幀語音信號中一幀語音的背景噪聲生成當前估算的方法和設備。該方法和設備計算一幀語音信號的能量電平;獲得前一幀語音信號的背景噪聲估算;并根據(jù)能量電平和前一幀語音信號的背景噪聲估算生成當前背景噪聲估算。
文檔編號G10LGK1398052SQ0210551
公開日2003年2月19日 申請日期2002年4月9日 優(yōu)先權日1991年6月11日
發(fā)明者保羅·E·雅各布, 威廉·R·加德納, 沖·U·李, 克萊恩·S·吉豪森, S·凱瑟琳·蘭姆, 民昌·蔡 申請人:夸爾柯姆股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
敦煌市| 开化县| 波密县| 昌吉市| 宜宾县| 宁陵县| 通山县| 贡觉县| 大理市| 甘德县| 大丰市| 琼中| 子洲县| 明星| 贵阳市| 湘阴县| 易门县| 昭觉县| 九台市| 吴堡县| 巢湖市| 卢氏县| 朝阳区| 昭觉县| 韶关市| 香港| 湛江市| 青浦区| 萍乡市| 兖州市| 虎林市| 阜城县| 辽中县| 昆山市| 东乡县| 嫩江县| 元氏县| 邵阳市| 博湖县| 内丘县| 济源市|