Merlin:一個開源的神經網絡語音合成系統

摘要

  我們介紹Merlin語音合成工具包用於基於神經網絡的語音合成。該系統將語言特徵作爲輸入,採用神經網絡來預測聲學特徵,然後將聲學特徵傳遞到聲音合成機(vocoder)以產生語音波形。不同的神經網絡架構已被實現,包括標準的前饋神經網絡,混合密度神經網絡,遞歸神經網絡(RNN),長短時記憶(LSTM)遞歸神經網絡,以及其他。該工具包開源,Python編寫,可擴展。本文簡要描述該系統,提供可自由獲取的語料庫上的一些基準結果。
  
索引詞:語音合成,深度學習,神經網絡,開源,工具包

1. 介紹

  文字轉語音(TTS)涉及給定文字輸入,生成語音波形。一般可自由獲取的工具包用到了兩種廣泛使用的方法:波形拼接,基於HMM的統計參數語音合成(簡稱SPSS)。即使好的波形拼接語音的自然度仍然通常情況下顯著優於通過SPSS使用聲音合成機生成的語音,靈活、可控制、小體量的優勢,意味着SPSS依然是一個有吸引力的議題。
  在SPSS中,一個重要的限制合成語音自然度的因素是聲學模型,該模型學習語音和聲學特徵之間的關係,而這是一個複雜的非線性迴歸問題。過去幾十年,隱馬爾科夫模型(HMM)在聲學建模中佔支配地位。HMM參數化的方式很關鍵,這一般需要使用迴歸樹進行模型聚類(或綁定)用於聲學和語言學相關的上下文。然而必需的上下文交叉取平均相當地降低了合成語音的質量。有理由說基於HMM的SPSS應該更準確地成爲基於迴歸樹的SPSS,然後有一個明顯的問題:爲什麼不使用一個比樹更強大的模型呢?
  近來,神經網絡被“重新發現”用作SPSS聲學模型。在1990年代,神經網絡已經被用於學習語言和聲學特徵的關係,作爲時長模型預測分段時長,從原始文本輸入中提取語言特徵。今天和1990年代的主要區別在於:更多的隱藏層,更多的訓練數據,更先進的計算資源,更先進的訓練算法,以及用於完整的參數化語音合成器的各種其他技術的重大進步,如聲音合成機,參數補償/增強/後值濾波技術。

1.1 神經網絡語音合成的近期工作

  近期的研究中,受限玻爾茲曼機(RBM)被用於取代高斯混合模型用於建模聲學特徵的分佈。這項工作聲稱RBM可以建模頻譜細節,得到更好質量的合成語音。深度置信網絡(DBM)作爲深層生成性模型被共同用於建模語言和聲學特徵的關係。深層混合密度網絡和實值音軌神經自迴歸密度估計函數(trajectory real-valued neural autoregressive
density estimators)同樣被用於預測聲學特徵的概率密度函數。
  深度前饋神經網絡(DNN)作爲深層條件模型是文獻中直接映射語言特徵和聲學特徵的流行模型。DNN可被視爲基於HMM語音中的決策樹的替代。也可被用於直接建模高維頻譜。在前饋框架中,一些技術被用於提高性能,如多任務學習,最小生成誤差。然而。DNN逐幀執行映射而沒有考慮上下文約束,即使堆疊的bottleneck特徵可以包含一些短時上下文信息。
  爲了包含上下文約束,基於一個雙向長短時記憶網絡(LSTM)的RNN被用於表達TTS爲一個序列到序列的映射問題,也就是將一個序列的語言特徵映射到相應學列的聲學特徵上。包含遞歸輸出層的LSTM也被提出以包含上下文約束。LSTM與基於RNN的門遞歸單元(GRU)和混合密度模型結合預測概率密度函數序列。基於LSTM的RNN的系統分析也被提出以提供關於LSTM的更好理解。

1.2 新工具包的需求

  近來,即使語音合成中神經網絡的使用有了爆發需求,荏苒卻是一個真正的開源工具包。這樣一個工具包能夠支撐可復現的研究,允許競爭技術更精確的交叉比較,像是HTS工具包在基於HMM的工作中的方式一樣。在本文中,我們介紹Merlin,一個基於神經網絡的開源語音合成系統。這一系統已經被廣泛用於許多近期研究論文的工作中。本文簡要介紹工具包的設計和實現,並提供在一個可自由獲取的語料庫上的基準結果。
  除了這兒的結論和上述一系列之前發表的論文,Merlin也是2016 Blizzard挑戰賽的DNN基準系統。那兒,它與Ossian前端,WORLD聲音合成機結合使用,這些都是開源的,使用不受限制,提供了一個簡單可復現的系統。

2. 設計和實現

  像HTS一樣,Merlin不是一個完整的TTS系統。它提供了核心的聲學建模功能:語言特徵矢量化,聲學和語言特徵歸一化,神經網絡聲學模型訓練和生成。當前,波形生成模塊支持兩種聲音合成機:STRAIGHT和WORLD,但是工具包可以在未來很容易擴展到其他聲音合成機。也同樣容易連接到不同的前端文本處理器。
  Merlin用Python語言編寫,基於theano庫。一起推出的有源碼的文檔,以及一個示例樣本集用於不同的系統配置。

