1、1 以5.3及6.3 kbps傳輸之多媒體通信用雙速率語音編碼器 印月 94 10 月 本標準非經本局同意得翻印 中華民國國家標準 CNS 總號 號 ICS 35.110 14695 X1237 經濟部標準檢驗局印 公布日期 修訂公布日期 91 12 月 5 日 月日(共 61 頁) Recommendatio Dual rate speech coder for multimedia communications transmitting at 5.3 and 6.3 kbps 1. 簡介 1.1 適用範圍:本標準規定極低位元速之多媒體服務中,用以壓縮語音或其它音訊信號成分的碼化表示。本編碼
2、器之設計,所考慮的主要應用係 H.324 系標準中極低位元速之可視電話部分。 1.2 位元速:本編碼器有二種位元速: 5.3 和 6.3 kbps。較高的位元速有較佳品質。較低的位元速品質好且提供系統設計者額外的彈性。速皆為編碼器和解碼器所必備的。速可在任一 30ms 訊框邊界處換,亦可在非語音期間使用續傳輸和雜訊填充以達成可變速操作之選項。 1.3 可能的輸入信號:本編碼器係使用有限之複雜,在上述之速下,最佳化具備高品質之語音表示。音和其它的音訊信號並未如語音一般忠實地表示,但可以使用此編碼器壓縮和解壓縮。 1.4 延遲:本編碼器將語音或其它的音訊信號以 30ms 的訊框編碼。此外,尚有一7
3、.5ms 之預視,使得全部的演算法延遲為 37.5ms。本編碼器之實作及運算的全部額外延遲係由於: (1) 在編碼器和解碼器中實際花在處資的時間; (2) 在通信鏈上之傳輸時間; (3) 多工協定的額外緩衝延遲。 1.5 語音編碼器描述:本標準之語音編碼演算法的描述係採用精確位元 (bit-exact)及定點 (fixed-point)的學運算。第 5 節中的美國國家標準組織 (American Na-tional Standard Institute,ANSI)之 C 語言程式碼,係構成本標準整體之一部分,反映出精確位元及定點描述之方法。第 2 和第 3 節所述之編碼器和解碼器的學描述,可以
4、個方式實作之,因而可能導致編解碼器之實作符合本標準。因此,一旦發現矛盾時,第 5 節之 C 語言程式碼的演算法描述應優先於第 2 和第 3 節中的學描述。國際電信盟 (International Telecommunication Union,ITU)提供一組可與 C 語言程式碼配合使用之非窮盡的測試序。 2. 編碼器原 2.1 概述 本編碼器係設計用以運作位信號,該位信號係得自先對比輸入電話頻寬波 (G.712),再 以 8000 Hz 取樣,最後轉換為 16 位元的線性脈碼調變 (Pulse Code Modulation,PCM)信號,以作為編碼器之輸入。解碼器之輸出應以似方2 CNS
5、14695 , X 1237 式轉換回類比形式。其它的輸入輸出特性,諸如 G.711 所規定之 64kbps PCM資料,應在編碼前轉換成 16 位元的線性 PCM,或在解碼後由 16 位元的線性 PCM轉換為適當的格式。從編碼器到解碼器之位元流定義於本標準。 編碼器係基於線性預測依合成分析 (analysis-by-synthesis)之編碼原理,並試圖將聽覺加權誤差信號最小化。編碼器係運作於長度各為 240 個樣本的區塊 (訊框 )上。這等在 8kHz 取樣頻率下 30ms 的樣本。每個區塊先以高通濾波器去除直流成分,然後分成四個子訊框,各含 60 個樣本。對每個子訊框,使用未處理的輸入信
6、號以計算出一 10 階的線性預測編碼 (Linear Prediction Coder,LPC)濾波器。最後的子訊框之 LPC 濾波器則以預測式分離向量量化器 (Predictive Split Vector Quantizor,PSVQ)量化之。未量化的 LPC 係數用以建構短程的 聽覺加權濾波器,它是用以過濾整個訊框和獲得聽覺加權的語音訊號。 對每二個子訊框 (120 個樣本 )而言,開迴路聲調週期 LOL,係以加權的語音訊號計算而得。此聲調估計係於 120 個樣本的區塊上履行。聲調週期的搜尋範圍則從 18 到 142 個樣本。 自此處起語音係基於每個子訊框 60 個樣本的基礎上處理。 使
7、用先前計算所得之估算的聲調週期,可建構一諧波雜訊整形濾波器。 LPC 合成濾波器、共振峰聽覺加權濾波器與諧波雜訊整形濾波器的組合,用以建立一脈衝響應。然後此脈衝響應可用於更進一步的計算。 使用聲調週期估計 LOL 和脈衝響應可計算出閉迴路聲調預測器。所使用者為一五階的聲調預測器。聲調週期被計算作為在開迴路聲調估計附近的一個小差值。然後再將聲調預測器之影響由初始目標向量中減去。聲調週期和差值兩者皆被傳送至解碼器。 最後,概算出激發之非週期成分。對高位元速率,使用多重脈波最大概度量化(Multi-pulse Maximum Likelihood Quantization,MP-MLQ)激發;對低位
8、元速率,則使用代數碼激發 (Algebraic-code-excitation,ACELP)。編碼器的方塊圖如圖 1所示。 2.2 分框器 檔案: LBCCODEC.C 程序: main() 讀入 240 個樣本的輸入訊框 檔案: CODER.C 程序: Coder() 履行子訊框分割 編碼器係藉由將連續的語音樣本 yn緩衝入 240 個樣本的訊框 sn來處理語音。每個訊框分割為二個 120 個樣本的部分供聲調估計計算之用。每一部分再細分為二,因此每個訊框最後分成四個子訊框,每個子訊框 60 個樣本。 2.3 高通濾波器 檔案: UTIL_LBC.C 程序: Rem_Dc() 履行高通濾波器
9、本區塊去除輸入語音 sn中的直流成分。濾波器轉換函數為: 3 CNS 14695 , X 1237 ()1112812711=zzzH (1) 濾波器的輸出為: xnn = 0239圖 1 語音編碼器方塊圖 每一方塊內的數字為其對應之參考節次 FIGURE 2.4 LPC 分析 檔案: LPC.C 程序: C檔案: LPC.C 程序: DLPC 分析係在訊號 xn上以下述方法履行。使用十階線性預測的每個子訊框,有一 180 個樣本的訊窗以其為中心。施用於這些樣本的訊窗為一漢明窗。經訊窗處理所得的自相關數 (1025/1024)係由公式 R0=乘上二項式訊窗係數表。 (該表格之值和所有其它表格的
10、值皆於之 ) 。線性預測係數 (LiLevinson-Durbin 遞迴計算而得。對每個輸入訊框而言,計算而得的LSP 量化器 2.5 LSP 解碼器 2.6 LSP 內插器 2.7 分框器2.2 脈衝響應計算器 2.12 記憶 更新 2.19 零輸入響應zn 2.13 聲調預測器pn 2.14 聲調 解碼器 2.18 激發 解碼器 2.17 諧波雜訊整形wn 2.11 共振峰聽覺加權 2.8 LPC 分析 2.4 高通 濾波器 2.3 聲調 估計器 2.9 MP-MLQ/ACELP 2.15,2.16 模擬的解碼器 en un vn rn tn fn Az xn sn WzPz Sz zAL
11、i,Biyn omp_Lpc() 履行 LPC 係數計算 urbin() Levinson-Durbin 遞迴 (LP)分析。對(autocorrelation)係數有 11 個。白雜訊校正因R0(1+1/1024)求得。其它的 10 個自相關係數則C 程式碼中給定near Predictive Coefficient,LPC) 是用傳統的LPC 集有四4 CNS 14695 , X 1237 個,每個子訊框一個。這些 LPC 集用以建構短程聽覺加權濾波器。 LPC 合成濾波器定義為: () 30,11101=izazAjjiji(2) 此處 i 是子訊框索引,定義為在 0 和 3 之間。 2
12、.5 LSP 量化器 檔案: LSP.C 程序: AtoLsp() 轉變 LPC 成為 LSP 係數 檔案: LSP.C 程序: LspQnt() LSP 向量量化 檔案: LSP.C 程序: Lsp_Svq() LSP 子向量量化 首先,履行一小的附加的頻寬擴展 (7.5Hz)。之後,所得之 A3(z) LP 濾波器以預測式分離向量量化器加以量化。該量化是以下列方法履行: (1) 藉沿著單位圓搜尋和零交越 (zero crossing)的內插,將 LP 係數 ajj = 110轉換為 LSP 係數 jp j = 110。 (2) 長程直流成分 pDC,由 LSP 係數 p中移除,而得到一新的
13、去除直流的 LSP 向量 p。 (3) 一個一階的固定預測器 b = (12/32),被應用於先前已解碼的 LSP 向量1np ,以在時間 (訊框 )n 獲得去除直流的預測之 LSP 向量np ,,和殘留的 LSP 錯誤向量 en。 .,10,2,1 nnnTnpppp = (3.1) nnnTnPPPP,10,2,1.= (3.2) DCnnPPbP =1(3.3) nnnPPe = (3.4) (4) 未量化的 LSP 向量nP ,已量化的 LSP 向量nP,殘餘的 LSP 錯誤向量 en分別地被分成維度為 3、 3 和 4 之三個子向量。每一第 m 個子向量皆是使用一 8 位元碼簿予以向
14、量量化。所選擇之適當子向量碼簿項的索引 l,係將錯誤準則 El,m最小化者。 mmmmTmKPPPP33231.+=,=2,41,30,3mmmKm(4.1) mlmmlmlTmlKPPPP,2,1,.=,256120lm(4.2) 5 CNS 14695 , X 1237 PDCPP += (4.3) m,lmDCmm,lePPP +=,256120lm(4.4) ()( )mlmmTmlmmlPPWPPE,=,256120lm(4.5) 此處 el,m是第 m 個分割殘餘的 LSP 碼簿之第 l 個項、且 Wn為一由未量化的 LSP 係數向量 p所決定之對角線加權矩陣,其加權定義如下: j
15、jjjjjPPPPw=+ 11,min192, j 121,11PPw= (5) 91010,101PPw= (5) 所選擇的索引將傳送到通道。 2.6 LSP 解碼器 檔案: LSP.C 程序: Lsp_Inq() LSP 之逆量化 LSP 係數之解碼是以下列方法履行: (1) 首先,三個子向量 em,nm = 02被解碼以形成一個十階的向量ne。 (2) 預測的向量nP ,,被加到解碼向量ne和直流向量 pDC,以形成解碼的 LSP 向量nP。 (3) 對解碼的 LSP 向量nP履行穩定度檢查,以保證解碼之 LSP 向量是依照以下條件有序排列。 min,1+ njnjPP 91, j (6
16、) min等於 31.25 Hz。若式 (6)對於iP和1+iP 的穩定性檢查失敗,則jP和1+jP 以下列方法變更: ( ) 2/1+=jjavgPPP (7.1) 2/min=avgjPP (7.2) 2/min1+=+ avgjPP (7.3) 此變更一直執行到條件 (6)被滿足。假如在 10 次疊代後,穩定性條件仍未被滿足,則使用先前的 LSP 向量。 6 CNS 14695 , X 1237 2.7 LSP 內插 檔案: LSP.C 程序: Lsp_Int() LSP 內插器 檔案: LSP.C 程序: LsptoA() 轉換 LSP 至 LPC 係數 對每個子訊框,在解碼的 LSP
17、 向量nP和先前的 LSP 向量1nP 間履行線性內插。四內插的 LSP 向量 iPi = 03被轉換至 LPC 向量 iai = 03。 +=nnnnnnnniPPPPPPPP75.025.05.05.025.075.01113,2,1,0,=iiii(8) TiiiTiaaaa1021.= 30, i (9) 量化的 LPC 合成濾波器 ()zAi用以產生解碼的語音訊號,其定義如下: ()=10111jijijzazA 30, i (10) 2.8 共振峰聽覺加權濾波器 檔案: LPC.C 程序: Wght_Lpc() 計算聽覺濾波器係數 檔案: LPC.C 程序: Error_Wght(
18、) 應用聽覺加權濾波器 每個子訊框皆使用未量化的 LPC 係數 aijj = 1,10以建構一共振峰聽覺加權濾波器。此濾波器之轉換函數為: ()jjjzajzazWjijjiji2110110111=30, i (11) 此處 1= 0.9 , 2= 0.5。輸入的語音訊框 xnn = 0239即被分成四個子訊框,每個子訊框皆以 Wi(z)濾波器濾波,從而得到加權的輸出語音訊號 f nn = 0239。 2.9 聲調估計 檔案: EXC_LBC.C 程序: Estim_Pitch() 開迴路聲調估計 7 CNS 14695 , X 1237 每一個訊框需要計算二個聲調估計,一個供前兩個子訊框之
19、用,一個供後兩個子訊框之用。開迴路聲調週期估計 LOL係用聽覺加權語音 f n來計算的。使用一互相關 (crosscorrelation)準則 COL( j)最大化方法以決定聲調週期, 如下所示: () jnfjnfjnfnfjCnnOL=11902119014218, j (12) 使互相關 COL( j)最大化之索引 j,被選擇作為二適當子訊框之開迴路聲調估計。在搜尋最佳索引時,較小的聲調週期較為優選時期,以避免選擇到聲調的倍數。搜尋自 j=18 開始之 COL( j)之最大值。當找到每一個最大的 COL( j),它的值被拿來與先前所找到之最佳的最大值 COL( j)比較。假如在索引 j
20、和 j之間的差小於 18,且 COL( j) COL( j),則選用新的最大值。假如索引間的差大於或等於 18,則僅當 COL( j) 大於 COL( j) 1.25 dB 時,才選用新的最大值。 2.10 子訊框處理:自本節開始,所有的計算區塊皆於每個子訊框一次的基礎上履行的。 2.11 諧波雜訊整形 檔案: EXC_LBC.C 程序: Comp_Pw() 計算諧波雜訊濾波器係數 檔案: EXC_LBC.C 程序: Filt_Pw() 應用諧波雜訊濾波器 為要改善編碼語音的品質,建構一諧波雜訊整形濾波器。此濾波器為: () =1zPiLz(13)僅考慮平方前的分子 N(j)正相關值時,此濾波
21、器最佳的滯後 L 為令準則 CPW ( j)為最大之滯後: () =590njnfnfjN (14.1) ()( )( )=5902nPWjnfjnfjNjC21, LjL (14.2) 此處 L1= LOL 3, L2= LOL+ 3。將最大值定義為 CL。最佳的濾波器增益,Gopt為: =590590nnoptLnfLnfLnfnfG (15) 8 CNS 14695 , X 1237 Gopt限制在範圍 0, 1。加權語音訊號 f nn = 059之能量 E 如下式所示: =5902nnfE (16) 則可得諧波雜訊整形濾波器 P(z)之係數 如下: =0.03125.0optG其它若,
22、0211010.EClogL(17) 在計算諧波雜訊濾波器係數之後,以 P(z)對共振峰聽覺加權語音 f n濾波,以獲得目標向量 wn。 = nfnw Lnf 590, n (18) 2.12 脈衝響應計算器 檔案: LPC.C 程序: Comp_Ir() 脈衝響應計算 對於閉迴路分析,使用以下的組合濾波器 Si(z): () ( )()()zPzWzAzSiiii=30, i (19) 此處 Si(z)之成分定義於式 10、 11 和 13 中。計算此濾波器之脈衝響應令其為hinn = 059, i = 03。2.13 零輸入響應和鈴音刪減 檔案: LPC.C 程序: Sub_Ring ()
23、 履行鈴音刪減 組合濾波器 Si(z)之零輸入響應為當輸入信號全為零值樣本時,計算該濾波器之輸出而得。零輸入響應以 znn = 059 表示之。鈴音刪減之履行係由諧波加權語音向量 wnn = 059減去零輸入響應。所得之向量定義為 tn = wn zn。 2.14 聲調預測器 檔案: EXC_LBC.C 程序: Find_Acbk() 調適碼簿貢獻。呼叫 Get_Rez()及 Decod_Acbk() 檔案: EXC_LBC.C 程序: Get_Rez() 從激發緩衝區得到殘餘 檔案: EXC_LBC.C 程序: Decod_Acbk() 解碼調適碼簿貢獻 聲調預測貢獻被視為一慣用之適應碼簿貢
24、獻。聲調預測器為五階的聲調預測器(參見式 41.2)。對於子訊框 0 和 2,閉迴路聲調滯後之選擇是從適當之開迴路聲調的滯後在 1 範圍內選出,並以 7 位元編碼之。 (注意:開迴路聲調滯後從未被傳送 )。對於子訊框 1 和 3,閉迴路聲調滯後使用 2 位元差分編碼,且只9 CNS 14695 , X 1237 可與前一子訊框滯後相差 -1、 0、 +1 或 +2。自本節起,量化和解碼的聲調滯後值以 Li 表示之。聲調預測器增益係使用高位元速率 85 或 170 項及低位元速率170 項二碼簿予以向量量化。 170 項的碼簿對此二速率是相同的。高速率時,若子訊框 0 和 1 之 L0小於 58
25、,或子訊框 2 和 3 之 L2小於 58,則 85 項碼簿用於聲調增益量化。否則,聲調增益之量化使用 170 項碼簿。聲調預測器 pnn = 059之貢獻由目標向量 tnn = 059中減去,以獲得殘餘訊號 rnn = 059。rn = tn pn (20) 2.15 高速率激發 (MP-MLQ) 檔案: EXC_LBC.C 程序: Find_Fcbk() 固定碼簿貢獻 檔案: EXC_LBC.C 程序: Find_Best() 殘餘信號量化 檔案: EXC_LBC.C 程序: Gen_Trn() 產生一列 Dirac 函數 檔案: EXC_LBC.C 程序: Fcbk_Pack() 脈波位
26、置之組合的編碼 殘餘訊號 rnn = 059被轉換為至 MP-MLQ 區塊之一新目標向量。此區塊履行此向量之量化。量化程序係以 rn來逼近目標向量 rn: =njjnvjhnr0590, n (21) vn係具脈衝響應 hn之組合濾波器 S(z)的激勵,定義如下: =10MkkkmndGnv 590, n (22) G 為增益因數, n為 Dirac 函數, kk = 0M 1和 mkk = 0M 1分別是正負號 (1)和 Dirac 函數之位置, M 為脈波的數目,當偶數子訊框時為 6 及奇數子訊框時為 5。脈波位置是有限制的,即可以是全為奇數或全為偶數二者之一。此係由一柵格位元指示之。故問
27、題是估計未知參數 G, kk = 0M 1和mkk = 0M 1,使誤差信號 errn之均方得以最小化: =10MkkkmnhGnrnrnrnerr (23) 參數估計和量化處理係基於合成分析的方法。 Gmax參數被估計和量化如下。首先,計算脈衝響應 hn和新目標向量 rn間的交互相關函數 d j: =59jnjnhnrjd 590, j (24) 估計的增益是經由下式得到: () =59059.0maxmaxnjnhnhjdG (25) 10 CNS 14695 , X 1237 然後估計的增益 Gmax以對數量化器量化之。此純量增益量化器對於二速率是共同的,其包含 24 階,每階 3.2d
28、B。在此量化值maxG 附近,額外的增益值於範圍 maxG 3.2, maxG + 6.4內選定。對於這些每一個增益值,脈波之正負號和位置是依序最佳化。此程序重複地使用於奇和偶柵格兩者。最後,選擇其能產生 errn之最小均方的量化參數之組合。脈波位置和增益之最佳組合被傳送。( )30M種組合編碼被用以傳送脈波位置。此外,利用固定碼簿中碼字之數目不是2 的幕次方的事實,藉由組合 4 個子訊框之組合碼的 4 個最高有效位元以形成一個 13 位元的索引,而額外節省 3 個位元。 C 程式碼提供了此資訊如何分封之細節。 為了要以一個短聲調週期改善語音的品質,使用以下的額外程序。對於子訊框0 和 1,若
29、 L0小於 58,或對於子訊框 2 和 3,若 L2小於 58,則具聲調索引 L0或 L2之週期的一列 Dirac 函數,被用於每個位置 mk,而非前述量化程序中單一 Dirac 函數。選擇一列 Dirac 函數中擇一或單一 Dirac 函數來表示殘餘訊號,係以均方誤差計算為基礎。產生最小均方誤差的組態被選擇,且它的參數索引被傳送。 2.16 低速率激發 (ACELP) 檔案: EXC_LBC.C 程序: search_T0() 聲調同步激發 檔案: EXC_LBC.C 程序: ACELP_LBC_code() 計算革新的向量 檔案: EXC_LBC.C 程序: Cor_h() 脈衝響應之相關
30、 檔案: EXC_LBC.C 程序: Cor_h_X() 目標向量與脈衝響應之相關 檔案: EXC_LBC.C 程序: D4i64_LBC() 代數碼簿蒐尋 檔案: EXC_LBC.C 程序: G_code() 計算革新向量增益 一個 17 位元代數碼簿被用於固定碼簿之激發 vn。每個固定的碼向量最多包含四個非零脈波。此 4 脈波可為如表 1 中給的正負號和位置: 表 1 ACELP 激發碼簿 正負號 位置 1 0, 8, 16, 24, 32, 40, 48, 56 1 2, 10, 18, 26, 34, 42, 50, 58 1 4, 12, 20, 28, 36, 44, 52, (6
31、0) 1 6, 14, 22, 30, 38, 46, 54, (62) 全部脈波的位置可以同時位移一個 (以佔奇數位置 )位置,這樣需要一個額外位元。注意:最後二個脈波其各自的最後位置落在子訊框邊界外,表示該脈波不出現。 每個脈波位置以 3 個位元編碼,每個脈波的正負號則以 1 個位元編碼。 4 個脈波總計 16 個位元。此外,一個額外位元被用以編碼位移,結果形成一 17 個位元的碼簿。 碼簿係藉由加權語音訊號 rn 與加權合成語音間均方誤差最小化進行搜尋,如下式所示: 11 CNS 14695 , X 1237 E= r GHv2(26) 此處 r 為目標向量,由減去加權合成濾波器之零輸入
32、響應後之加權語音和聲調貢獻所構成, G 為碼簿增益; v是索引 之代數碼字; H 是一下三角形 Toeplitz卷積矩陣,其對角線 h(0)和下對角線 h(1),.,h(L-1),其 h(n)為加權合成濾波器 Si(z)之脈衝響應。 最佳之碼字可證明為將下式最大化者: ()vvvdCTT=22(27) 此處 d = HTr 為目標向量訊號 rn和脈衝響應 h(n)間之相關,且 = HTH 為脈衝響應之共變異數矩陣。向量 d 和矩陣 是在碼簿搜尋之前計算。向量 d 之元素由下式得到: () jnhnrjdjn=59590, j (28) 對稱矩陣 (i, j)之元素則由下式計算得到: () jn
33、hjnhjijn=59,590,=iij(29) 備考:只有實際需要之元素被計算,且已設計一有效率的儲存,以加速搜尋程序。 碼簿之代數結構造成非常快的搜尋程序,因為激發向量 v僅包含 4 個非零脈波。搜尋是在 4 個巢狀迴圈內履行,對應到每個脈波位置,在每個迴圈中加上一新脈波的貢獻。式 (27)中之相關如下式所示: C = 0dm 0 + 1dm1 + 2dm2 + 3dm3 (30) 此處 mk是第 k 個脈波的位置, k為其正負號 (1)。式 (27)中偶脈波位置碼向量之能量參見下式: ()00, mm= () ( )101011,2, mmmm + (31) () ( ) ( ) 212
34、1202022,2, mmmmmm + () ( ) ( )() 32323131303033,2, mmmmmmmm + 對於奇脈波位置碼向量,式 (27)中之能量則由對等之偶脈波位置碼向量 (藉位移奇位置脈波至時間上前一個樣本近似而得。為簡化搜尋程序,將函數 d j和 (m1, m2)加以修改。簡化履行如下 (在碼簿搜尋之前 ):首先定義訊號 s j,然後建構訊號 d j。 ( )jdsignjsjs 2122 =+= 若 122 + jdjd (32) ( )12122 +=+= jdsignjsjs 其它情形 12 CNS 14695 , X 1237 且訊號 d由 d j = d j
35、s j而得。其次,矩陣 是藉包含訊號資訊予以修改;亦即, (i, j) = sis j(i, j)。式 (30)中之相關如下式所示: C = d m 0 + d m1 + d m2 + d m3 (33) 且式 (31)中之能量如下式: ( )00, mm= ( )( )1011,2, mmmm + (34) ( )( )( ) 212022,2, mmmmmm + ( )( )( ) ( )32313033,2, mmmmmmmm + 焦點搜尋方式可用以進一步簡化搜尋程序。在此方式中,一預先計算的臨限值在進入最後的迴圈之前被測試,且此迴圈只在超過臨限值時才進入。迴圈可進入之最大次數是固定的,
36、因此碼簿中僅少部分被搜尋。臨限值之計算是基於相關 C。最大的絕對相關 max3和平均相關 av3是由最前三個脈波的貢獻而來,並在碼簿搜尋前被找出。臨限值由下式得到: thr3= av3+ (max3 av3) / 2 (35) 只有在絕對相關 (由三個脈波而來 )超過 thr3時,才進入第四迴圈。注意:此將導致可變複雜性的搜尋。為了進一步控制搜尋,進入最後迴圈的次數 (對於 4個子訊框 )不可超過 600 次。 (平均最差情況每子訊框是 150 次。在忽略前三個迴圈之額外附加下,此情況可視為如同只搜尋碼簿之 150x8 項。 ) 碼簿特別的特性之一是對聲調延遲小於 60 者,視 LTP 聲調預
37、測器增益向量之索引 PGIndi而定的一個聲調貢獻被加到該碼上。亦即,在最佳化代數碼 vn決定之後,它被修改為 vn + b(PGIndi)vn Li e(PGIndi),值 (PGIndi)和(PGIndi)已被表列而 Li為整數聲調週期。注意:若 Li11,則雜訊位準先被剪截: +=其它1111175.025.0ttttttNlevEnrNlevEnrNlevNlev若(附錄1-3) (2) 若調適被致能,則 Nlevt被增加,否則它被增加一小量: =其它若ttttNlevAenNlevNlev9995.0003125.1(附錄1-4) =131071128maxminNlevNlev其中
38、 2.5 臨限計算 在訊框 t雜訊位準 Nlevt,和臨限值 Thr 之間的關係,是經由對數近似定義,並定義如以下公式: ThrNlevNlevNlevNlev=5 012 12810 128 163842 239 1638407 0051282.if,if.iflog(附錄1-5) 2.6 VAD 決定 VAD 決定是基於在臨限值 Thr,和現用能量 Enrt之間之比較: 若若若30 CNS 14695 , X 1237 VadEnr ThrEnr Thrttt=10(附錄1-6) 2.7 VAD 宿音之相加 一個由 6 個訊框產生的宿音只在語音猝發 (Vadt= 1)大於或等於 2 個訊框
39、的情況下加上去的。 2.8 VAD 初始化 除以下變數外, VAD 演算法之全部靜態變數被初始化為 0: 3,2601,011024102411=jLjLEnrNlevjOljOL(附錄1-7) 3. CNG 之一般敘述 本演算法分為二區塊,位於編碼器和解碼器,分別稱為 COD-CNG 和 DEC-CNG。在編碼器 (參照本附錄圖 1), COD-CNG 區塊使用語音訊號之自相關函數,而此語音訊號是由每個包含 60 樣本的子訊框、過去的激發樣本、和前一個訊框之 LSPs 等計算得來。 附錄 1 圖 1 具備 VAD/CNG 之編碼器方塊圖 T1524230-96LOLjRjiajnoFtyptenptVadtCOD-CNGA.4VADA.2Coded speechframesMUXG.723.1coderInputsignalCoded SID frames輸入信號 碼化語音訊框 碼化SID訊框 本標準解碼器 本附錄 4節 本附錄 2節