深度學習語音合成 2019 指南

《A 2019 Guide to Speech Synthesis with Deep Learning》

人類語音的人工產生被稱為語音合成。這種基於機器學習的技術適用於文本到語音,音樂生成,語音生成,啟用語音的設備,導航系統以及視障人士的可訪問性。

在本文中,我們將研究為深度學習而編寫和開發的研究和模型架構。

但是在我們進入之前,我們需要簡要概述幾種特定的傳統語音合成策略:拼接式(concatenative)和參數式(parametric)。

在拼接式方法中,來自大型數據庫的語音用於生成新的可聽語音。在需要不同風格的語音的情況下,將使用新的音頻語音數據庫。這限制了這種方法的可擴展性。

參數式方法使用錄製的人的語音和具有可修改以更改語音的一組參數的功能。

這兩種方法代表了進行語音合成的舊方法。現在,讓我們看一下使用深度學習進行操作的新方法。這是我們將涵蓋的研究,以研究流行的和當前的語音合成方法:

  • WaveNet:A Generative Model for Raw Audio
  • Tacotron:Towards End-toEnd Speech Synthesis
  • DeepVoice 1:Real-time Neural Text-to-Speech
  • DeepVoice 2:Multi-Speaker Neural Text-to-Speech
  • DeepVoice 3:Scaling Text-to-speech With Convolutional Sequence Learning
  • Parallel WaveNet:Fast High-Fidelity Speech Synthesis
  • Neural Voice Cloning with a Few Samples
  • VoiceLoop:Voice Fitting and Synthesis via A Phonological Loop
  • Natural TTS Synthesis by Conditioning WaveNet on Mel Spectrogram Predictions

WaveNet:A Generative Model for Raw Audio

本文的作者來自Google。他們提出了一種用於生成原始音頻波形的神經網絡。他們的模型是完全概率的和自迴歸的,並且可以為英語和普通話生成最新的文本到語音結果。

深度學習語音合成 2019 指南

WaveNet是一種基於音頻生成模型PixelCNN。它能夠產生與人類聲音非常相似的音頻。

深度學習語音合成 2019 指南

在此生成模型中,每個音頻樣本都以先前的音頻樣本為條件。條件概率由一堆卷積層建模。該網絡沒有池化層,模型的輸出與輸入具有相同的時間維度。

深度學習語音合成 2019 指南

在架構中使用因果卷積,可確保模型不違反數據建模的順序。在此模型中,每個預測的語音樣本都反饋到網絡,以幫助預測下一個語音樣本。由於因果卷積沒有遞歸關係,因此它們比RNN的訓練速度更快。

使用因果卷積的主要挑戰之一是,它們需要多層才能增加接收場。為了解決這一挑戰,作者使用了膨脹卷積。擴散卷積使網絡具有較大的接收場,但具有幾層。使用softmax分佈對各個音頻樣本的條件分佈進行建模。

深度學習語音合成 2019 指南

該模型在multispeaker語音生成,文本到語音和音樂音頻建模方面進行了評估。MOS(平均意見分數)用於此評估。它可以測量語音質量。基本上,這是一個人對語音質量的看法。它是介於1到5之間的數字,其中5個是最好的質量。

深度學習語音合成 2019 指南

下圖顯示了WaveNet的質量,等級為1-5。

深度學習語音合成 2019 指南

Tacotron:Towards End-toEnd Speech Synthesis

本文的作者來自Google。Tacotron是一種端到端生成文本到語音模型,可以直接從文本和音頻對中合成語音。Tacotron在美式英語上的平均意見得分為3.82。Tacotron在幀級生成語音,因此比樣本級自迴歸方法快。

該模型在音頻和文本對上進行了訓練,這使其非常適用於新數據集。Tacotron具有一個seq2seq模型,該模型包括一個編碼器encoder,一個基於注意力的解碼器decoder和一個post-processing網絡。如下面的架構圖所示,該模型將characters作為輸入並輸出原始頻譜圖。然後將該頻譜圖轉換為波形。

深度學習語音合成 2019 指南

下圖顯示了CBHG模塊的外觀。它由一維卷積濾波器,highway networks和雙向GRU(門控循環單元)組成。

深度學習語音合成 2019 指南

character序列被饋送到編碼器encoder,編碼器提取文本的順序表示。每個字符都表示為one-hot向量,並嵌入到連續向量中。然後添加非線性變換,然後添加一個dropout層以減少過度擬合。從本質上講,這減少了單詞的錯誤發音。

使用的解碼是tanh函數 content-based 的注意力解碼器decoder。然後使用Griffin-Lim算法生成波形。該模型使用的超參數如下所示。