2.1 前端

  Merlin需要一個外部的前端,比如Festival或者Ossian。前端的輸出當前必須被格式化爲HTS風格的標籤,帶有state級對齊。工具包將標籤轉換爲二進制連續特徵向量作爲神經網絡的輸入。特徵通過使用HTS風格問題從label文件得到。也可以直接提供已經矢量化的輸入特徵,如果HTS類似的工作流不方便的話。

2.2 聲音合成機

  當前,系統支持兩種聲音合成機:STRAIGHT(C語言版)和WORLD。STRAIGHT不能包含在分發中因爲它不是開源的,但是Merlin包含了WORLD聲音合成機的一個修改版本。修改添加了獨立的分析和合成執行文件,這對於SPSS是必須的。不難支持其他聲音合成機,如何做的細節可以閱讀包含文檔。

2.3 特徵歸一化

  在訓練神經網絡之前,歸一化特徵是很重要的。工具包支持兩種歸一化方法:最小最大,均值方差。最小最大歸一化會歸一化特徵到[0.01 0.09]範圍,均值方差歸一化會歸一化特徵到零均值單位方差。當前,默認的語言特徵做最小最大歸一化,輸出聲學特徵做均值方差歸一化。

2.4 聲學建模

  Merlin包含若干當前流行的聲學模型的實現,每種都以一個示例樣本來描述其使用。

2.4.1 前饋神經網絡

  前饋神經網絡是最簡單的網絡類型。有了足夠多層,該結構通常成爲深度神經網絡(DNN)。通過若干隱藏單元的層,輸入被用來預測輸出,每個隱藏單元執行非線性函數,如下:
  這裏寫圖片描述
  其中,H(.)是隱藏層的非線性激活函數,W(xh)和W(hy)是權重矩陣,b(h)和b(y)是偏置向量,W(hy).h(t)是一個線性迴歸,用於從之前隱藏層的激活來預測目標特徵。圖1是前饋神經網絡的說明。
這裏寫圖片描述
  它將語言特徵作爲輸入,通過若干隱藏層(圖中爲4層)來預測聲音合成機的參數。在本文餘下部分,我們將用DNN來表示這一類型的前饋神經網絡。在工具包中,sigmoid和雙曲線正切激活函數支持隱層。

2.4.2 基於LSTM的RNN

  在DNN中,語言特徵被逐幀映射到聲音合成機參數而不考慮語音的連續自然。作爲對比,遞歸神經網絡(RNN)被設計爲序列到序列的映射。長短時記憶(LSTM)單元是實現RNN的流行方式。
  LSTM是語音識別中普遍使用的架構,他被表示爲:
  這裏寫圖片描述
  其中i(t),f(t)和o(t)分別是輸入門,遺忘門,輸出門。c(t)是所謂的記憶單元,h(t)是t時刻的隱藏激活,x(t)是輸入信號,W(*)和R(*)是應用到輸入和遞歸隱藏單元的權重矩陣。p(*)和b(*)是peep-hole連接和偏置。δ(.)和g(.)是sigmoid和雙曲線正切激活函數,◎指element-wise
product。
  圖2成仙了一個標準LSTM單元的說明。它將輸入信號和前一時間實例的隱藏激活傳送通過輸入門,遺忘門,記憶單元和輸出門來產生激活。在我們的實現中,其若干變體也同樣適用。
  這裏寫圖片描述

2.4.3 雙向RNN

  在單向RNN中,只有來自過去時間實例的上下文信息被考慮,然而在雙向RNN中可以學習時間中前向和後向傳播的信息。一個雙向RNN可以被定義爲:
  這裏寫圖片描述
  其中[前向h(t)]和[後向h(t)]分別是來自正反方向的隱藏激活,W(x[前向h(t)])和W(x[後向h(t)])是輸入信號的權重矩陣,R([前向h(t)][前向h(t)])和R([後向h(t)][後向h(t)])分別是前後向的遞歸矩陣。
  在雙向RNN中,隱藏單元可以without gating,或者gated units such as LSTM。我們使用BLSTM來表示一個基於雙向LSTM的RNN。

2.4.4 其他變體#### 

  在Merlin中,神經網絡的其他變體也實現了,比如門遞歸單元(GRU),簡化LSTM和LSTM,GRU的其他變體。所有這些基礎單元都可以通過簡單改變配置文件組合到一起,以創建一個新的結構。例如,爲了實現使用雙曲線正切單元的4層前饋神經網絡,可以在配置文件中簡單指定如下結構:
  [TANH, TANH, TANH, TANH]
相似的,一個基於雙向LSTM的RNN可以在配置文件中被指定爲
  [TANH, TANH, TANH, BLSTM]
支持單元類型的更多細節可以在系統的文檔中找到。

3. 基準性能

