楊 超,黃雋逸,劉云飛,孫 云,徐向旭
(1.海軍航空大學,山東煙臺264001;2.海軍航空大學青島校區(qū),山東青島266041;3.91604部隊,山東龍口265706;4.92635部隊,山東青島266041)
隨著信息技術的迅速發(fā)展,各類電子產品進入千家萬戶,音視頻等多媒體被廣泛應用于人們的生活、工作和學習中,音頻編碼應運而生,為了解決日益增加的多媒體信息和有限的存儲空間及傳輸帶寬的矛盾[1-3],音頻壓縮編碼研究也越來越受到重視。目前聲音編碼技術分為3類:波形編碼、參數(shù)編碼以及混合編碼[4-5]。應用各種帶寬擴展技術,聲音編碼標準發(fā)展的趨勢是從窄帶(8 kHz采樣)到寬帶(16 kHz采樣),再到超寬帶(32 kHz采樣),最終發(fā)展到全頻帶(48 kHz采樣);應用各種可分級聲音編碼技術,聲音編碼標準發(fā)展從固定碼率,到多速率,最終發(fā)展到更精細的可變比特率,更靈活地利用傳輸帶寬;傳統(tǒng)的音頻編碼標準通過各種降低延時和碼率的技術,提高其對聲音的編碼效率[6-8]。
當前最新的低延時音頻編碼格式Opus對于互聯(lián)網上的交互式聲音和音樂傳輸來說是最佳的選擇,同時也用于存儲和流媒體。它的采樣率從8~48 kHz,它的碼率范圍為6~510 kb/s,算法時延在2.5~30 ms之間。一些新的音頻編碼算法也在不斷涌現(xiàn),例如一種將預測編碼[9]、基于SOM自組織神經網絡[10-14]的矢量編碼[15-17]及Huffman[18]編碼相結合的音頻編碼算法[19](簡稱聯(lián)合編碼算法)。在保證聲音質量的前提下,該編碼方法的碼率小于MEPG-1 Layer3[20]的最低的64 kb/s標準碼率,且算法較簡單。為了進一步提高聯(lián)合編碼算法的碼率,本文提出通過合理選擇碼書長度值以減小碼率的算法。
預測編碼、基于SOM自組織神經網絡的矢量編碼及Huffman編碼相結合的音頻編碼算法[20](簡稱聯(lián)合編碼算法)是一種音頻壓縮編碼算法。圖1是聯(lián)合編碼算法編碼部分程序流程圖。
圖1 聯(lián)合編碼算法編碼程序流程圖Fig.1 Flow chart of the code program of the joint coding algorithm
首先,將1列聲音樣本采樣信號按照奇偶順序轉換成2列,即將原序號為(2×n-1)的組成為新的第一列,原序號為2×n,組成為新的第二列,其中n為正整數(shù)。每列信號分別按照線性預測編碼原理各自進行預測,計算當前的預測值和誤差值,共得到2個誤差值,將這2個誤差值組成一組2維矢量,進行基于SOM自組織神經網絡的矢量編碼,最后進行Huffman編碼;譯碼過程與編碼過程相反,最后對譯碼數(shù)據用切比雪夫Ⅰ型低通濾波器濾波。
目前,在國際上比較通用的音頻質量主觀評價標準是平均意見得分(Mean Opinion Score,MOS),MOS評分標準分為5級,見表1。在數(shù)字音頻通信中,一般高質量數(shù)字化音頻的MOS分在4.0~4.5分間,質量滿足長途電話網的要求,接近透明信道編碼,也稱之網絡質量。音頻通信質量一般MOS分在3.5分左右,此時能感覺到恢復的音頻質量有所下降,但能知道聲音中的內容,可以滿足多數(shù)音頻通信系統(tǒng)的適用要求。合成語音質量MOS分一般在2.0~3.0分之間,是指一些聲碼器的合成語音所能達到的質量,一般具有一定的可懂度,但是自然度和音色的確認方面不夠理想。
表1 MOS判分五級標準及相應的描述該級音頻質量的形容詞Tab.1 MOS grade five standard and the adjective that describes the quality of the audio level
通過客觀測量的方法來對音頻的編碼質量進行評價的方法稱為客觀評定方法,常用的客觀評定的方法有信噪比、平均分段信噪比等。它們的實質就是進行度量均方誤差,具有計算簡單的優(yōu)點,但是人對音頻質量的感覺不能單純地由此方法體現(xiàn),對于測試中、低速率音頻編碼尤其如此。
信噪比是一種常用的客觀測量標準,定義如下:
式(1)中:xi、yi分別代表音頻編碼算法的輸入信號和輸出信號;N代表音頻的樣點數(shù)。
本文將改變聯(lián)合編碼算法中量化矢量碼本的個數(shù),即碼書長度值,研究碼書長度值對壓縮率和碼率的影響,旨在尋找進一步提高聲音信號壓縮率,減小碼率的算法。
考慮到碼本編碼效率,一般碼書長度值選為2n,n為正整數(shù)。在保證聲音質量前提下,為了減小碼率,應盡量選擇較小值的碼書長度。實驗中,選取碼書長度值分別為2、4和8。利用聯(lián)合編碼算法分別進行碼書長度值為2、4和8的編、解碼實驗。編碼程序流程圖如圖1所示。其中,碼書長度值分別為2、4和8的編碼算法的不同之處是:在圖2的聯(lián)合編碼算法編碼程序流程圖中,在“對兩個誤差值做基于自組織神經網絡SOM的矢量量化”這一步驟中,設計SOM神經網絡時,分別設計神經網絡的輸出為2、4和8,再分別進行碼本數(shù)分別為2、4和8的碼本訓練,分別計算得到2、4和8個碼本。然后,用這2、4和8個碼本,分別對圖2的聯(lián)合編碼算法編碼程序流程圖,在“由當前的聲音樣本原始值和預測值之差計算得到2個誤差值”這一步驟中得到的,由每2個誤差值組成的誤差矢量進行矢量量化。
壓縮率的計算公式為:
式(2)中:α為壓縮率;r0為編碼后表示聲音樣本信號的二進制碼總位數(shù);ri為表示原始聲音樣本信號的二進制碼總位數(shù)。
碼率β的計算公式為:
式(3)中:μ為采樣率;η為平均碼長。
信噪比的計算如式(1)所示。
為了研究最小碼率,分別選擇了標準聲音樣本庫中的“雷聲”、“音樂”和“心跳”這3個日常生活中具有代表性的聲音樣本作為研究對象。其中,聲音樣本“雷聲”樣本的時域采樣率為11 025Hz,量化精度為8 bit;聲音樣本“音樂”和聲音樣本“心跳”樣本的時域采樣率均為22 050Hz,量化精度均為16 bit。
圖2所示的是采用聯(lián)合編碼方法對聲音樣本“雷聲”的編碼運算結果。聯(lián)合編碼的碼書長度值為8,碼率為16.568 kb/s,基于SOM的神經網絡訓練碼本的碼本訓練次數(shù)為200。圖2 a)、b)分別是原始聲音樣本信號“雷聲”的時域波形和頻譜;圖2 c)、d)分別是在對圖2 a)的“雷聲”樣本進行聯(lián)合編碼的編碼端的預測編碼部分,對誤差矢量信號進行矢量量化所產生的量化噪聲的時域波形和頻譜。從圖2 b)可見,信號的能量主要集中在2 500Hz之前。從圖2 d)可見,量化噪聲能量幾乎均勻分布在0~5 500Hz范圍內。因此,聯(lián)合編碼的譯碼端低通濾波器的通帶截止頻率設為2 500Hz,阻帶截止頻率設為3 750Hz,通帶波紋設為0.3dB,阻帶衰減設為10dB(下文同)。計算得到濾波器輸出信噪比為6.935 8。圖2 e)和圖2 f)分別是對圖2 a)進行聯(lián)合編碼所得到的聲音樣本“雷聲”的譯碼信號的時域波形和頻譜。
圖2 碼書長度值為8的條件下,聲音樣本“雷聲”的聯(lián)合編碼運算結果Fig.2 Results of joint coding of“Raytheon”sample under the condition that the codebook length is 8
表2是對“雷聲”聲音樣本進行碼書長度值為8條件下的聯(lián)合編碼所得到的譯碼信號MOS值,是10位聽力正常的評定者給出的聲音樣本“雷聲”的譯碼的MOS值。從表2可見,聲音樣本“雷聲”譯碼信號的MOS值平均分為3.1分,質量等級為可接受,譯碼聲音失真級別為“有察覺且稍覺得可厭”,可滿足多數(shù)音頻通信系統(tǒng)的適用要求。由圖2 e)和圖2 a)對比可見,譯碼信號時域波形的包絡基本沒有改變。所以,譯碼“雷聲”聲音可以辨別;由圖2 f)和圖2 b)對比可見,譯碼信號損失了頻率大于2 500Hz的高頻能量,而人耳對2 500Hz以上的高頻信號的敏感度較低,所以,人耳對譯碼聲音和原始聲音樣本的音質差別感覺不大。
表3是對聲音樣本“音樂”信號進行碼書長度值為8的聯(lián)合編碼得到的譯碼信號MOS值的判分,從表3可見,“音樂”MOS值的均值為3.8分,質量等級為可以接受,譯碼聲音失真級別為“有察覺且稍覺得可厭”,可以滿足多數(shù)音頻通信系統(tǒng)的適用要求。其中,聯(lián)合編碼低通濾波器的通帶截止頻率設為4 000Hz,阻帶截止頻率設為6 000Hz,通帶波紋設為0.3dB,阻帶衰減設為10dB(下文同);碼率為33.075 kb/s。
表4是對聲音樣本“心跳”信號進行碼書長度值為8的聯(lián)合編碼得到的譯碼信號MOS值的判分,從表4可見,“心跳”MOS值的均值為4分,譯碼聲音失真級別為良,在數(shù)字音頻通信中,屬于一般高質量數(shù)字化音頻,質量滿足長途電話網的要求,接近于透明信道編碼,為網絡質量。其中,碼率為33.075 kb/s;濾波器的通帶截止頻率設為2 000Hz,阻帶截止頻率設為2 500Hz,通帶波紋設為0.3dB,阻帶衰減設為10dB(下文同)。
表2 對聲音樣本“雷聲”樣本進行碼書長度值為8的聯(lián)合編碼所得到的譯碼信號MOS值Tab.2 MOS value of the decoding signal obtained by the joint encoding of the codebook length of 8 for the"thunder"voice sample
表3 對“音樂”聲音樣本進行碼書長度值為8的聯(lián)合編碼得到的譯碼信號MOS值Tab.3 MOS value of the decoding signal obtained by the joint encoding of the codebook length of 8 for the"music"voice sample
表4 對“心跳”聲音樣本進行碼書長度值為8的聯(lián)合編碼得到的譯碼信號MOS值Tab.4 MOS value of the decoding signal obtained by the joint encoding of the codebook length of 8 for the"heartbeat"voice sample
表5是對聲音樣本“音樂”、“心跳”和“雷聲”采樣碼書長度值分別為2、4和8時進行聯(lián)合編碼運算結果。由表5可見,同一樣本,隨著碼書長度值的增加,譯碼聲音的信噪比和MOS分數(shù)值增加,質量變好,碼率也增加;聲音樣本“雷聲”在碼書長度值為4和聲音樣本“音樂”以及聲音樣本“心跳”在碼書長度值為2時的碼率均為11.025 kb/s,對應表1中的MOS判分為2,譯碼聲音質量等級為“差”,失真級別為“明顯察覺且可厭但可忍受”。即譯碼聲音具有一定的可懂度,但是音色不夠理想;聲音樣本“雷聲”在碼書長度值為8碼率為16.568 kb/s和聲音樣本“音樂”以及聲音樣本“心跳”在碼書長度值為4碼率為22.025 kb/s時,對應表1中的MOS判分為3,譯碼聲音質量等級為“可”,失真級別為“有察覺且稍覺可厭”,譯碼聲音達到一般音頻通信質量要求。
表5 碼書長度值不同的條件下的3種聲音樣本的聯(lián)合編碼運算結果Tab.5 results of joint encoding of three kinds of voice sample under different conditions of codebook length
通過合理選擇聯(lián)合編碼的碼書長度值,可以減小碼率。聯(lián)合編碼方法對聲音樣本“雷聲”、“音樂”和“心跳”在各自對應的碼書長度值下,在譯碼聲音的音色稍差一些的情況下,信號的壓縮編碼可以達到11.025 kb/s的最小碼率;在譯碼聲音滿足一般通信的情況下,信號的壓縮編碼范圍可以達到16.568~22.025 kb/s,較聯(lián)合編碼在碼書長度值為31時的碼率62.5 kb/s有所減小,遠低于MEPG-1 Layer3的最低64 kb/s標準碼率。