基於深度前饋序列記憶網絡,如何將語音合成速度提高四倍?

摘要: 研究背景 語音合成系統主要分爲兩類,拼接合成系統和參數合成系統。其中參數合成系統在引入了神經網絡做爲模型以後,合成質量和天然度都得到了長足的進步。另外一方面,物聯網設備(例如智能音箱和智能電視)的大量普及也對在設備上部署的參數合成系統提出了計算資源的限制和實時率的要求。前端

研究背景算法

語音合成系統主要分爲兩類,拼接合成系統和參數合成系統。其中參數合成系統在引入了神經網絡做爲模型以後,合成質量和天然度都得到了長足的進步。另外一方面,物聯網設備(例如智能音箱和智能電視)的大量普及也對在設備上部署的參數合成系統提出了計算資源的限制和實時率的要求。本工做引入的深度前饋序列記憶網絡能夠在保持合成質量的同時,有效下降計算量,提升合成速度。數據庫

咱們使用基於雙向長短時記憶單元(BLSTM)的統計參數語音合成系統做爲基線系統。與其餘現代統計參數語音合成系統類似,咱們提出的基於深度前饋序列記憶網絡(DFSMN)的統計參數語音合成系統也是由3個主要部分組成,聲音合成器(vocoder),前端模塊和後端模塊,如上圖所示。咱們使用開源工具WORLD做爲咱們的聲音合成器,用來在模型訓練時從原始語音波形中提取頻譜信息、基頻的對數、頻帶週期特徵(BAP)和清濁音標記,也用來在語音合成時完成從聲學參數到實際聲音的轉換。前端模塊用來對輸入的文本進行正則化和詞法分析,咱們把這些語言學特徵編碼後做爲神經網絡訓練的輸入。後端模塊用來創建從輸入的語言學特徵到聲學參數的映射,在咱們的系統中,咱們使用DFSMN做爲後端模塊。後端

深度前饋序列記憶網絡服務器

緊湊前饋序列記憶網絡(cFSMN)做爲標準的前饋序列記憶網絡(FSMN)的改進版本,在網絡結構中引入了低秩矩陣分解,這種改進簡化了FSMN,減小了模型的參數量,並加速了模型的訓練和預測過程。網絡

上圖給出了cFSMN的結構的圖示。對於神經網絡的每個cFSMN層,計算過程可表示成如下步驟①通過一個線性映射,把上一層的輸出映射到一個低維向量②記憶模塊執行計算,計算當前幀以前和以後的若干幀和當前幀的低維向量的逐維加權和③把該加權和再通過一個仿射變換和一個非線性函數,獲得當前層的輸出。三個步驟可依次表示成以下公式。ide

與循環神經網絡(RNNs,包括BLSTM)相似,經過調整記憶模塊的階數,cFSMN有能力捕捉序列的長程信息。另外一方面,cFSMN能夠直接經過反向傳播算法(BP)進行訓練,與必須使用沿時間反向傳播算法(BPTT)進行訓練的RNNs相比,訓練cFSMN速度更快,且較不容易受到梯度消失的影響。函數

對cFSMN進一步改進,咱們獲得了深度前饋序列記憶網絡(DFSMN)。DFSMN利用了在各種深度神經網絡中被普遍使用的跳躍鏈接(skip-connections)技術,使得執行反向傳播算法的時候,梯度能夠繞過非線性變換,即便堆疊了更多DFSMN層,網絡也能快速且正確地收斂。對於DFSMN模型,增長深度的好處有兩個方面。一方面,更深的網絡通常來講具備更強的表徵能力,另外一方面,增長深度能夠間接地增大DFSMN模型預測當前幀的輸出時能夠利用的上下文長度,這在直觀上很是有利於捕捉序列的長程信息。具體來講,咱們把跳躍鏈接添加到了相鄰兩層的記憶模塊之間,以下面公式所示。因爲DFSMN各層的記憶模塊的維數相同,跳躍鏈接可由恆等變換實現。工具

咱們能夠認爲DFSMN是一種很是靈活的模型。當輸入序列很短,或者對預測延時要求較高的時候,可使用較小的記憶模塊階數,在這種狀況下只有當前幀附近幀的信息被用來預測當前幀的輸出。而若是輸入序列很長,或者在預測延時不是那麼重要的場景中,可使用較大的記憶模塊階數,那麼序列的長程信息就能被有效利用和建模,從而有利於提升模型的性能。性能

