王琳,黃浩
(新疆大學信息科學與工程學院,新疆 烏魯木齊 830017)
語音轉換(VC)旨在改變說話人身份而不改變說話內容的過程。根據(jù)訓練數(shù)據(jù)的來源和類型可分為平行VC和非平行VC。平行VC利用轉換模型學習聲級之間的映射關系從源說話人到目標說話人的幀。一般使用的模型包括高斯混合模型[1]、深度神經網絡[2]、循環(huán)神經網絡[3]等。
實際上,收集這種平行語音語料庫可能很困難。因此,研究工作越來越集中在非平行VC上。語音后驗圖(PPG)[4]是非平行VC的典型早期方法。從非特定人自動語音識別器中提取PPG特征幀級語言表示。在實際應用中,PPG特征仍然包含一些說話人信息,往往會導致在轉換階段與預期說話人相似性方面的性能不令人滿意。為了提高說話人相似度方面的性能,生成對抗網絡(GAN)的變體通過應用鑒別器來模仿人類的聽覺感知,如CycleGAN[5]和StarGAN[6]。然而,這些基于GAN的模型通常仍然難以訓練。
變分自編碼器(VAE)是這些方法針對非平行VC提出的易于訓練的常用模型?;赩AE的VC通常采用編碼器-解碼器框架來學習內容和說話人表征的解糾纏。在傳統(tǒng)的基于VAE的VC[7-8]中,編碼器從輸入聲學特征中提取說話人獨立的隱變量,解碼器從隱變量和給定的說話人表示中重建聲學特征。然而,VAE的建模局限于假設的高斯分布,而實際數(shù)據(jù)的分布可能要復雜得多。在VAE的基礎上,通過對變分自編碼器進行矢量量化(VQ)形成VQ-VAE[9]以有效解決這一問題。VQ-VAE是由DeepMind開發(fā)的一種強大的生成模型,也被應用于非平行VC。與VAE相比,基于VQVC的優(yōu)勢在于它能夠通過嵌入字典學習先驗知識,而不是使用預定義的靜態(tài)分布,如高斯分布。矢量量化中的嵌入字典學習完全表示不同的語音內容。雖然VQVC已被證明是一種很有前途的內容和說話者表示解糾纏的方法,但是現(xiàn)有基于VQVC的方法仍然存在一定局限性。在模型訓練過程中主要選擇梅爾語譜作為輸入聲學特征,依賴于聲學特征的自構誤差,不可避免地存在一些信息缺失。由于缺乏語言監(jiān)督,因此內容表征很難被解開。為解決VQVC中存在的問題,本文提出2種策略:1)選用自監(jiān)督預訓練表示代替?zhèn)鹘y(tǒng)的梅爾語譜學習內容表征;2)使用聯(lián)結時序分類(CTC)[10]文本監(jiān)督輔助網絡提純內容信息。
最近,自監(jiān)督學習(SSL)在語音處理方面也取得了顯著的成果,基于SSL的表征可用于音素識別[11]和說話人分類[12-14],這表明SSL表示中包含的語音和說話人信息都是遺傳的。因此,自監(jiān)督預訓練表示(SSPR)被越來越多應用于語音轉換任務中。之前的一些工作試圖將SSPR引入到VC任務。例如,FragmentVC[15]是1個any-to-any VC模型,它可以將任意源說話人的語音轉換為任何目標說話人,甚至是在訓練期間未見過的說話人。FragmentVC從SSPR中提取語音信息和目標說話人信息,但它需要額外的交叉注意力模塊來對齊源特征和目標特征。
本文將基于自監(jiān)督預訓練模型提取的特征作為系統(tǒng)最初的內容嵌入,送入內容編碼器提取內容表征。模型經過內容編碼器的輸出將被VQ量化為嵌入詞典,表示語言信息。解碼器將量化的內容表示和說話人表征預測聲學特征。VQVC難以將只包含內容信息的表征與自監(jiān)督預訓練表示中聲學特征分離開來,為了解決VQVC存在的問題,本文設計CTC輔助網絡。通過引入強文本監(jiān)督對內容編碼器輸出的表示進行建模,以提高模型的解纏能力。CTC已成為當前端到端自動語音識別(ASR)任務中廣泛使用的訓練目標函數(shù)[16-17]。CTC輔助網絡能夠引導內容編碼器學習更純的內容表示。CTC loss的好處是讓內容編碼器的輸出不受序列長度的影響。此外,它還考慮了整個特征序列中的全局信息。本文提出使用自監(jiān)督預訓練表征混合VQ和CTC算法的非平行語音轉換,模型被命名為SSPR-CTC-VQVC。
受預訓練SSL表示和瓶頸特征的啟發(fā),越來越多的文章使用SSPR作為初始語言信息,并將其輸入到語音轉換系統(tǒng)中。內容編碼器通過限制瓶頸特征最終獲得與說話人相關的內容信息。將預訓練模型WavLM[18]作為語音轉換系統(tǒng)初始的內容嵌入。WavLM模型結構如圖1所示,模型的結構與文獻[18]的結構相同。
圖1 預訓練模型WavLM結構Fig.1 Structure of pre-trained model WavLM
本文采用自監(jiān)督預訓練模型WavLM通過Transformer的最后一層輸出作為內容編碼器系統(tǒng)輸入,用來提取初階的內容表示。
VQVC通過嵌入字典學習先驗來表示完全不同的語音內容。矢量量化器在矢量量化嵌入字典的幫助下,將從內容編碼器輸出的連續(xù)信息編碼為一組離散的嵌入。文獻[19]等工作表明,VQ嵌入字典中的每個嵌入都與語音音素有密切的關系,即VQ嵌入字典具有對音素集建模的能力。VQ-VAE結構如圖2所示。嵌入字典正式寫為A=[a1,a2,…,aN],A∈N×D,有N個不同的碼本。在前向計算時,由SSPR得到的聲學特征x送入內容編碼器中獲得ze(x),映射到碼本中最近嵌入ai來離散化。z(x)和說話人嵌入s將連接在一起送入解碼器。最后,利用解碼器D對聲學特征進行重構訓練的目標函數(shù)可以表示為:
圖2 VQ-VAE結構Fig.2 The structure of VQ-VAE
(1)
在矢量量化的損失中添加承諾成本,以鼓勵每個ze(x)向所選碼本靠近[19]。
聯(lián)結時序分類是一種損失函數(shù),常用于解決輸入特征與輸出標簽之間對齊不確定的時間序列映射問題。對于給定的由矢量量化得到的z(x)嵌入,其輸入序列記為I=[i1,i2,…,iT],其中T是輸入序列的長度。CTC損失函數(shù)的任務是最大化概率分布P(m|I)為對應的音素標號序列m的長度。實驗中使用的2個語料庫均為英文,選擇開源的CMU英語詞典和音素集,CMU音素集有39個音素,加上CTC的額外空白標簽,音素數(shù)為40。CTC損失函數(shù)定義為:
(2)
CTC輔助網絡如圖3所示,包含3個Conv1d層、1個雙向長短時記憶(BLSTM)層和1個線性層。每個Conv1d層與批量歸一化和ReLU激活層相結合,將BLSTM層和線性層的單元數(shù)分別設置為128和40。
圖3 聯(lián)結時序分類輔助網絡結構Fig.3 Structure of connectionist temporal classification auxiliary network
本文提出的SSPR-CTC-VQVC包括1個內容編碼器、1個說話人編碼器、1個解碼器和聲碼器?;赪avLM的SSPR送入內容編碼器來提取內容表示。說話人嵌入信息是從說話人編碼器得到的。VQ將內容表示離散化,CTC輔助網絡用于去除內容表示中的說話人信息。將內容表示和說話人表示連接后送到解碼器中以獲得重構表示,并合成語音。SSPR-CTC-VQVC模型總體架構如圖4所示。
圖4 SSPR-CTC-VQVC模型結構Fig.4 The structure of SSPR-CTC-VQVC model
實例歸一化(IN)[20]可以很好地分離說話人和內容表示。與文獻[20]不同,本文用4個卷積塊改進了其內容編碼器,比改進前的多1個卷積塊和1個瓶頸線性層。在內容編碼器中使用實例歸一化層對全局信息進行歸一化,有效地提取內容表示。內容表示由4個卷積塊和1個瓶頸線性層生成。每個卷積塊包含3個具有跳躍連接的Conv1d層,每個Conv1d層與實例歸一化和ReLU激活函數(shù)相結合。Conv1d層的核大小、通道、步長分別設置為5、256和1。內容編碼器將WavLM學習的SSPR作為初步提取內容表示的輸入,其結構如圖5所示。
圖5 內容編碼器結構Fig.5 Structure of content encoder
說話人編碼器的目標是為不同的話語生成來自同一說話人相同的嵌入,但不同說話人的嵌入不同。一般來說,1個one-hot編碼的說話人身份嵌入被用于many-to-many VC中,但實際的VC編碼器需要產生可泛化到訓練過程中unseen的說話人嵌入。
本文使用全局風格標記(GST)[21]作為也被廣泛使用的語音合成說話人編碼器。GST能夠將變長聲學特征序列壓縮為固定維說話人風格嵌入并隱式學習說話人嵌入風格標簽。說話人編碼器結構如圖6所示。GST提取說話人風格嵌入需要2個步驟:
圖6 說話人編碼器結構Fig.6 Structure of speaker encoder
1)參考編碼器采用連續(xù)堆疊的方式對聲學特征序列進行壓縮Conv2d層,然后將雙向門控循環(huán)單元 (Bi-GRU)層的最后1個狀態(tài)作為輸出參考編碼器。將變長聲學特征序列轉化為固定長度的嵌入,稱為參考嵌入。
2)將引用嵌入傳遞到樣式標記層。在樣式標記層中,有幾個等長的樣式標記(例如A、B、C、D)被初始化以模擬不同組件語音(例如情感、節(jié)奏、音高、語速等)。多頭自注意力模塊學習參考嵌入和每個樣式Token。注意力模塊輸出1組組合權重,表示每個樣式標記對引用嵌入的貢獻。樣式標記的加權和命名為風格嵌入。
解碼器將所有編碼器的輸出作為輸入,重構表示,并將解碼后的表示提供給重構的聲碼器。在實現(xiàn)細節(jié)上,實驗中使用的網絡架構如圖7所示。解碼器包含3個Conv1d層,1個BLSTM層和1個線性層。每個Conv1d層的內核大小為5,通道數(shù)為512,步長為1。BLSTM層的單元數(shù)為512。
圖7 解碼器結構Fig.7 Decoder structure
使用CTC的VQVC與傳統(tǒng)VQVC的相似之處在于兩者都采用內容編碼器和說話人編碼器分別提取內容和說話人表示。區(qū)別在于內容編碼器的輸出是否受到CTC輔助網絡 loss的監(jiān)督。因此,本文提出的模型成為1個多任務學習框架,模型訓練需要減少自重建誤差、VQ loss和CTC loss??倱p失函數(shù)可以寫成:
(3)
最后,采用MelGAN[22]作為聲碼器,以較快解碼速度獲得高保真波形。
本文實驗的硬件環(huán)境:選用單個GPU,其型號為NVIDIA GeForce RTX 2080 Ti。深度學習網絡模型搭建使用PyTorch框架,版本為1.8。
本文采用VCTK[23]語料庫和CMU Arctic[24]語料庫對所提的方法進行評價。在VCTK數(shù)據(jù)庫中有109個不同口音的英語使用者,經過預處理后得到了43 398條語句作為訓練集。與VCTK語料庫不同,CMU Arctic語料庫是1個平行英語語料庫。男性說話人“bdl”和女性說話人“slt”被選為目標揚聲器。男性說話人“rms”和女性說話人“clb”被選為源說話人。本文使用VCTK和CMU Arctic進行訓練和測試,此外,選擇了CMU Arctic語料庫的一部分來評估該方法,其中每個演講者包括40個語句。首先,從語料庫中選取波形數(shù)據(jù)并轉換為1.6×104Hz,然后,WavLM大型預訓練模型提取1 024維表示并將其發(fā)送到內容編碼器,同時提取80維梅爾語譜圖并發(fā)送到說話人編碼器中。
本文選擇WavLM學習的表征作為內容表示提取的輸入。WavLM預訓練模型在LibriSpeech 960h語料庫進行訓練,學習1 024維的瓶頸特征,用于后續(xù)學習內容表示,SSPR經過內容編碼器最終得到1 024維表示,說話人表征通過GST最終產生256維的風格嵌入。VQ嵌入字典中的嵌入維度設置為64。為了用英語音素對應的VQ對音素進行建模,VQ嵌入字典中加上了CTC的1個空白標簽的嵌入共計40個。CTC輔助網絡僅在訓練階段使用?;诰幋a器-解碼器結構將2種表示拼接送入解碼器中學習重構的梅爾語譜表征,用于波形轉換。本文選擇MelGAN聲碼器,MelGAN是一種條件波形合成模型,具有速度快、模型參數(shù)小、非自回歸結構等優(yōu)點。其他型號配置與文獻[25]相同。
用于比較的3條基線模型如下:
1)VQVC。從文獻[26]中的模型學習得到。該系統(tǒng)以非平行語料為基礎,聲學特征為梅爾語譜特征,模型結構包括內容編碼器、嵌入詞典、解碼器和GST音色編碼器4部分。本文使用Adam優(yōu)化器以0.000 3的學習率訓練VQVC基線模型。小批量大小設置為8。將VQ嵌入的數(shù)量設置為40,訓練步數(shù)設置為3×105。
2)CTC-VQVC。重現(xiàn)了文獻[25]模型,該模型由1個帶有CTC輔助損失的內容編碼器、1個矢量量化器、1個說話人編碼器和1個解碼器組成。CTC損失的權重在模型訓練過程中線性增加,在5×104步內最大值為0.001。
3)FragmentVC[15]。利用預訓練模型獲取源說話人語音的潛在語音結構,利用80維梅爾語譜圖獲取目標說話人的音色特征。通過加入注意力機制實現(xiàn)2個不同特征空間的對齊,使用WavLM預訓練模型代替wav2vec2.0模型,其余配置不變。
3.3.1 主觀評估
為了評估整體語音合成質量,本文收集了所有神經模型輸出的平均意見分數(shù)(MOS)以及真實記錄。語音質量包括自然度和相似度。本文進行性別內和性別間的語音轉換實驗,并對每個模型測試4種轉換:rms→slt(男性到女性),rms→bdl(男性到男性),clb→slt(女性到女性),clb→bdl(女性到男性)。所有4組說話人在訓練期間都是隱形的,測試集中每個說話人隨機選擇了40句話。每次主觀評估測試都招募了20名志愿者。對于來自CMU數(shù)據(jù)集的隨機樣本,參與者被要求以1~5分的標準對語音的自然度進行評分。分數(shù)越高代表語音自然度越高。
語音自然度和說話人相似度的評價結果分別如表1和表2所示,統(tǒng)計了VQVC、CTC-VQVC、FragmentVC和SSPR-CTC-VQVC 4個模型在性別內、性別間和平均3個方面對語音自然度和說話人相似度的主觀評價結果。從表1和表2可以看出,SSPR-CTC-VQVC在性別內和性別間語音轉換上都明顯優(yōu)于其他方法,并取得了非常好的分數(shù),語音自然度MOS平均值為3.29和說話人相似度MOS平均值為3.22。CTC-VQVC在語音自然度和說話人相似度方面優(yōu)于VQVC模型,這是因為CTC-VQVC添加的CTC文本監(jiān)督信息有利于內容建模。此外,與其他3種模型相比,FragmentVC在語音自然度方面的表現(xiàn)較差,可能是因為該模型使用了SSPR取代80維梅爾語譜重新訓練的聲碼器,解碼器輸出特征與聲碼器的輸入特征不匹配導致的。
表1 各語音轉換方法的語音自然度MOS比較Table 1 Comparison of speech naturalness MOS for each voice conversion methods
表2 各語音轉換方法說話人相似度MOS比較Table 2 Comparison of speaker similarity MOS for each voice conversion methods
3.3.2 客觀評價
本文采用梅爾倒譜失真(MCD)對圖像的自然度進行客觀評價,MCD越低表示自然度越好。在每組VC系統(tǒng)中,本文使用4對轉換(clb-slt,clb-bdl,rms-slt,rms-bdl),為每對轉換生成40條語句,共計160條語句。分別對同性別(clb-slt,rms-bdl)和跨性別(clb-bdl,rms-slt)各80句以及VC生成的160個語句進行MCD結果驗證。
各語音轉換方法的MCD比較如表3所示。從表3可以看出,同性別的MCD值整體低于跨性別的值,可能是因為同性別語音轉換過程中說話人音色變化幅度小,語音質量稍高??傮w來看,SSPR-CTC-VQVC的MCD值低于VQVC和CTC-VQVC。同時使用VQ和CTC輔助網絡的性能優(yōu)于單獨使用CTC或僅引入嵌入詞典的性能。VQ和CTC輔助網絡對內容編碼器學習更多的內容信息起相互促進作用。FragmentVC表現(xiàn)最差,可能是因為使用注意力機制的內容和音頻之間的映射效果不好。
表3 各語音轉換方法的MCD比較Table 3 Comparison of MCD of each voice conversion methods 單位:dB
3.3.3 可視化分析
本文對SSPR-CTC-VQVC模型轉換前后進行可視化分析,將真實聲音和通過SSPR-CTC-VQVC模型得到的轉換后聲音進行梅爾譜圖可視化。圖8顯示了CMU中的slt說話人的Arctic_a0002.wav真實語句和由SSPR-CTC-VQVC轉換后語音的梅爾譜圖對比(彩色效果見《計算機工程》官網HTML版)。
圖8 SSPR-CTC-VQVC模型轉換比較Fig.8 Comparison of SSPR-CTC-VQVC model transformations
從圖8可以看出,經過SSPR-CTC-VQVC轉換后的語音與真實語音的輪廓一致,這表明轉換后的語音內容得到保留。圖8中越亮的點代表分貝越高,從同一頻率下的對比可以看出,轉換為目標說話人slt的音色、音高等身份信息也得到了保障。
3.3.4 消融實驗
關于解耦向量方面,本文對VQ和CTC輔助網絡進行消融研究,分別進行了MOS評分(包括語音自然度和說話人相似度)和MCD評分的客觀評價。表4顯示了在95%置信區(qū)間下,2種網絡模塊對語音自然度MOS值和說話人相似度MOS值以及MCD客觀的影響。從表4的MOS值可以看出,這2種輔助網絡的模型在性別內和性別間轉換的自然性和相似性方面總體優(yōu)于僅使用VQ或CTC網絡模型。從MCD值來看,同時使用2個網絡的模型MCD值最小,優(yōu)于僅使用VQ或CTC的網絡模型。上述2組實驗證明了SSPR-CTC-VQVC提出的2個輔助內容編碼器在學習更純粹的內容表示方面的有效性。
表4 各語音轉換方法的MOS和MCD比較Table 4 Comparison of MOS and MCD of each voice conversion methods
3.3.5 說話人分類
為了驗證說話人編碼器能夠有效地提取說話人信息,本文對編碼器提取的風格嵌入進行了說話人分類實驗。風格嵌入是從選定的句子中生成的,它表示從句子中提取的關于說話人的信息。說話人分類器對風格嵌入進行分類的能力被用作說話人建模能力的度量。期望的結果是來自同一說話人的不同話語可以聚類在一起,不同說話人可以相互分離。較好的聚類表明說話人分類實驗取得了較好的效果,從而證明了說話人編碼器能夠有效地提取說話人信息。該說話人分類器由3個Conv1d層、1個BLSTM層和1個線性層組成。每個卷積層配對批量歸一化和ReLU激活函數(shù),BLSTM節(jié)點數(shù)量為128個。線性層的激活函數(shù)是Softmax,損失函數(shù)是交叉熵。
圖9顯示了CTC-VQVC和所提出的SSPR-CTC-VQVC與t-SNE在二維空間中的向量比較(彩色效果見《計算機工程》官網HTML版),其中圖9(a)和圖9(b)分別表示CTC-VQVC和SSPR-CTC-VQVC。相同的顏色代表相同的說話人。在說話人分類實驗中,本文從VCTK語料庫中選取了5位女性說話人(p225、p228、p229、p230、p231)和5位男性說話人(p226、p227、p232、p237、p241),對每個人10條語音進行分類。選擇的話語通過GST音色編碼器生成其音色向量。從圖9(a)和圖9(b)中可以看出,同一說話人的10個話語都能聚類在一起,并且不同說話人之間也可以區(qū)分開,這表明2個系統(tǒng)的說話人編碼器都學習了有意義的說話人嵌入。這表明GST提取的風格向量可以作為說話人身份。此外,與圖9(a)相比,圖9(b)中同一說話人10句話分布得更緊密。因此,與CTC-VQVC相比,SSPR-CTC-VQVC在不同說話人身份方面具有更好的聚類性能。
圖9 CTC-VQVC和 SSPR-CTC-VQVC可視化風格嵌入比較Fig.9 Visual style embedding comparison between CTC-VQVC and SSPR-CTC-VQVC
本文提出一種基于自監(jiān)督預訓練表示同時混合VQ和CTC的單次VC方法SSPR-CTC-VQVC。使用GST獲取語音中說話人信息,使用基于WavLM自監(jiān)督預訓練模型學習的表征送入內容編碼器中學習最初內容信息的嵌入。與傳統(tǒng)使用梅爾語譜作為聲學特征學習內容嵌入相比,使用基于預訓練模型學習的SSPR減少了嵌入向量中內容信息的損失,提高了語音質量。采用矢量量化和基于聯(lián)結時序分類的監(jiān)督模型,從內容表示中去除其中冗余的說話人信息。這2個輔助網絡模塊對凈化的內容向量在性能上是互補的。實驗結果表明,本文提出的方法可以很好地從SSPR中學習純的內容信息,極大地提高了轉換后的語音質量。但SSPR-CTC-VQVC學習的內容表示仍包含少量的說話人信息,為了更好地進行語音信息解耦,下一步將設計更好提取純凈內容的方法。比如在VQ層后加入互信息進行內容表征提純,或者基于梯度反轉達到類似于生成對抗網絡的作用,進一步將對抗的思想引入到表征學習中,使得說話人表征和內容表征有效分離。