楊明極,張貴山
(哈爾濱理工大學 測控技術與通信工程學院,哈爾濱 150080)
語音作為信息傳遞的重要載體,與其相關構成的通信、處理、存儲和編碼等語音系統(tǒng)已成為人們信息交流中不可或缺的一部分,且已廣泛應用于社會各個領域[1].將語音系統(tǒng)作為通信媒介,其性能優(yōu)劣直接決定了信息交流是否通暢,而輸出的語音質量好壞是評價系統(tǒng)整體性能的關鍵因素,因此如何有效的對語音質量進行評價是本文研究的重點.
已有文獻[2-6]提出了一些對語音質量進行評價的方法.文獻[2]為2004年國際電信聯盟提出的ITU-T P.563,這是第一個被標準化的無參考語音質量評價方法.文獻[3]提出了一種基于無線鏈路參數的GSM網絡語音質量客觀評估方法,該方法采用多元回歸與主成分分析相結合的建模方法,可以較精準的評價GSM網絡中的語音質量.文獻[4]中N. Parmar等人將MFCC特征與RPS特征結合起來,用GMM模型作為映射模型,提出了一種只基于輸出語音的質量評價方法.文獻[5]中RK Dubey等人提出利用聽覺特征和MRAM特征作為無參考語音質量評價算法的輸入特征.文獻[6]中M. Narwaria等人提出了一種基于深度學習的語音質量評價算法.該算法中將能反映人耳特征參數的梅爾頻率譜倒數(MFCC)輸入到支持向量回歸機(SVR)中,直接得到與主觀評價相關的分數.盡管上述研究已經取得了良好的研究成果,但是與主觀評價的相關性仍然亟待提高.
本文針對現有無參考語音質量評價算法與主觀分數相關性不高的缺點以及無法滿足應用需求的情況,提出用棧式自動編碼機和傳統(tǒng)的BP神經網絡相結合進行解決.
文中提出的語音質量評價系統(tǒng)訓練、測試過程如圖 1所示,首先對輸入的語音數據進行分幀、取對數功率譜特征等處理,隨后將其輸入到棧式自動編碼機模型中,通過不斷調整權值與偏置對棧式編碼機進行訓練.最后用訓練好的棧式自動編碼機獲取能反應語音本質的特征,將其與相對應的主觀MOS分數輸入到BP神經網絡中進行訓練,得到本文所需的語音特征映射到主觀分數的網絡模型.
圖1 語音質量評價系統(tǒng)訓練、測試框架圖Fig.1 Evaluation system of speech quality
文中方法主要基于棧式自動編碼機和BP神經網絡去實現,下面介紹本文所使用的算法.
自動編碼機(AE)是是一種盡可能恢復輸入層數據的神經網絡,主要利用人工神經網絡中層次網絡的特點[7].假設指定一個神經網絡,通過不斷調整權值與偏置使其輸出與輸入結果相同,這樣就可以在隱藏層得到輸入的另一種表示,這些表示就是特征(representation)[8].棧式自動編碼機(SAE)是一個由多個單層自動編碼機組合的深度神經網絡,其前一層自編碼機的輸出作為后一層自編碼機的輸入.棧式自編碼神經網絡的編程過程就是按照從前向后的順序執(zhí)行每一層自編碼機.同理,棧式自動編碼機的解碼過程就是,按照從后往前的順序執(zhí)行每一層自編碼機的解碼[9].
下面介紹自動編碼機的編碼、解碼過程以及重構誤差:
1) 式(1)為自動編碼機的編碼函數,其中x為本文給定的預處理之后的語音對數功率譜特征數據,y為隱藏層的向量,W和b分別為權重矩陣和偏置向量:
y=fn(x)=s(Wx+b)
(1)
為了避免少數樣本被"覆蓋"并提高其權重,本文對映射函數進行了改進:
y=fθ(x)=s({W?x+F(x,cj)」+b)
(2)
2) 式(3)為自動編碼機的解碼函數,將隱藏層的表示y作為輸入得到輸出層表示z,其中θ′={W′,b′}:
z=gθ′(y)=s(W′y+b′)
(3)
3) 損失函數:從上述步驟1和步驟2可知,每一個輸入向量x(i)都將映射得到一個與之對應的重構向量z(i)和隱含向量y(i).其中θ和θ′的最優(yōu)解應使均方誤差最小,其表達式如式(4)所示:
(4)
式(4)中損失函數L取為Bernoullis分布(Bx)的距離,以此來更好的表達x和z的離散拓撲結構:
(5)
如果x是一個二元向量,LH(x,z)是x的負對數似然函數.棧式自動編碼機就是將疊加的AE逐層進行訓練,在最后一層得到所需特征的深度神經網絡[11],其構建和訓練過程可分為2個步驟:
1) 構建:根據提取語音本質的特征這一要求構建棧式自動編碼機,確定所用的單層自動編碼機個數以及初始化權重.
圖2 自動編碼機結構圖Fig.2 Architecture of an autoencoder
2) 訓練:圖2為單層自動編碼機的原理圖,本文選用圖3所示的兩個AE進行疊加的棧式自動編碼機進行后續(xù)實驗.首先將預處理的語音特征x輸入到自動編碼機中,通過訓練第一層AE來學習第一層的特征h;將訓練的得到的語音特征h輸入到第二個AE中,最后得到本文所需的能夠反應語音本質的特征[12].
棧式自動編碼機主要是提取能夠表征語音質量的特征,還不能使主觀MOS分與其特征相對應.因此需要添加映射模型,本文使用BP神經網絡作為映射模型.
圖3 棧式自動編碼機結構圖Fig.3 Architecture of an stacked autoencoder
由于語音特征和主觀評價MOS分之間的映射模型為多元非線性的,難以準確地應用常規(guī)數學知識進行建模,因此本文通過BP神經網絡來表示這種多元非線性.BP神經網絡是一種采用反向傳播誤差方法進行訓練的多層前饋網絡.此外它由大量神經元連接構成來模仿人體大腦的神經網絡,具有轉移、加權與求和等功能[13].
語音特征映射到主觀評價MOS分的BP神經網絡訓練步驟如下:
2.2.1 初始化神經網絡
根據系統(tǒng)輸入矩陣(x1,x2)采用SAE提取的語音本質特征和和主觀MOS分數二維矩陣作為輸入層神經元,確定隱含層節(jié)點數,給定學習速率,確定隱含層激勵函數:
(6)
2.2.2 隱藏層映射計算
根據公式(7)計算隱藏層神經元值,其中n為隱藏層節(jié)點個數,Wij為隱藏層和輸入層間的權值,H是第n個隱藏層神經元值,q為神經元閾值.
(7)
2.2.3 輸出層映射計算
根據公式(8)計算輸出層神經元Yk,其中H為隱藏層神經元值,p為輸出層神經元的個數,wjk和r分別為權值和神經元閾值.
(8)
2.2.4 計算誤差
將Yk與實際的主觀MOS分進行比較,計算誤差ek:
ek=Yk-MOSscorek,k=1,2,…,p
(9)
2.2.5 更新權值
更新輸入層和隱藏層通過上上述中的得到的ek,輸出層和隱藏層權值分別為Wij和Wjk
(10)
2.2.6 閾值更新
根據步驟4中得到的誤差ek來更新閾值:
(11)
得到語音特征和主觀評價MOS分相映射的BP神經網絡.
本文結合棧式自動編碼機和BP神經網絡進行有效的語音質量評價,具體過程如下:
1) 利用語音數據庫中所有訓練樣本依次對多個自動編碼機進行學習.
2) 將多個AE組合成一個深度神經網絡.
3) 利用學習到的棧式自動編碼機提取本文系統(tǒng)所需的語音特征.
4) 將提取的特征以及主觀分數輸入到BP神經網絡中進行訓練.
本文系統(tǒng)選用的是ITU-T P. Supplement-23 database語音庫,語音庫中包含原始語音,經過處理的失真語音以及對應的MOS分數,國際電信聯盟提出的P.563就是利用該語音庫進行無參考的語音質量評價.為了證明文中系統(tǒng)的有效性和評價語音質量的性能,因此選用的訓練和測試語音庫與ITU-T P.563標準是一致的.其中測試和訓練所需的1328條語句是16kHz采樣,16bits量化,長度為8s.每個失真語句都已經標明了主觀MOS分值,分值范圍是1~5分.本文選取90%語句作為訓練數據,10%語句作為測試數據.
語音質量評價系統(tǒng)性能采用相關系數(R)和均方誤差(RMSE)兩個指標進行評估.
根據公式(12)計算客觀評價與主觀評價間的相關系數:
(12)
式中:D(X)是主觀MOS分數X的方差,D(Y)是客觀MOS分數Y的方差,Cov(X,Y)是X和Y的協方差.R的值介于0~1之間,其值越接近1,說明客觀語音質量評價越接近主觀語音質量評價.
根據均方誤差公式(13)來表征主觀評價值和客觀評價值相關系數的偏差程度:
(13)
這里N是測試語句個數.
根據公式(14)和公式(15)來表征三種不同的客觀評價算法的性能差異:
(14)
(15)
其中ΔR為本文算法相對于對比算法相關系數的增長率,▽RMSE為本文算法相對于對比算法均方誤差的下降率,下標″proposed″為文中提出的算法,″compare″為P.563或者基于FSVM的語音質量評價算法[14].值為正,證明本文算法和對比算法相比提高了與主觀質量評價的相關性,值為負,表明本文算法降低了與主觀質量評價的相關性.
本文應用棧式自動編碼機提取更好表征語音本質的特征,學習率為0.1,訓練次數500次.已有文獻[15]中說明對于多層自動編碼機,采用513維語音對數功率譜特征作為輸入、第一個AE隱層單元數為250時更適用于語音特征的提取,因此本文選擇上述棧式自動編碼機用于后續(xù)實驗.
針對本文語音質量評價系統(tǒng),如何選取第二個AE隱層單元數尤為重要,因此文中進行了不同實驗并進行了數據對比.圖 4 描述了系統(tǒng)的相關系數和均方誤差在不同隱層單元數下得到的結果.
圖4 隱層單元數對語音質量評價的影響Fig.4 Influence of the number of hidden layer elements on the evaluation of speech quality
由圖4可知,語音質量評價模型的相關系數隨著隱層單元數的增加而增加,且均方誤差隨之減少.當個數為40時,相關系數達到最高點,均方誤差達到最低點,這是因為隱藏層太緊密和太稀疏都不能有效地表征語音特征.
將棧式自動編碼機提取的特征輸入到訓練好的BP神經網絡中得到MOS分數.圖5-圖8分別是本文算法、基于FSVM算法、p.563算法和只基于BP神經網絡得到的測試樣本客觀評價值與主觀評價值的散點圖.圖中對角線由橫縱坐標均為主觀MOS分的點組成,而圓形的點是橫坐標為主觀MOS分值,縱坐標為客觀MOS分值.
判斷一種語音質量評價方法的優(yōu)劣是看其與主觀評價的相關度,相關度越高,該語音質量評價方法就越是理想.散點圖中的對角線代表主觀分數和客觀評價分數完全一致的理想狀態(tài),數據點分布越靠近對角線,說明評價結果越接近主觀評價.很明顯,SAE和BP(圖 5)相結合的方法較只基于BP神經網絡的方法(圖 8)有巨大的提升,驗證了將棧式編碼機應用到語音質量評價中有杰出的表現.此外,本文提出的方法(圖 5)測試數據分數分布較已有的ITU-T P.563方法(圖 7)
圖5 本文算法性能(R=0.9089,RMSE=0.4115)Fig.5 Performance of the article圖6 基于FSVM算法的性能(R=0.8427,RMSE=0.7250)Fig.6 Performance based on FSVM algorithm圖7 P.563算法的性能(R= 0.6051,RMSE= 1.3214)Fig.7 Performance of P.563 algorithm
和基于FSVM方法(圖 6)更接近對角線,說明文中方法具有更高的相關系數,較小的均方誤差.圖 9分別將三種方法下的得到的相關系數和均方誤差進行了對比.
圖8 基于BP算法的性能(R=0.4028,RMSE=1.4198)Fig.8 Performance based on BP algorithm圖9 三種方法下性能對比Fig.9 Performance comparison under three methods
根據公式(14)和公式(15)可以計算出,相比于P.563語音質量評價方法,本文算法相關系數提高了76.93%,均方誤差降低了68.86%;相比于基于FSVM的語音質量評價算法,本文算法相關系數提高了42.09%,均方誤差降低了43.24%.實驗結果表明,文中提出的方法在語音質量評價中具有較高的性能.
本文提出了一種棧式自動編碼機和BP神經網絡相結合的語音質量評價方法.首先將預處理的語音特征輸入到棧式自動編碼機中,提取更能表征語音的本質特征,隨后將該特征輸入到BP神經網絡中,訓練語音特征與主觀評價MOS分之間的映射模型.仿真結果表明,本文提出的算法與已有的ITU-T P.563和基于FSVM(模糊支持向量機)的語音質量評價方法相比,降低了均方誤差,與主觀評價的相關系數有明顯的提高,系統(tǒng)整體性能得到了極大的增強.同時也證實了棧式自動編碼機在提出語音特征時有杰出的表現.