除了階數以外,咱們爲DFSMN的記憶模塊增長了另外一個超參數,步長(stride),用來表示記憶模塊提取過去或將來幀的信息時,跳過多少相鄰的幀。這是有依據的,由於與語音識別任務相比,語音合成任務相鄰幀之間的重合部分甚至更多。

上文已經提到,除了直接增長各層的記憶模塊的階數以外,增長模型的深度也能間接增長預測當前幀的輸出時模型能夠利用的上下文的長度,上圖給出了一個例子。

實驗

在實驗階段,咱們使用的是一個由男性朗讀的中文小說數據集。咱們把數據集劃分紅兩部分,其中訓練集包括38600句朗讀(大約爲83小時),驗證集包括1400句朗讀(大約爲3小時)。全部的語音數據採樣率都爲16k赫茲,每幀幀長爲25毫秒,幀移爲5毫秒。咱們使用WORLD聲音合成器逐幀提取聲學參數,包括60維梅爾倒譜系數,3維基頻的對數,11維BAP特徵以及1維清濁音標記。咱們使用上述四組特徵做爲神經網絡訓練的四個目標,進行多目標訓練。前端模塊提取出的語言學特徵,共計754維,做爲神經網絡訓練的輸入。

咱們對比的基線系統是基於一個強大的BLSTM模型,該模型由底層的1個全鏈接層和上層的3個BLSTM層組成,其中全鏈接層包含2048個單元,BLSTM層包含2048個記憶單元。該模型經過沿時間反向傳播算法(BPTT)訓練,而咱們的DFSMN模型經過標準的反向傳播算法(BP)訓練。包括基線系統在內,咱們的模型均經過逐塊模型更新過濾算法(BMUF)在2塊GPU上訓練。咱們使用多目標幀級別均方偏差(MSE)做爲訓練目標。

全部的DFSMN模型均由底層的若干DFSMN層和上的2個全鏈接層組成,每一個DFSMN層包含2048個結點和512個投影結點,而每一個全鏈接層包含2048個結點。在上圖中,第三列表示該模型由幾層DFSMN層和幾層全鏈接層組成,第四列表示該模型DFSMN層的記憶模塊的階數和步長。因爲這是FSMN這一類模型首次應用在語音合成任務中,所以咱們的實驗從一個深度淺且階數小的模型,即模型A開始(注意只有模型A的步長爲1,由於咱們發現步長爲2始終稍好於步長爲1的相應模型)。從系統A到系統D,咱們在固定DFSMN層數爲3的同時逐漸增長階數。從系統D到系統F,咱們在固定階數和步長爲10,10,2,2的同時逐漸增長層數。從系統F到系統I,咱們固定DFSMN層數爲10並再次逐漸增長階數。在上述一系列實驗中,隨着DFSMN模型深度和階數的增長,客觀指標逐漸下降(越低越好),這一趨勢很是明顯,且系統H的客觀指標超過了BLSTM基線。

另外一方面,咱們也作了平均主觀得分(MOS)測試(越高越好),測試結果如上圖所示。主觀測試是經過付費衆包平臺,由40個母語爲中文的測試人員完成的。在主觀測試中,每一個系統生成了20句集外合成語音,每句合成語音由10個不一樣的測試人員獨立評價。在平均主觀得分的測試結果代表,從系統A到系統E,主觀聽感天然度逐漸提升,且系統E達到了與BLSTM基線系統一致的水平。可是,儘管後續系統客觀指標持續提升,主觀指標只是在系統E得分的上下波動,沒有進一步提升。

結論

根據上述主客觀測試,咱們獲得的結論是,歷史和將來信息各捕捉120幀(600毫秒)是語音合成聲學模型建模所須要的上下文長度的上限,更多的上下文信息對合成結果沒有直接幫助。與BLSTM基線系統相比,咱們提出的DFSMN系統能夠在得到與基線系統一致的主觀聽感的同時,模型大小隻有基線系統的1/4,預測速度則是基線系統的4倍,這使得該系統很是適合於對內存佔用和計算效率要求很高的端上產品環境,例如在各種物聯網設備上部署。

阿里雲雙十一1折拼團活動:已滿6人,都是最低折扣了

【滿6人】1核2G雲服務器99.5元一年298.5元三年 2核4G雲服務器545元一年 1227元三年

【滿6人】1核1G MySQL數據庫 119.5元一年

【滿6人】3000條國內短信包 60元每6月

參團地址:http://click.aliyun.com/m/1000020293/

原文連接

相關文章
相關標籤/搜索