深度學習語音合成 2019 指南

下圖顯示了Tacotron與其他替代產品相比的性能。

深度學習語音合成 2019 指南

DeepVoice 1:Real-time Neural Text-to-Speech

本文的作者來自百度的硅谷人工智能實驗室。深度語音是使用深度神經網絡開發的文本到語音系統。

它有五個主要組成部分:

  • 使用 connectionist temporal classification(CTC)損失的深度神經網絡定位音素phoneme 邊界的分割模型。
  • grapheme-to-phoneme轉換模型(grapheme-to-phoneme是使用規則生成單詞發音的過程)。
  • 音素phoneme持續時間預測模型。
  • 基頻預測模型。
  • 使用WaveNet變體的音頻合成模型,該模型使用較少的參數。
深度學習語音合成 2019 指南

grapheme-to-phoneme 模型將英語字符轉換為音素phonemes。分段模型標識每個音素在音頻文件中的開始和結束位置。音素持續時間模型預測音素序列中每個音素的持續時間。

基頻模型可預測音素是否發聲。音頻合成模型通過組合grapheme-to-phoneme模型,音素持續時間和基本頻率預測模型的輸出來合成音頻。

與其他模型相比,此模型效果如下。

深度學習語音合成 2019 指南

DeepVoice 2:Multi-Speaker Neural Text-to-Speech

本文代表了百度硅谷人工智能實驗室對“DeepVoice”的第二次迭代。他們介紹了一種使用低維可訓練說話者嵌入來增強 neural text-to-speech的方法,以從單個模型產生各種聲音。

該模型基於與DeepVoice 1類似的pipeline。但是,它代表了音頻質量的顯著改善。該模型能夠從每個speaker 不到半小時的數據中學習數百種獨特的聲音。

作者還介紹了基於WaveNet的spectrogram-to-audio neural vocoder 聲碼器,然後將其與Tacotron一起使用,代替Griffin-Lim音頻生成器。本文的主要重點是處理多個speaker,每個speaker的數據更少。總體架構類似於Deep Voice1。Deep Voice 2的訓練過程如下圖所示。

深度學習語音合成 2019 指南

DeepVoice 2和DeepVoice 1之間的主要區別在於音素持續時間和頻率模型的分離。DeepVoice 1具有一個用於共同預測音素持續時間和頻率分佈的模型。在DeepVoice 2中,先預測音素持續時間,然後將其用作頻率模型的輸入。

DeepVoice 2中的分段模型是一種卷積循環架構,其中應用了connectionist temporal classification(CTC)損失來對音素對進行分類。DeepVoice 2的主要修改是在卷積層中添加了batch normalization和residual connections。其聲音模型基於WaveNet架構。

通過用每個speakers單個低維級別的speaker嵌入矢量擴展每個模型,可以完成來自多個speakers的語音合成。speakers之間的Weight分配是通過將與speaker相關的參數存儲在非常低維的向量中來實現的。

循環神經網絡(RNN)的初始狀態是使用speaker embeddings產生的。使用均勻分佈來隨機初始化speaker embeddings,並使用反向傳播共同對其進行訓練。speaker embeddings被合併到模型的多個部分中,以確保考慮每個speaker的獨特語音簽名。

深度學習語音合成 2019 指南

現在讓我們看看該模型與其他模型相比的性能如何。

深度學習語音合成 2019 指南

深度學習語音合成 2019 指南

Deep Voice 3:Scaling Text-to-speech With Convolutional Sequence Learning

在Deep Voice的第三次迭代中,作者介紹了一種基於全卷積注意力機制fully-convolutional attention-based 的neural text-to-speech(TTS)系統。

作者提出了一種fully-convolutional 完全卷積的字符到頻譜圖character-to-spectrogram體系結構,該體系結構可以實現完全並行的計算。該體系結構是一種基於注意力的sequence-to-sequence模型。該模型在LibriSpeech ASR數據集上進行了訓練。

所提出的體系結構能夠將諸如字符characters,音素phonemes和重音stresses的文本特徵轉換成不同的聲碼器vocoder參數。其中一些包括梅爾波段頻譜圖,線性標度對數幅度頻譜圖,基頻,頻譜包絡和非週期性參數。這些vocoder聲碼器參數然後用作音頻波形合成模型的輸入。

深度學習語音合成 2019 指南

該體系結構由以下內容組成:

  • 編碼器—一種全卷積編碼器,可將文本特徵轉換為內部學習的表示形式。
  • 解碼器-一種全卷積因果解碼器,以自迴歸方式對學習的表示進行解碼。
  • 轉換器—一種全卷積的post-processing 網絡,可預測最終的聲碼器參數。

