高俊峰 陳俊國
(山東科技大學能源與礦業工程學院力學系 山東 青島 266590)
語音轉換是一種在保留語義信息的同時修改語音特征的技術。此技術可用于各種任務,如語音輔助[1]、語音增強[2]和身份轉換[3]等。
語音轉換可以表述為估計從源語音到目標語音的映射函數的回歸問題,在此之前提出的較為成功的方法有:基于高斯混合模型(GMM)的統計方法[4-5];基于神經網絡(NN)的方法,如受限玻爾茲曼機(RBM)[6]、前饋神經網絡(FNN)[7]、循環神經網絡(RNN)[8]、卷積神經網絡(CNN)[9];基于范例的方法,如非負矩陣分解(NMF)[10-11]等。
以上VC方法通常使用源語音和目標語音進行時間對齊的平行數據作為訓練數據,如果完全對齊的平行數據可獲取,則獲取映射函數的難度會大大降低。但在實際應用方案中,很難收集到平行數據,即使獲取到了足夠的數據也需要執行自動時間對齊,因為平行數據中的錯位可能導致轉換語音質量下降,因此有一定的失敗概率,所以這些方案需預篩選和數據校正。
由于訓練條件的缺陷,非平行語料下的VC研究難度大且起步晚。當前,一些非平行VC研究使用了自動語音識別(ASR)模塊或額外的說話者之間的部分平行語料數據。盡管它們對訓練有幫助,但準備附加模塊會增加其他成本,從而限制其應用。為了提高普適性和精簡性,近期一些研究使用了概率神經網絡(例如自適應受限玻爾茲曼機(ARBM)[12]和變分自動編碼器(VAE)[13]),這些模型沒有多余的數據、模塊和時間對齊過程。它們的局限性在于需要顯式地近似數據分布(通常使用高斯分布),而這往往會導致通過統計平均造成的過度平滑。為了克服數據分布問題,最近的研究結合了GAN[14],它可以學習接近目標的生成分布而無須顯式逼近,從而避免了由統計平均引起的過度平滑。但這些模型難以學習語音的時序性特征。
為進一步提高語音轉換效果,Kaneko等[15]提出了CycleGAN-VC模型,此模型將循環一致性生成式對抗網絡(CycleGAN)[16]應用到語音轉換中,使用了門控CNN來配置CycleGAN,并使用身份映射損失[17]進行訓練,這使得網絡可以更好地保留語音信息的同時捕獲順序和層次結構。CycleGAN-VC的局限是只能用于兩個訓練樣本之間的語音轉換,為解決多說話人的語音轉換問題,日本的NTT實驗室又提出了StarGAN-VC[18],但仍舊只能解決訓練的幾個特定說話人間的語音轉換。
盡管CycleGAN-VC已經在非平行數據下取得不錯的成果,并且之后又提出了修改生成器和判別器結構的CycleGAN-VC2[19],但其實際語音轉換效果仍有較大進步空間。
另外,NVIDIA最近提出的StyleGAN[20]被用來生成高分辨率真實的圖片,其核心在于對生成過程的分層精細控制以及對特征的解纏研究。其生成樣本的本質是對不同訓練樣本的特征進行融合。
本文提出一種基于Style-CycleGAN-VC的非平行語料下的語音轉換新方法。其主要思想是將StyleGAN精細的生成器結構融合到CycleGAN-VC的生成器網絡中,添加輔助的特征提取神經網絡提取頻譜特征用于特征融合,并通過構造超參數來控制特征提取網絡對轉換網絡架構的影響。實驗表明,新模型提高了語音轉換效果且實現了任意說話人間的語音轉換。
另外,Style-CycleGAN-VC與Info-GAN[21-22]有較大不同。Info-GAN通過帶有互信息的損失函數,使其更傾向于生成數據的抽象特征與輸入隱碼之間聯系的可解釋性,而本文模型則更傾向于生成數據的真實性及不可分辨性。
生成式對抗網絡以一種非監督學習的方式,通過讓兩個神經網絡相互博弈的方法進行學習。生成對抗網絡由一個生成網絡和一個判別網絡組成,生成網絡從潛在空間中隨機采樣作為輸入,其輸出結果需要盡量模仿訓練集中的真實樣本。判別網絡的輸入為真實樣本或生成網絡的輸出,其目的是將生成網絡的輸出從真實樣本中盡可能地分辨出來,而生成網絡則盡可能地欺騙判別網絡,兩個網絡相互對抗,不斷調整參數。生成對抗網絡常用于生成以假亂真的圖片。
CycleGAN由兩個生成網絡和兩個判別網絡組成,生成網絡A是輸入A類風格的圖片輸出B類風格的圖片,生成網絡B是輸入B類風格的圖片輸出A類風格的圖片。生成網絡中編碼部分的網絡結構采用Convolution-Norm-ReLU作為基礎結構,解碼部分的網絡結構由Transpose Convolution-Norm-ReLU組成,判別網絡由Convolution-Norm-Leaky_ReLU作為基礎結構。其整體結構圖如圖1所示,其中:X為源數據域;Y為目標數據域;x為X中的數據;y為Y中的數據;G為從X到Y的映射函數;F為從Y到X的映射函數;y2為x通過G映射后生成的數據;x1為y2通過F映射后生成的數據;Dx為判別x2真假的判別器;x2為y通過F映射后生成的數據;y1為x2通過G映射后生成的數據;Dy為判別y2真假的判別器。

