[語音信號處理] 說話人轉換 voice conversion .CycleGANVC .StarGANVC .

語音信號處理的總體結構

圖1-1從這個總體結構可以看出:無論是語音識別,還是語音編碼與合成,輸入的語音信號首先要進行預處理。

預處理

對信號進行適當放大和增益控制,並進行反混疊濾波來消除工頻信號的干擾。

數字化

將模擬信號轉化爲數字信號便於用計算機來處理。

提取特徵

用反映語音信號特點的若干參數來代表語音。

voice conversion

我的理解:是音色轉換問題的一個分支。

最近的論文:

一.CycleGAN-VC:Parallel-Data-Free Voice Conversion Using Cycle-Consistent Adversarial Networks

CycleGAN-VC:使用週期一致的對抗網絡進行並行無數據語音轉換
介紹CycleGAN-VC的官方網站:http://www.kecl.ntt.co.jp/people/kaneko.takuhiro/projects/cyclegan-vc/

面存在困難的逐幀方法[27,30]相比,CycleGAN-VC [29]([32]中發表)使得學習序列成爲可能 - 通過使用具有門控CNN [36]和身份映射損失[37]的CycleGAN [33,34,35]的基於映射函數。這允許在保留語言信息的同時捕獲順序和分層結構。通過這種改進,CycleGAN-VC的表現與並行VC方法相當[7]。

網絡結構
CycleGAN-VC網絡結構圖生成器和鑑別器的網絡架構。在輸入或輸出層中,h,w和c分別表示通道的高度,寬度和數量。在每個卷積層中,k,c和s分別表示內核大小,通道數和步幅大小。由於發生器是完全卷積的,它可以輸入任意長度T.

Instance Norm層:可以理解爲對數據做一個歸一化的操作。

GLU:在門控CNN中,門控線性單元(GLUs)被用作一個激活函數,GLU是一個數據驅動的激活函數,並且門控機制允許根據先前的層狀態選擇性地傳播信息。(爲什麼要用激活函數?如果不用激勵函數,每一層輸出都是上層輸入的線性函數,無論神經網絡有多少層,輸出都是輸入的線性組合。如果使用的話,激活函數給神經元引入了非線性因素,使得神經網絡可以任意逼近任何非線性函數,這樣神經網絡就可以應用到衆多的非線性模型中。)

門控CNN思想:模擬lstm的是否遺忘門,或者說判斷權重的思想。再做一個和CNN卷積一樣參數的filter, 取值0-1,判斷這個序列的特徵哪些應該被關注,哪些應該被忽略。

LOSS:CycleGAN- vc使用了一個對抗損失[31]和循環一致性損失[39]。此外,爲了鼓勵語言信息的保存,CycleGAN-VC還使用了身份映射損失[37]。
對抗性損失:爲了使轉換後的特徵與目標y難以區分,使用對抗性損失:

1

鑑別器試圖通過最大化這種損失來尋找實數和轉換特徵之間的最佳決策邊界,而試圖通過最小化這種損失來生成可以欺騙的特徵。

循環一致性損失:對抗性損失只限制GX→Y (x)服從目標分佈,不保證輸入輸出特徵的語言一致性。爲了進一步規範映射,使用循環一致性損失:

2
同時學習正反向映射以穩定訓練。這種損失促使GX→Y, GY→X通過循環變換找到(X, Y)的最優僞對,如圖1(a)所示。

標識映射損失:爲了進一步鼓勵保存輸入,使用標識映射損失:
3
圖14λcyc和λid權衡參數。在這個公式中,每個週期使用一次對抗性損失,如圖1(a)所示。因此,我們稱其爲一步對抗性損失。

生成器:1 d CNN

CycleGAN-VC使用一維(1D) CNN作爲生成器,在保留時間結構的同時,捕捉整個關係和特徵方向。這可以看作是逐幀模型的直接時間擴展,該模型只捕獲每幀的這些特性的關係。爲了在保持輸入結構的同時有效地捕獲大範圍的時間結構,該生成器由下采樣層、殘差層和上採樣層組成,如圖2(a)所示。另一個值得注意的地方是CycleGAN-VC使用一個門控CNN來捕捉聲學特徵的順序和層次結構。

CNN中處理的是什麼?
[27] T. Kaneko, H. Kameoka, N. Hojo, Y. Ijima, K. Hiramatsu, and K. Kashino, “Generative adversarial network-based postfilter for statistical parametric speech synthesis,” in Proc. ICASSP, 2017, pp. 4910–4914.
根據這篇論文來看,是光譜紋理(spectral texture)。

光譜紋理(spectral texture)–> Mel-cepstral係數(MCEP)

鑑頻器:FullGAN

CycleGAN-VC使用2D CNN作爲鑑別器來聚焦於2D結構(即, 2D光譜紋理)。更精確地說,如圖3(a)所示,考慮到輸入的整體結構,在最後一層使用全連通層來確定真實感。這樣的模型稱爲FullGA。

二.CycleGAN-VC2: Improved CycleGAN-based Non-parallel Voice Conversion

CycleGAN-VC2:改進的基於cyclegan的非並行語音轉換

論文網址:http://tongtianta.site/paper/28409

介紹CycleGAN-VC2的官方網站:http://www.kecl.ntt.co.jp/people/kaneko.takuhiro/projects/cyclegan-vc2/index.html

CycleGAN-VC2網絡結構圖CycleGAN-VC2,它是CycleGAN-VC的改進版本,包含三種新技術:改進的目標(兩步對抗性損失),改進的發生器(2-1-2D CNN))和改進的判別器(Patch GAN)。

網絡結構相比CycleGAN-VC的改進:
改進目標:兩步對抗性損失
統計模型的一個衆所周知的問題是統計平均導致的過度平滑。式4中使用的對抗性損失有助於緩解這種退化,但是以L1表示的循環一致性損失仍然會導致過度平滑。爲了減輕這種負面影響,我們引入了一個額外的鑑別器D‘X,並對循環轉換的特徵施加一個不利的損失,如

此處應該有式子5的圖

同樣,我們引入D‘Y,並對正反映射施加一個對抗損失Ladv2(GY→X, GX→Y, D’Y)。我們把這兩個不利的損失加到公式4中。在這個改進的目標中,我們對每個週期使用兩次對抗性損失,如圖1(b)所示。因此,我們稱其爲兩步對抗性損失。

圖1

轉換過程:採用該方法對包括第0個係數的MCEPs進行了轉換。2本實驗的目的是分析轉化MCEPs的質量;因此,對於其他部分,我們使用了與VCC 2018[38]基線相似的典型方法。具體來說,在性別間轉換中,採用了基於vocoder的VC方法。採用對數高斯歸一化變換[47]進行轉換,直接使用APs,無需修改,使用WORLD vocoder[46]進行語音合成。在性別內轉換中,我們使用無vocode的VC方法[48]。更準確地說,我們計算微分mcep之間的差異的來源和轉換mcep。出於類似的原因,我們沒有使用任何後濾波器[41、42、49]或強大的聲碼器,如WaveNet聲碼器[50,51]。合併它們是未來工作的一個可能方向。

三.StarGAN-VC: Non-parallel many-to-many voice conversion with star generative adversarial network

StarGAN-VC:採用星形生成對抗網絡的非並行多對多語音轉換

論文網址:http://tongtianta.site/paper/2827

介紹StarGAN-VC:的官方網站:http://www.kecl.ntt.co.jp/people/kameoka.hirokazu/Demos/stargan-vc/

StarGAN-VC實現(github):
https://github.com/hujinsen/StarGAN-Voice-Conversion

與CVAE-VC和CycleGAN-VC不同,StarGAN-VC使用對抗性損失進行生成器訓練,以鼓勵生成器輸出與真實語音無法區分,並確保每對屬性域之間的映射將保留語言信息。值得注意的是,與CVAE-VC和CycleGAN-VC不同,StarGAN-VC在測試時不需要任何關於輸入語音屬性的信息。

–IMUDGES WLY

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章