主頁(http://www.by236.com):語音編解碼器 語音編碼器分為三種類形:(a)波形編器;(b)聲碼器;(c)混合編碼器。 波形編碼器會盡可能構出包括背景噪單在內的模擬波形。由于波形編碼器作用于所有輸入信號,因此會產生高質量的樣值。然而,波形編碼器工作在高比特率。例如:ITU-G.711規范(PCM)用的比特率為64Kbps。 聲碼器(vocoder)不會再生原始波形。這組編碼器會提取一組參數,這組參數被送到接收端,用來導出語音產生模形。線性預測編碼(LPC)用來獲取一時變數字濾波器的參數。這個濾波器用來模擬說話人的聲道輸出[WEST96]。在電話系統中使用聲碼器,語音質量不夠好。在VOIP中常用的語音編碼器是混合編碼器,它融入了波形編碼器和聲器的長處,它的另一特點是它工作在非常低的比特率(4-6Kbps)。混合編碼器采用合成分析(AbS)。 為了說明問題,考慮人的聲道產生的一個語音模式:當人說話產生語音信號時就會發出濁音(如音素pa、da等)和清音(如音素sh、th)。激勵信號就是由輸入的語音信號導出的,其方法是使合成語音與輸入語音的差別非常小。LPC的用法、激勵的產生以及對合成分析(AbS)系統的誤差檢查均如圖4-1所示。 長話質量編碼器在比特率高于8Kbps時容易實現,如圖4-2所示。長話質量的語音平均意見得分(MOS)必須在分或許分以上。傳統的PCN語音在比特率小于32 Kbps,語音質量會嚴重惡化,在這里就不討論PCN了。混合編碼和聲碼器在比特率相當低的MOS上的得分是可接受的。在現階段,大多數基于VOIP的編碼器的工作范圍在5.2~8kbps。研究表明,標準的編碼器在比特率為4 Kbps時能提供可接受的NOS得分,一些分用系統在4.8 Kbps的MOS上的得分為3.8。 矢量量化和碼激勵線性預測 一種較好的方法就是用預測存儲的最優參數(碼元矢量)的碼本對輸入語音信號的表示矢量進行編碼,這種技術稱為矢量量化(VQ,vector quantization)。 將VQ和AbS技術結合在一起會進一步提高編碼性能。AbS VQ是技術構成CELP的基礎。VQ和AbS VQ的主要區別在于進行矢量量化碼簿搜索時采用的量化失真測量定義的不同 如果以8 kHz采樣率及13位精度來對出自GSM蜂窩手機麥克風的音頻數據進行采樣,則可得到104kbps的源數據速率。GSM系統中有四種編解碼器,分別執行:全速率、增強型全速率(EFR)、自適應多速率(AMR)及半速率語音壓縮。表1給出了一些聲碼器的參數比較。 全速率 全速率語音編解碼器是改良的線性預測編碼器(LPC),它將人類聲域建模成一系列不同寬度的圓柱體。通過迫使空氣通過這些柱體,即可產生語音。LPC編碼器用一組聯立方程來進行建模。 標準LPC編碼器不能提供電話系統所需的話音質量(雖能聽清語句,但很難或不可能分辨出說話的人)。GSM系統中采用兩種技術來提高LPC編碼器的質量,即:長期預測(LTP)與規則脈沖激勵(RPE),而全速率編解碼器就被稱為RPE-LTP線性預測編碼器。 輸入至RPE-LTP編碼器的數據為包括160個采樣值的20ms語音,每一個采樣值都擁有13位精度。數據首先通過預加重濾波器來提高信號的高頻分量,以獲得更好的傳輸效率。濾波器一般還消除信號上的任何偏移以簡化進一步的計算。 正如前面所提到的,語音產生模型可看成是空氣通過一組不同大小的圓柱體。短期分析級采用自動相關來計算與模型所用的8個圓柱體有關的8個反射系數,同時采用一種稱為Schur遞歸的技術來有效地求解所得到的方程組。參數被變換成可以更少的位數來進行更佳量化的LAR(log-area ratio)。這些是傳輸流的前8個參數。 然后再將編碼后的LAR解碼成系數,并用來對輸入采樣值進行濾波。解碼LAR的原因是為了確保編碼器使用解碼器上的相同信息來進行濾波。這一級上的其余采樣值用于編解碼器的LTP級。 160個采樣值被分成4個子窗口,每一個子窗口都擁有40個采樣值。長期預測器為每一子窗口產生2個參數:滯后與增益。滯后由當前幀與后兩幀之間的交叉相關峰值確定,而增益則由歸一化交叉相關系數決定。滯后與增益參數被應用到長期濾波器上,同時對現有短期剩余信號進行預測。 RPE級通過十取一及交錯將40個剩余采樣值轉換成13個參數,并用APCM將所得出的13個值編碼,其中最大值用對數編碼成6位,然后再將13個參數均表示成3位,總共45位。 最后一級是從計算出的長期剩余及分析信號來更新短期剩余信號,然后再用此數據來計算下一幀。 增強型全速率 全速率編解碼器是一種用來傳輸語音并在計算上相當有效的方法,但通過使用更為密集的算法,語音質量還能提高。全速率編解碼器首先在1990年代初的DSP上實現,當時在經濟上雖不能采用質量更好的編碼器但卻是一種更為密集的算法。 至1990年代中,功能更強的DSP內核的可用性已不再是一個問題,因此增強型全速率編解碼器開始在手機中出現。 EFR聲碼器是一種代數碼激勵線性預測(ACELP)編碼器,且不同于采用分析加合成方法的全速率系統。它計算雖更加密集但能在輸出端得到更為精確的結果。預處理級由80Hz高通濾波器及一些縮減電路組成,以使實現更為容易。每幀進行兩次短期分析,由與兩個30mS(1.5個語音幀)、長度集中在不同子幀上的不同非對稱窗口自動關聯。所得到的系數被變換成線譜對(line spectral pairs)并被量化成38位,以獲得更好的傳輸效率。 同時執行開環間隔(pitch)分析來計算每幀的間隔滯后估計值,然后再用此估計值啟動閉環搜索(以得出更快的結果)。再將所得到的閉環值應用于合成器及與非量化輸入比較后的結果上(即分析加合成),最小的加權誤差從自適應編碼本(codebook)上得出并被編碼成每子幀35位。 然后再用代數(固定) 編碼本、并再一次用分析加合成方法來對量化后余下的剩余信號進行建模。所得到的編碼本增益被編碼成每子幀5位。 最后,正如全速率聲碼器中一樣,針對下一幀將存儲器刷新。 EFR聲碼器的12.2kbps輸出等于每幀244位。但編碼語音是通過擁有260位容量的常規GSM全速率空中信道來傳輸,其余16位被填以CRC以及重復一些用于冗余的最重要編解碼器參數。 自適應多速率 當全部參數均能解碼時,全速率及EFR編解碼器可實現良好的語音再現。由于傳輸信道的冗余(請記住,原始信道容量比數據載荷大10kbps),故許多原始位可以出錯且參數仍能恢復。 但當參數丟失或錯誤時,所接收信號的質量將迅速下降(參見圖3中的最右側黑色曲線)。 這也是AMR編解碼器組所試圖解決的問題。通過指定8個全都共享公共數學算法的聲碼器組,可改變信道的冗余量。以此種方式,語音傳輸的質量可能會由于降至更低的編碼速率上而稍微有所下降,但覆蓋編碼參數的信心則得以提高。 結果是在載波干擾增加的情況下可獲得感覺更好的語音信號質量(如圖3)。 AMR編解碼器組由速率從12.2kbps至4.75kbps的ACELP聲碼器組成,故可提供87%至480%的冗余。在一種很糟的情況下,即全速率及EFR幀丟失很久后,4.75kbps編解碼器數據仍能恢復。 半速率 GSM所采用的空中接口允許使用兩個完全獨立的半速率子信道,故能使蜂窩單元的語音容量加倍。半速率聲碼器采用矢量和激勵線性預(VSELP)編碼器,它以一種類似EFR及AMR編解碼器的分析加合成方式工作,速率為5.7kbps。 半速率聲碼器的輸出幀包含用來指示幀聲音內容的2個位。該聲碼器工作方式在每種模式下略微有些不同,故可獲得最佳的音頻數據再現質量。 人們對半速率語音的感覺普遍不佳,所以今天一般不采用此項技術。但以其自適應模式,AMR聲碼器的6種較低速率將適合半速率空中信道的可用容量,結果是采用帶AMR的半速率信道將在高流量領域變得更為普遍。 非連續傳輸 在典型的談話過程中,語音僅占總時間的大約40%。為減少對無線接口的干擾,可采用非連續傳輸(DTX),即移動電話僅在有語音信號時才進行傳輸。此功能要求有如下幾項內容,即:語音活動檢測(VAD)、用于空中接口的靜寂描述符(SID)幀及舒適噪音產生等。 為減少猝發傳輸的總時間,語音解碼器必須能確定什么時候有語音。由于編碼的自然特性,可通過分析中間參數來精確確定是否有語音。重要的是要保證閾值合適,太靈敏會由于無線傳輸次數太多而對空中接口不利,而靈敏度不夠則會切斷語音并使聲音質量嚴重下降。 盡管在理論上VAD是實現DTX所需的全部,但來自接收器的完全靜寂降低整體感覺質量。為解決此問題,接收器采用了“舒適噪音”功能,即利用SID幀參數的逐漸衰減來產生類似發射器背景噪音的聲音。 當VAD確定沒有語音時,在空中接口上不進行傳輸(實際情況比這更復雜一些,但其基本原理一樣)。經過一段預定時間間隔后,再發送一個包含一組參數的SID幀,這些參數用于接收器舒適噪音產生功能。 最佳實現 語音編碼功能可解釋為像卷積這樣的數學密集型處理,在帶有處理這類計算指令(例如乘法-累加指令)的專用DSP上能得到最佳實現。盡管這可以在通用處理器上實現,但要求有更高數量級的時鐘速度來與同樣的執行速度相匹配。 不同處理內核中所實現的EFR及全速率聲碼器執行速度不同。作為一種與時鐘速度有關的比較,DSP全速率實現的速度大約要比奔騰處理器實現的速度快3.5倍,而經徹底優化后的SC140實現的速度要比奔騰處理器實現的速度整整快18倍。 在語音編解碼器中采用了許多優化技術。最初一般將數據偏移以使計算更加容易并能再利用存儲器空間。例如,用剩余濾波器寫入輸入陣列而不使用新存儲器空間。 處理器可采用定制浮點實現來在內核中提供浮點支持。這些實現不是位精確的,這意味著它們不能得出像定點參考實現一樣精確的數學結果。但通過軟硬件中針對這類數學算法的優化,速度可明顯提高。而輸出參數,當被送入定點解碼器時,將產生感覺上一樣的聲音幀。 測試位序列 為檢驗依從性,ETSI頒布了一組全面的測試位序列。它們由輸入文件(160個13位采樣值)、編碼文件(通過解碼器的結果)、一些解碼文件(用于直接提供給解碼器)以及輸出文件(代表來自輸出的160個采樣值)組成。 而像VAD及舒適噪音產生等額外功能,則用各種序列進行隱含測試。同時也對不同輸入壓縮擴展方案(A-law和(-law)進行測試。 浮點實現一般不遵循ETSI位序列,但能產生一組感覺上與定點編碼器及解碼器相兼容的參數。 對語音編碼器實現的定性評價,可用Racal儀器公司帶VQA的AIME系統來測試。這種系統允許建立原始流量信道(無需完全的GSM協議實現),且能執行全速率的空中傳輸雙向語音編碼。 (中國集群通信網 | 責任編輯:陳曉亮) |