圖1 CycleGAN整體結構
StyleGAN為生成對抗網絡提出了另一種生成器結構。此結構可以在無監督學習下分離高級屬性(例如在人臉上訓練時的姿勢和身份)和生成圖像(例如,雀斑、頭發)中的隨機變化,并能夠直觀地、按照特定尺度地控制生成。其詳細結構如圖2所示。

圖2 StyleGAN詳細結構
輸入圖像的整體特征和細微特征間存在耦合,而耦合就導致了圖像可控性差,無法對單個特征進行調節。從結構圖可以看出,StyleGAN提出了一種無監督但又可控性強的方案,對不同層次的卷積層進行操作,從而最終實現特征解耦和生成特征的可解釋性和可控性。
無論是目前雙向轉換效果較好的CycleGAN-VC和CycleGAN-VC2,還是對多說話人進行語音轉換的StarGAN-VC,對其生成器進行分析,其訓練過程本質上是對語音特征的記憶存儲以及融合過程。而StarGAN-VC之所以效果不如CycleGAN-VC,是因為其使用了向量來表示不同的說話人,從而使生成器調用大量網絡層參數中的不同部分(不考慮特征耦合)進行生成。但CycleGAN的生成器參數與其相差不多,而且一個生成器只用于存儲記錄一個說話人的語音特征,所以在語音特征總體和細節上都會更好,從而使得轉化效果更好。
對此,本文提出一種Style-CycleGAN-VC對生成器整體結構添加輔助特征提取網絡,將之前的特征記憶存儲缺陷轉化為特征提取過程,并借鑒StyleGAN對生成圖片分辨率不同層次的精細控制結構,將其融合到生成器的主結構中,重構損失函數,最終實現語音轉換效果的提高和任意說話人下的任意語音轉換。
1) 總架構。假設源數據x∈X,目標數據y∈Y,模型的目標是在不使用平行數據的情況下,學習它們之間的映射GX→Y。整個系統分為正向和逆向兩部分,二者連接構成循環網絡。兩部分分別由一個生成器和一個判別器構成,其中生成器由兩部分組成,分別是特征提取網絡和特征融合網絡。選取前向部分進行說明,數據X通過GY→X嘗試生成滿足Y分布的數據F_Y,判別器Dy通過與真實的目標數據進行對比,判斷出F_Y是假的目標數據,從而驅使生成器生成更真實的數據,同時驅使判別器更好地識別數據真假。同時,為了使生成器生成的數據是在語音特征上不是在語音信息上與目標數據接近,一個約束是使用循環網絡的另一部分,將F_Y作為輸入,通過GY→X生成X’,通過逼近X與X’,來實現語義信息的保留,另一個約束是將Y作為輸入,使用GX→Y生成I_Y,通過逼近Y與I_Y,進一步保證語音信息的保留。網絡結構的拓撲圖如圖3所示。

圖3 Style-CycleGAN-VC全局架構
2) 生成器和判別器架構。生成器主要由兩部分構成,分別為特征融合和特征提取網絡,特征融合又分為編碼、轉換、解碼三部分。
(1) 特征提取網絡與判別器。特征提取網絡可以看作是對需要轉化的目標數據的特征提取,與判別器架構類似,判別器結構和參數如圖4和表1所示。由于判別器只通過將頻譜的特征映射到低維空間判斷數據真假,所以可以看作判別器提取到了數據的非信息特征,特征提取網絡與之不同之處在于去除了Sigmoid層,而且使用的全連接層的輸出維度更高。二者的其他實現采用二維卷積層、實例歸一化層、門控CNN層。其中門控CNN不僅實現了語言建模[23]和語音建模[24]的最新技術,而且實現了對順序數據進行并行化。在門控CNN中,GLU是數據驅動的激活函數,公式如下:

表1 判別器參數表