對於文本預處理,使用作者的大寫文本輸入字符,刪除標點符號,在每個發音處以句號或問號結尾,並用表示暫停時間的特殊字符替換空格。

下圖是此模型與其他替代模型的性能比較。

深度學習語音合成 2019 指南

Parallel WaveNet: Fast High-Fidelity Speech Synthesis

本文的作者來自Google。他們介紹了一種稱為“ 概率密度蒸餾(Probability Density Distillation)”的方法,該方法從訓練有素的WaveNet訓練並行前饋網絡。該方法是通過結合逆自迴歸流(IAF)和WaveNet 的最佳功能而構建的。這些功能代表了WaveNet的有效訓練和IAF網絡的有效採樣。

為了進行培訓,作者使用預訓練的WaveNet作為“teacher”,parallel WaveNet“student”從中學習。這裡的目標是讓student在從teacher那裡學到的分佈下匹配自己樣本的概率。

深度學習語音合成 2019 指南

作者還提出了其他損失函數,以指導student生成高質量的音頻流:

  • Power loss—與人類語音一樣,確保使用語音不同頻段的功率。
  • Perceptual loss-對於這種損失,作者嘗試了feature reconstruction loss(分類器中特徵圖之間的歐式距離)和style loss( Gram matrices之間的歐式距離)進行實驗。他們發現style loss會產生更好的結果。
  • Contrastive loss會懲罰具有高可能性的波形,而與conditioning vector無關。

下圖顯示了此模型的性能。

深度學習語音合成 2019 指南

深度學習語音合成 2019 指南

Neural Voice Cloning with a Few Samples

本文的作者來自百度研究。他們引入了一種neural語音克隆系統,該系統可以從一些音頻樣本中學習合成人的聲音。

所使用的兩種方法是speaker adaptation和speaker encoding。Speaker adaptation通過fine-tuning 多說話者 multi-speaker 生成模型來工作,而speaker encoding則通過訓練單獨的模型直接推斷出適用於多說話者multi-speaker生成模型的新說話者嵌入speaker embedding 來工作。

本文使用DeepVoice 3作為multi-speaker模型的基準。對於語音克隆,作者可以從說話者中提取說話者特徵並生成音頻(只要給定說話者的文本可用)。

用於生成的音頻的性能指標是語音自然度和說話者相似度。他們提出了一種speaker encoding方法,該方法可以直接從看不見的說話人的音頻樣本中估算出說話人的嵌入embeddings程度。

深度學習語音合成 2019 指南

下面是語音克隆的執行方式。

深度學習語音合成 2019 指南

深度學習語音合成 2019 指南

VoiceLoop:Voice Fitting and Synthesis via A Phonological Loop

本文的作者來自Facebook AI Research。他們引入了一種neural text-to-speech (TTS)技術,該技術可以從wild採樣的語音中將文本轉換為語音。

VoiceLoop受工作記憶模型(稱為語音循環 phonological loop)的啟發,該模型可在短時間內保存語言信息。它由一個不斷被替換的phonological store以及一個在phonological store中保持較長期representations的rehearsal process組成。

VoiceLoop通過實現一個 shifting buffer as a matrix來構造phonological store。句子表示為音素列表。然後從每個音素中解碼出一個short向量。當前上下文向量是通過對音素的編碼進行加權並在每個時間點對其求和來生成的。

使VoiceLoop與眾不同的一些屬性包括:使用內存緩衝區代替傳統的RNN,在所有進程之間共享內存以及對所有計算使用shallow,完全連接的網絡。

深度學習語音合成 2019 指南

下面是模型與其他替代方案相比的表現。

深度學習語音合成 2019 指南

深度學習語音合成 2019 指南

Natural TTS Synthesis by Conditioning WaveNet on Mel Spectrogram Predictions

本文的作者來自Google和加州大學伯克利分校。他們介紹了Tacotron 2,這是一種用於從文本進行語音合成的神經網絡體系結構。

它由一個遞歸sequence-to-sequence特徵預測網絡組成,該網絡將字符嵌入character embeddings映射到梅爾尺度譜圖mel-scale spectrograms。然後是經過修改的WaveNet模型。該模型用作合成來自聲譜圖的時域波的聲碼器vocoder。該模型的平均意見得分(MOS)為4.53。

深度學習語音合成 2019 指南

該模型是通過結合Tacotron和WaveNet的最佳功能而構建的。以下是該模型與替代模型相比的性能。

深度學習語音合成 2019 指南


分享到:


相關文章: