米 川,白俊賢
(河北科技大學研究生學院,河北 石家莊 050000)
語音信號的線性預測作為一種工具,已被應用于語音信號處理的各個方面,是最有效和最流行的語音分析技術之一。它能夠較為精確地估計語音參數,用極少的參數就可以有效而又正確地表現語音信號的時域及頻域特性。
線性預測應用于語音,是因為線性預測可以提供一個非常好的聲道模型,這個聲道模型是用準周期脈沖或隨機噪聲激勵一個線性時不變系統所產生的輸出而生成的,而這樣的聲道模型對理論研究和實際應用都是相當有用的。本文就是用這樣的線性預測模型合成的語音。
語音信號線性預測分析的基本原理是把被分析的語音信號用一個模型來表示,即將信號看做某一個模型的輸出,這樣就可以用模型參數來描述信號。
語音信號的模型如圖1。

圖1 語音信號x(n)的模型化表示
其系統傳遞函數為:

H(z)是以系數ai和增益G為模型參數的全極點模型。用系數{ai}可以定義一個p階線性預測器F(z),即:

將這個p階線性預測器從時域角度理解為:用信號的前p個樣本來預測當前的樣本得到如下預測值:

預測器的預測誤差:

短時預測均方誤差為:


即:

解方程得到線性預測系數ai的值。
首先錄制了一段語音,內容為“語音信號處理”,采樣頻率為8 kHz,對語音信號進行歸一化處理,消除直流分量。然后將語音信號進行分幀處理,每幀240個樣點,分別求出每一幀信號的線性預測系數,線性預測計算階數為12。其中,樣點(3601-3841)這一幀信號的線性預測系數提取如圖2所示。

圖2 一幀語音信號的線性預測系數
線性預測系數為:

線性預測參數法是一種簡單和實用的語音信號合成方法,特點是復雜度和成本較低,線性預測語音編碼可以有效地估計基本語音參數,如基音、共振峰、譜、聲道面積函數等,可以對語音的基本模型做出精確的估計。求出預測誤差e(n)和預測系數ai后,可求出合成語音

線性預測合成模型是一種濾波器模型,這種語音合成器的框圖如圖3所示,其中的聲道參數和時變濾波器由預測系數ai直接遞歸濾波器所構成。語音合成的結構如圖4所示。

圖3 語音合成器的框圖

圖4 語音合成的結構圖
語音信號參數合成都是一幀一幀計算的,而且信號在分幀的過程中還有重疊,那么在語音合成的時候如何把一幀幀的數據連接成連續的、平滑的數據流,而不使數據中間產生中斷或跳變非常重要。
設有兩個時間系列h(n)和x(n),它們的長度相差很大。若h(n)的長度為N、x(n)的長度為N1,而N1?N。將x(n)分幀為xi(m),相鄰兩幀之間互不重疊,每幀長與h(n)的長相接近,然后將每幀xi(m)與h(n)做卷積。
假設h(n)是時不變的,在它的后面補零值,有

xi(m)每幀長度為N+M-1,要求分幀后每幀的最后一個數據點都在iM(i=1,2,…)處,對于第一幀(i=1)數據幀的最后一點在M處,其長度只有M,達不到N+M-1,只能向前補了N-1個零值,所以在分幀前數據x(n)要前向補N-1個零值,有

前向補零后的(n)進行分幀,每幀xi(m)為xi(m)=(n) (i-1)M+1≤n≤iM+N-1

對(m)和xi(m)計算卷積,得到

每幀卷積結果舍去前N-1個點,而只保留最后M個值,即每次卷積只取yi(m)的最后M個值:

而輸出序列為

原始語音信號波形和合成語言信號如圖5所示。

圖5 原始語音信號波形和合成語音信號
本文對語音信號的線性預測分析進行了比較系統的探討,并用Matlab進行了具體實驗,說明了線性預測可提供一種簡單而有效的用少量參數來表示語音信號的方法,這種方法是以語音信號數字模型為基礎。實際應用中,線性預測模型帶來的誤差不大、分析計算簡單、速度快、計算所得數據量少,因此它在語音分析中的地位是極其重要的。
[1] Linde,Buro,Gray.An Algorithm for Vector Quantizer Design[J].IEEE Transaction Communication,1980,(28):84-95.
[2] 韓紀慶.語音信號處理[M].北京:清華大學出版社,2004.
[3] 王京輝.語音信號處理技術研究[M].濟南:山東大學,2008.
[4] 周偉雄.語音信號的神經網絡非線性分析模型及應用[D].廣州:華南理工大學碩士學位論文,2010.
[5] 高曉紅.基于非線性理論的漢語語音的分析[D].長沙:中南大學碩士學位論文,2012.
[6] 宋知用.MATLAB在語音信號分析與合成中的應用[M].北京:北京航空航天大學出版社,2013.