圖4 判別器結構
Hl+1=(Hl×Wl+bl)?σ(Hl×Vl+cl)
(1)
式中:Wl和Vl表示不同的卷積核;bl和cl是偏置參數;σ是S形函數;?是元素乘積。根據最新的研究表明,采用門控CNN可以替代RNN并選擇性地根據先前的層狀態傳播信息。
(2) 特征融合網絡。特征融合網絡分為三部分,編碼器部分是對數據進行下采樣,將頻譜信息映射到低維空間后,使用6個殘差塊網絡進行特征轉換。使用一維卷積層、實例化歸一層、門控CNN來實現。轉換部分由6個殘差塊實現,其表達式如下:
Xk=Hk(Xk-1)+Xk-1
(2)
式中:Hl表示兩組一維卷積,自適應實例歸一化(AdaIN),門控CNN,其中,自適應實例歸一化操作定義為:
(3)
式中:μ(xi)為均值;σ(xi)為方差;每個特征映射xi分別標準化后,使用放射變化的可學習參數ys,i和yb,i分別進行縮放和偏置操作。
本文使用一個超參數λγ_β控制輔助的特征提取網絡對主網絡的影響,公式如下:
ysn,i=(1+γ×λγ_β)×(ys,i×(1-λγ_β))
(4)
ybn,i=(1+β×λγ_β)×(yb,i×(1-λγ_β))
(5)
式中:γ和β是分別通過仿射變換An得到的參數。
所以,最終的AdaIN操作為:
(6)
特征融合網絡的參數設置如表2所示。

表2 生成器參數表
將上述兩個網絡整合,最終得到的生成器總結構如圖5所示,其中“S×5”表示此處為5個與模塊S相同的模塊。

圖5 生成器結構
(1) 對抗性損失。對抗性損失是為了使生成器生成的數據難以被分辨真假,生成器GX→Y通過最小化損失生成Dy無法分辨真假的數據,Dy通過最大化損失不被GY→X所欺騙。用公式可以表示為:
Ladv(GX→Y,Dy)=Ey~PData(y)[‖Dy(y2)‖]+
Ey~PData(y)[‖1-Dy(GX→Y(x,y))‖2]
(7)
式中:y~Pdata(y)表示y來自于真實數據分布Pdata(y),x與之類似;E表示對所有數取均值。
(2) 循環一致性損失。僅使用對抗性損失并不能保證生成的數據保留語音的語音信息,而循環一致性損失通過最小化循環生成的數據與源數據的L1范數,幫助保存語音信息。用公式可以表示為:
Lcyc(GX→Y,GX→Y)=Ex~PData(x)[‖GY→X(GX→Y(x,y))-x1‖]+
Ey~PData(y)[‖GX→Y(GY→X(y,x),y)-y1‖]
(8)
(3) 身份映射損失。在單向過程中,使用身份映射損失,將目標數據作為輸入,并將輸出與目標數據進行逼近,驅使生成器保證語音信息的保留。用公式表示如下:
Lid(GX→Y,GX→Y)=Ex~PData(x)[‖GY→X(x,x)-x1‖]+
Ey~PData(y)[‖GX→Y(y,y)-y1‖]
(9)
(4) 總損失。使用超參數λcyc、λid作為系數,將前文中的三項損失加權相加,得到總損失,公式如下:
Lfull(GX→Y,GX→Y)=Ladv(GX→Y,Dy)+
Lαdv(GY→X,Dx)+λcycLcyc(GX→Y,GX→Y)+
λidLid(GX→Y,GX→Y)
(10)
在預處理過程中,使用WORLD模型 ,把音頻文件分解為對數基頻參數(logF0)、頻譜參數(SP)、非周期性參數(AP),并隨機選取128幀固定長度的段,設置初始λcyc為10,λid為5,λγ_β=10-5,λγ_β的值隨著迭代次數的增加線性增加,并設置在10 000次迭代后,λid為0,且設置λγ_β=0.9時保持不變。同時,使用Adam優化器[25]訓練網絡,動量項設為0.5,生成器的學習率為0.000 2,判別器學習率為0.000 1,當迭代次數超過100 000次后,學習率線性降低。同時使用Xavier[26]初始化參數,使每一層輸出的方差盡量相等。
實驗使用Voice Conversion Challenge 2016 中基于DAPS(數據和制作演講)數據集的開放數據集。實驗時,每段錄音被下采樣到16 kHz、16 bit。
為加速實驗,實驗在兩個平臺下分別運行,分別是本地的TensorFlow版和AIstudio云平臺的Paddlefluid版,由于Paddlefluid版本的代碼是在AIstudio上運行,平臺限制導致數據預處理部分與語音合成部分放在了本地運行,與神經網絡相分離。
梅爾倒譜(Mel-cepstral)失真[27]是評估合成的MCEP質量的常用方法,但是最近的三項研究[13,28-29]表明此方式存在一定局限性。因為MEL-CD內部呈現高斯分布, 導致其傾向于過平滑。因此,本文采用MOS測試和ABX測試評估轉換后的語音質量。
作為對比實驗,將本文方法分別與基于GMM、StarGAN-VC、CycleGAN-VC的方法進行比較,選取4組說話人進行神經網絡的訓練并進行評估。盡管Style-CycleGAN-VC可以實現任意樣本下的語音轉換,但為了控制變量從而與其他模型進行等價對比,本文實驗過程中仍舊對Style-CycleGAN-VC模型進行了4次重新訓練。另外,在復現過程中發現CycleGAN-VC生成損失中使用的對數函數訓練不夠穩定,使用L2范數對其進行替代,并使用相同的參數初始化。
對于任意樣本的語音轉換,本文使用了未經網絡擬合的TM1和TF2說話人的樣本進行轉換實驗來測試,并將評估結果分別與GMM、ARBM、StarGAN-VC、CycleGAN-VC進行對比。
實驗使用WORLD模型得到對數基頻參數(logF0)、頻譜參數(SP)、非周期性參數(AP)。轉換完成后對神經網絡得到的SP、使用單高斯模型轉換的logF0,以及不做改變的AP進行語音合成。最后,對得到的合成語音進行質量和相似度評估。
整個語音合成過程如圖6所示。