3.1 實驗設置

  爲了描述工具包的性能,我們在Merlin中報告了若干架構實現的基準實驗。實驗中使用了來自於一個英國男性職業演講者的可自由獲取語料庫。使用的語音信號採樣率爲48kHz。2400句作爲訓練集,70句作爲開發集,72句作爲評估集。所有集合是不相關的。
  所有實驗的前端是Festival。所有神經網絡的輸入特徵爲491維。其中482維由語言上下文得到,包括音節、詞、短語中的五音子id,詞性和位置信息,等等。剩下9維是音素內部位置信息:幀在HMM狀態及音素中的位置,狀態在前向後向音素中的位置,以及狀態和音素時長。幀對齊和狀態信息是由強制對齊取得,通過基於單音素HMM得新系統,其每個音素有5個發射狀態。
  我們在實驗中使用了兩種聲音合成機:STRAIGHT和WORLD。STRAIGHT(C語言版)不開源,用來在5毫秒幀間隔上提取60維梅爾頻譜系數(MCC),25 band aperiodicities(BAP),和對數尺度上的基頻(log F0)。類似的,WORLD開源,用來在5毫秒幀間隔上提取60維MCC,5維BAP,及log F0。神經網絡的輸出特徵包含了MCC、BAP、log F0以及他們的差分,差分的差分,加上濁音/輕音的二進制特徵。
  在訓練之前,輸入特徵使用最小最大方法歸一化到[0.01 0.09]範圍,輸出特徵歸一化到零均值單位方差。在合成時刻,最大似然參數生成(MLPG)被用於從非歸一化神經網絡輸出中生成平滑參數音軌,然後頻譜增強在倒譜域被用於MCC來增強自然度。語音信號處理工具包(SPTK)被用來實現頻譜增強。
  這兒我們報告4個基準系統:

  • DNN:6個前饋隱層,每個隱層1024個雙曲線正切單元。

  • LSTM:混合結構,4個每層1024個雙曲線正切單元的隱層,隨後是單個512單元的LSTM層。

  • BLSTM:與LSTM相似的混合結構,但是用384單元的BLSTM層取代了LSTM層。

  • BLSTM-S:與BLSTM一樣的結構。差分與差分的差分特徵從輸出特徵向量發射,不使用MLPG。理論上,該BLSTM結構應該在訓練中學習獲得差分特徵,並生成已經平滑的音軌。

3.2 客觀結果

  四個系統使用STRAIGHT聲音合成機的客觀結果呈現在表1中。LSTM和BLSTM和期望的一樣,相比DNN獲得了更好的結果。不在訓練過程中使用動態特徵也不採用MLPG的BLSTM-S比其他結構有更高的客觀錯誤。
  這裏寫圖片描述
  同樣四個結構的客觀結果呈現在表2,但這次使用了WORLD聲音合成機。和使用STRAIGHT的結果類似。注意F0 RMSE和V/UV不能直接在表1和表2間比較,因爲它們使用了不同的F0提取器。對於兩個聲音合成機,我們使用了各自工具創建者的默認設置。
  這裏寫圖片描述
  一般來說,客觀結果證實了LSTM和BLSTM相比DNN能夠獲得更好的結果,但是動態特徵和MLPG對於BLSTM仍然有用,即使它理論上有能力建模必需的音軌信息。

3.3 主觀結果

  我們進行了MUSHRA (MUltiple Stimuli with Hidden Reference and Anchor)聽力測試來主觀評估合成語音的自然度。我們在兩個獨立的MUSHRA測試中分別採用STRAIGHT和WORLD聲音合成機,評估所有四個基準系統。
  在每個MUSHRA測試中,有30位英國本地的英語聽者,每位評價從評估集中隨機選取的20個集合。每個集合中,一段有着相同語言內容的自然語音作爲隱藏參照被包含。聽者被指導給每個激勵一個0到100間的分數,並給每個集合的其中之一評爲100,這意味着是自然的。
  使用STRAIGHT的系統MUSHRA得分呈現在圖3中。可觀察到LSTM和BLSTM明顯好於DNN。BLSTM比LSTM生成的語音稍微更自然一些,但是區別並不明顯。也可以發現BLSTM比BLSTM-S明顯更自然,這和上述報告的客觀錯誤相一致。
  這裏寫圖片描述
  使用WORLD的系統MUSHRA得分呈現在圖4中。不同系統間相對差別和STRAIGHT例子類似
  這裏寫圖片描述
  一般來說,主觀結果和客觀結果是一致的,不論哪個聲音合成機趨勢是相似的。客觀和主觀結果證實,LSTM和BLSTM相比DNN提供了更好的性能,MLPG對於BLSTM仍然有用。

4. 結論

  在本文中,我們介紹了開源Merlin語音合成工具包,並在一個語料庫上提供了可復現的基準結果。我們希望該系統的獲得能夠促進神經網絡語音合成的開放研究,使不同神經網絡配置間的比較更加容易,允許研究者報告可復現的結果。發佈的工具包,包含可復現本文所有結果的示例樣本,這也產生了我們近期的一些發表文章。我們的意向是,未來使用工具包發表的結果也能夠伴隨有示例樣本。

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