博客專欄

EEPW首頁 > 博客 > 應(yīng)對個性化定制語音合成挑戰(zhàn),微軟推出AdaSpeech系列研究

應(yīng)對個性化定制語音合成挑戰(zhàn),微軟推出AdaSpeech系列研究

發(fā)布人:MSRAsia 時間:2021-09-20 來源:工程師 發(fā)布文章

編者按:提到語音個性化定制,你或許并不陌生。生活中利用明星的聲音進(jìn)行文字播報、語音導(dǎo)航等,都是來自這項重要的文本到語音合成服務(wù)。雖其應(yīng)用廣泛,但是現(xiàn)階段仍面臨著很多挑戰(zhàn),例如不同的聲學(xué)條件對定制效果的影響,需要大量目標(biāo)說話人的數(shù)據(jù)及適配參數(shù)等等。為此,微軟亞洲研究院機(jī)器學(xué)習(xí)組與微軟 Azure 語音團(tuán)隊共同合作,推出了 AdaSpeech 1/2/3 系列工作,相關(guān)研究論文已分別收錄于 ICLR 2021 / ICASSP 2021 / INTERSPEECH 2021 三個頂級學(xué)術(shù)會議。

語音個性化定制(custom voice)是一項非常重要的文本到語音合成(text to speech, TTS)服務(wù)。其通過使用較少的目標(biāo)說話人的語音數(shù)據(jù),來微調(diào)(適配)一個源 TTS 模型,以合成目標(biāo)說話人的聲音。但當(dāng)前語音個性化定制仍面臨一系列挑戰(zhàn):1)為了支持不同類型的說話人,源 TTS 模型需要支持不同類型的聲學(xué)條件,比如不同的口音、說話風(fēng)格、錄音環(huán)境等,這可能與訓(xùn)練源TTS模型使用的聲音數(shù)據(jù)的聲學(xué)條件并不相同;2)為了支持大量的說話人,需要減少聲音定制過程中使用的目標(biāo)說話人的數(shù)據(jù)以及適配參數(shù),以實(shí)現(xiàn)高效的聲音定制化。

面對以上挑戰(zhàn),微軟亞洲研究院機(jī)器學(xué)習(xí)組和微軟 Azure 語音團(tuán)隊合作推出了 AdaSpeech 1/2/3 系列工作,旨在實(shí)現(xiàn)更有泛化性且更高效的語音個性化定制:

1)  AdaSpeech 1 (Adaptive Text to Speech for Custom Voice) 主要提升源 TTS 模型的魯棒泛化性,以更好地支持不同類型的說話人;同時降低模型的適配參數(shù)量,以更好地支持更多數(shù)量的說話人。

2)AdaSpeech 2 (Adaptive Text to Speech with Untranscribed Data) 支持目標(biāo)說話人僅使用無文本標(biāo)注的語音數(shù)據(jù)進(jìn)行聲音的定制,實(shí)現(xiàn)了和有文本標(biāo)注的語音數(shù)據(jù)相當(dāng)?shù)倪m配語音質(zhì)量。

3)AdaSpeech 3 (Adaptive Text to Speech for Spontaneous Style) 主要針對自發(fā)風(fēng)格的語音(spontaneous-style speech)設(shè)計了高效的定制化方法,以實(shí)現(xiàn)此類語音風(fēng)格的定制。

AdaSpeech 1/2/3 系列相關(guān)研究論文已分別收錄于 ICLR 2021 / ICASSP 2021 / INTERSPEECH2021 三個頂級學(xué)術(shù)會議。同時,該系列研究工作也被應(yīng)用于微軟 Azure TTS 語音合成技術(shù),以構(gòu)建更好的語音定制化服務(wù)。

詳情可查看:

https://speech.microsoft.com/customvoice

AdaSpeech 1

個性化語音合成

AdaSpeech: Adaptive Text to Speech for Custom Voice, ICLR 2021

鏈接:https://arxiv.org/pdf/2103.00993.pdf

為了支持不同類型的目標(biāo)說話人和不同的聲學(xué)條件,以及降低適配過程中的模型參數(shù)量,微軟亞洲研究院和微軟 Azure 語音團(tuán)隊的研究員們提出了一個可適配的 TTS 系統(tǒng)—— AdaSpeech,來實(shí)現(xiàn)高質(zhì)量和高效率的聲音個性化定制。AdaSpeech 以 FastSpeech2 為基本的模型框架,如圖1所示。其含有兩個重要的模塊:

1)不同粒度的聲學(xué)條件建模(acoustic condition modeling),用以支持含有不同類型聲學(xué)條件的語音數(shù)據(jù);

2)將自適應(yīng)層歸一化(conditional layer normalization)應(yīng)用于模型****,微調(diào)模型時,只調(diào)整自適應(yīng)層歸一化的參數(shù)以降低適配參數(shù)及保證高的定制音質(zhì)。

1.png

圖1:AdaSpeech 1 模型架構(gòu)

聲學(xué)條件建模(acoustic condition modeling)的結(jié)構(gòu)如圖2所示。研究員們將聲學(xué)條件建模分為三個粒度:說話人級別(speaker level)、句子級別(utterance level)和音素級別(phoneme level),如圖2(a) 所示。在說話人級別,可以采用常見的說話人嵌入向量來刻畫說話人的特征。在句子級別,可以使用一個聲學(xué)編碼器來從參考語音中抽取句子級特征,如圖2(b)所示,在訓(xùn)練過程中使用目標(biāo)語音作為參考語音,而在測試中,則隨機(jī)選用該說話人的其它語音來作為參考語音。在音素級別,可以使用另一個聲學(xué)編碼器從目標(biāo)語音中抽取音素級別的特征,如圖2(c)所示,同時,還可以通過訓(xùn)練另一個音素級別的聲學(xué)預(yù)測器,來預(yù)測這些特征,以便在測試時使用,如圖2(d)所示。

2.png

圖2:Acoustic Condition Modeling 的結(jié)構(gòu)示意

自適應(yīng)層歸一化(conditional layer normalization)的結(jié)構(gòu)如圖3所示。在語音****的每一層中,自適應(yīng)層歸一化通過兩個線性層,從說話人嵌入表征里預(yù)測出層歸一化的 scale 和 bias 參數(shù),以更加自適應(yīng)地調(diào)節(jié)模型的隱層表征。而在適配過程中,則只需要調(diào)整自適應(yīng)層歸一化的相關(guān)參數(shù),就可以極大降低調(diào)整參數(shù)量,并且同時保證了定制音質(zhì)。

3.png

圖3:Conditional Layer Normalization 的結(jié)構(gòu)示意

研究員們在 LibriTTS 數(shù)據(jù)集上訓(xùn)練了源 TTS 模型,然后在 VCTK 和 LJSpeech 上進(jìn)行了語音定制。對于每個定制的說話人,只使用了20條語音進(jìn)行模型適配。結(jié)果如表1所示,可以看出:1)和基線 (spk emb) 相比,AdaSpeech 在極低的適配參數(shù)下(4.9K),取得了極大的定制音質(zhì)提升;2)和基線 (decoder) 相比,AdaSpeech 在相同或略微好的定制音質(zhì)下,能極大降低所需參數(shù)量(4.9K vs 14.1M),很好地滿足了語音個性化定制場景的需求。

4.png

表1:AdaSpeech 的語音定制結(jié)果,MOS 和 SMOS 分別用來評估生成語音的自然度和相似度

分值范圍為0-5分,分值越高表示越好

AdaSpeech 2

無標(biāo)注語音數(shù)據(jù)的個性化語音合成

AdaSpeech 2: Adaptive Text to Speech with Untranscribed Data, ICASSP2021

鏈接:https://arxiv.org/pdf/2104.09715.pdf

常見的語音定制化方法通常使用語音數(shù)據(jù)及其對應(yīng)的文本數(shù)據(jù)(transcription)來微調(diào)一個源 TTS 模型,以合成目標(biāo)說話人的聲音。然而,在許多應(yīng)用場景中,通常只能獲取到?jīng)]有轉(zhuǎn)錄文本(無標(biāo)注)的語音數(shù)據(jù)(untranscribed speech)。使用語音識別系統(tǒng)(ASR)來獲得對應(yīng)文本是一種較為直接的方法,但其需要引入冗余的語音識別系統(tǒng),同時會帶來文本識別誤差,從而造成語音適配效果的下降。另有一些研究嘗試直接使用無標(biāo)注語音數(shù)據(jù)來微調(diào)模型,但這類方法大多需要源 TTS 模型和用于微調(diào)的模塊聯(lián)合訓(xùn)練,限制了方法的可擴(kuò)展性。

因此,微軟亞洲研究院和微軟 Azure 語音團(tuán)隊的研究員們提出了 AdaSpeech 2,這是一種可直接利用無標(biāo)注語音數(shù)據(jù)進(jìn)行 TTS 模型微調(diào)的方法。如圖4所示,該方法在 AdaSpeech 的基礎(chǔ)上引入了一個梅爾譜編碼器(mel-spectrogram encoder),并且使用 L2 損失來約束音素編碼器(phoneme encoder)和梅爾譜編碼器的輸出空間,從而直接利用語音數(shù)據(jù)來對訓(xùn)練好的源 TTS 模型中的相關(guān)參數(shù)進(jìn)行微調(diào),以進(jìn)行語音合成的定制化。該方法有兩點(diǎn)優(yōu)勢:

1)可插拔性,該方法關(guān)鍵在于引入額外的編碼器,因此可以方便地在其它編碼器-****結(jié)構(gòu)的 TTS 模型中進(jìn)行推廣,而不依賴新模塊與源模型的聯(lián)合訓(xùn)練;

2)有效性,在使用相同數(shù)據(jù)量的條件下,該方法與需要對應(yīng)文本的微調(diào)方法相比,達(dá)到了相同水平的語音合成效果。

5.png

圖4:AdaSpeech 2 模型架構(gòu)

Adaspeech 2 方法包含四個步驟,如圖5所示:1)源模型的訓(xùn)練(source model training):使用大量數(shù)據(jù)訓(xùn)練一個僅包含音素編碼器和梅爾譜****的語音合成系統(tǒng)。2)梅爾譜編碼器的引入與對齊(mel-spectrogram encoder aligning):引入并激活梅爾譜編碼器,固定源 TTS 模型中的音素編碼器和梅爾譜****參數(shù)進(jìn)行訓(xùn)練。在該步中,一個用以約束音素編碼器和梅爾譜編碼器輸出空間的 L2 損失被引入到模型中,并且只更新梅爾譜編碼器的參數(shù)。之后研究員們繼續(xù)使用大量的多人文本-語音數(shù)據(jù)進(jìn)行該步的訓(xùn)練。3)基于無標(biāo)注文本數(shù)據(jù)的個性化適配。獲得了目標(biāo)人的無文本語音數(shù)據(jù)后,研究員們激活了梅爾譜編碼器和梅爾譜****,并將目標(biāo)數(shù)據(jù)同時作為輸入和目標(biāo)輸出進(jìn)行訓(xùn)練(類似一個語音重建過程)。在該步中,研究員們參照 AdaSpeech 的做法,微調(diào)了梅爾譜****中的少量參數(shù)。4)定制化語音合成。

6.png

圖5:AdaSpeech 2 訓(xùn)練、適配及運(yùn)作流程

研究員們在 LibriTTS 數(shù)據(jù)集上訓(xùn)練了源 TTS 模型,然后在 VCTK 和 LJSpeech 上進(jìn)行了語音定制。對于每個定制的說話人,研究員們使用了50條語音進(jìn)行模型適配。結(jié)果如表2所示,可以看出:1)該方法實(shí)現(xiàn)了可與目標(biāo)的真實(shí)語音和兩種上限算法(AdaSpeech,PPG-based)匹敵的聲音合成質(zhì)量;2)在聲音相似度上,該方法略遜于上限算法 AdaSpeech,但仍優(yōu)于流行的基于 joint-training 的方法。并且,該方法繼承了 AdaSpeech 的各種優(yōu)點(diǎn),極大拓寬了語音個性化定制的應(yīng)用場景。

7.png

表2:AdaSpeech 2的語音定制結(jié)果,MOS 和 SMOS 分別用來評估生成語音的自然度和相似度

分值范圍為0-5分,分值越高表示越好


AdaSpeech 3

自發(fā)風(fēng)格個性化語音合成

AdaSpeech 3: Adaptive Text to Speech for Spontaneous Style, INTERSPEECH 2021

鏈接:https://arxiv.org/pdf/2107.02530.pdf

現(xiàn)有的語音合成系統(tǒng)在合成朗讀風(fēng)格(reading-style)的語音時表現(xiàn)良好,但在合成自發(fā)風(fēng)格(spontaneous-style,例如演講或談話時人的自然講話風(fēng)格)的語音時卻遇到了挑戰(zhàn)。其主要原因有:1)自發(fā)風(fēng)格的語音數(shù)據(jù)集較為稀少,不足以訓(xùn)練一個源 TTS 系統(tǒng);2)建模自發(fā)風(fēng)格語音中的關(guān)鍵性因素:有聲停頓(filled pauses,例如 um/uh 等語氣助詞)以及語調(diào)變化(diverse rhythms)較為困難。為此,研究員們又提出了針對自發(fā)風(fēng)格語音的定制化語音合成系統(tǒng) —— AdaSpeech 3。

AdaSpeech 3 有以下三個創(chuàng)新點(diǎn):1)為了使合成的語音具有自發(fā)風(fēng)格的特點(diǎn),研究員們引入了有聲停頓預(yù)測器(FP predictor)來為合成的語句插入有聲停頓。2)為了使合成的語音在語速和語調(diào)上更加多變,研究員們引入了基于混合專家系統(tǒng)(mixture of experts, MoE)的語速預(yù)測器來控制語速。該語速預(yù)測器包含三個語速檔次,并分別控制語音以不同的速率生成,如圖6所示。3)為了使合成的語音更貼近目標(biāo)音色,AdaSpeech 3 需要微調(diào)模型中的少量參數(shù)。另外,研究員們針對訓(xùn)練數(shù)據(jù)不足的問題,還開發(fā)了一套數(shù)據(jù)挖掘的工作流程,并通過該流程,從互聯(lián)網(wǎng)上挖掘出自發(fā)風(fēng)格的語音數(shù)據(jù)集。該數(shù)據(jù)集的相關(guān)統(tǒng)計見表3所示。有聲停頓預(yù)測器和語速預(yù)測器具體的訓(xùn)練流程可參考 AdaSpeech 3 論文。

8.png

圖6:AdaSpeech 3 模型架構(gòu)

9.png

表3:通過數(shù)據(jù)挖掘得到的自發(fā)風(fēng)格(spontaneous style)語音數(shù)據(jù)集

在實(shí)驗方面,研究員們在 LibriTTS 數(shù)據(jù)集上訓(xùn)練了源 TTS 模型,并利用挖掘出的風(fēng)格和自發(fā)的語音數(shù)據(jù)集,來訓(xùn)練額外的有聲停頓預(yù)測器和語速預(yù)測器,從而使得生成的語音具有更高的隨意性,更貼近日常對話。從合成語音的音質(zhì)結(jié)果來看,該方法相對于 AdaSpeech 在語音自然度、停頓合適度和語速等主觀 MOS 指標(biāo)上均有提升,如表4。研究員們還進(jìn)行了消融實(shí)驗驗證了各個設(shè)計模塊的有效性。在對不同目標(biāo)人說話聲音的模仿上,AdaSpeech 3 在相似度指標(biāo) SMOS 上亦有提升。綜上所述,AdaSpeech 3 提升了語音合成系統(tǒng)在模仿自然人語音的效果,也提升了合成語音的真實(shí)感。

10.png

表4:AdaSpeech 3 的語音生成結(jié)果。結(jié)果用專注于整體自然度(Naturalness),停頓自然度(Pause)以及語速(Speaking Rate)的 MOS 值表示。MOS 分值范圍為0-5分,分值越高表示越好。

AdaSpeech 系列相關(guān)研究論文已分別收錄于 ICLR 2021 / ICASSP 2021 / INTERSPEECH 2021 三個頂級學(xué)術(shù)會議。同時,該系列研究工作也被應(yīng)用于微軟 Azure TTS 語音合成技術(shù),以構(gòu)建更好的語音定制化服務(wù)。微軟亞洲研究院機(jī)器學(xué)習(xí)組一直致力于語音方面的相關(guān)研究,包括語音合成、語音識別、歌聲合成及音樂生成等。

了解更多關(guān)研究工作可訪問:

https://speechresearch.github.io/

試用微軟Azure語音合成服務(wù)請訪問:

https://azure.microsoft.com/en-us/services/cognitive-services/text-to-speech/

相關(guān)鏈接:

https://www.microsoft.com/en-us/research/people/xuta/

https://www.microsoft.com/en-us/research/project/text-to-speech/

https://speech.microsoft.com/customvoice

https://azure.microsoft.com/en-us/services/cognitive-services/text-to-speech/

*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點(diǎn),如有侵權(quán)請聯(lián)系工作人員刪除。

光耦相關(guān)文章:光耦原理


萬用表相關(guān)文章:萬用表怎么用


cdma相關(guān)文章:cdma原理


斷路器相關(guān)文章:斷路器原理


高壓真空斷路器相關(guān)文章:高壓真空斷路器原理
漏電斷路器相關(guān)文章:漏電斷路器原理


關(guān)鍵詞: AI

相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