圖6 語音轉換總體框架
不同模型間的對比實驗共分為四組,分別是SF1->TF2、SM1->TM2、SF1->TM2、SM1->TF2,使用MOS對GMM、StarGAN-VC、CycleGAN-VC、Style-CycleGAN-VC四種模型的實驗結果的語音質量進行評估,結果如圖7所示。

圖7 不同模型語音轉換質量對比結果
可見,在語音轉換質量方面,相較于CycleGAN-VC、StarGAN-VC和GMM,Style-CycleGAN-VC無論是在性別間還是性別內的轉換效果均有所提高。另外,二者都在女轉男的測試中得分高于男轉女。
用ABX測試法對Style-CycleGAN-VC的四組語音轉換結果相似度進行評估,結果如圖8所示。

圖8 Style-CycleGAN-VC語音相似度分析結果
在語音相似度方面,性別間轉換由于基頻的原因,實驗結果與預測的相同,全部更接近轉換目標,而性別內轉換,由于不同說話人之間的音色差別有些較大有些較小導致對不同數據的實驗結果相差較大,但從實驗結果也可以看出轉換更偏向于目標。
對任意樣本下的實驗分為兩組,測試結果如表3所示。

表3 任意樣本語音轉換質量及相似度得分表
Style-CycleGAN-VC的語音轉換質量高于ABRM,與CycleGAN-VC、StarGAN-VC相差較小,而語音相似度方面得分有所降低。但考慮到Style-CycleGAN-VC未經過轉換語音訓練而直接進行轉換,所以實驗結果可以接受。
任取CycleGAN-VC和Style-CycleGAN-VC一組語音數據轉化為相應波形圖如圖9所示。

圖9 SF1->TF2轉換結果波形圖
CycleGAN-VC轉化語音的波形圖幅值在特定位置超過1,而由此產生的噪音會嚴重影響語音質量,相比之下,Style-CycleGAN-V生成的語音則更為平滑,因此轉換過程產生的噪聲明顯降低,語音質量明顯提高。
經實驗表明,Style-CycleGAN-VC實現了非平行語料下任意樣本間的語音轉換,且與ABRM、StarGAN-VC、CycleGAN-VC等主流模型相比,新模型對特定說話人的任意樣本的語音轉換效果有所提高,對任意說話人的任意樣本的語音轉換效果與CycleGAN-VC模型相近。
本文提出一種用于非平行語料下實現任意說話人的任意樣本間語音轉換的方法Style-CycleGAN-VC。由于基于深度學習的方法很難實現端對端的語音轉換,而是使用了對數據進行預處理使用頻譜做轉換的方式,這導致后期進行語音合成時,需要使用單高斯模型轉換法對基頻進行轉換。目前階段由于頻譜轉換的質量問題,這種方法的局限性不會表現明顯,但隨著網絡架構的進一步細化或頻譜轉換質量的進一步提高,這種方案就會成為整體語音轉換系統的短板從而降低語音轉換的質量。而這也是前文中提到的男女之間轉換質量存在明顯差異的原因。
另外,從本文提出的網絡生成器架構來看,由于輔助特征提取網絡從生成器主網絡中分離,從而使原本需要將特征保存在生成器網絡中的特征轉化為特征提取過程,由此得到一個語音轉換的通用模型,這使得可以像任意圖片間的風格遷移一樣,實現任意樣本下的語音轉換,而無須通過分別訓練擬合不同樣本數據得到不同的模型分別做語音轉換。不足之處在于通用模型的語音相似度和語音轉換質量還有待提高。希望未來技術進一步發展實現無限逼近真實語音效果的語音轉換。