深度學習在語音生成問題上的典型應用
此文是極限元劉斌博士在雷鋒網做的分享:《深度學習在語音生成問題上的典型應用》
劉斌,中科院自動化所博士,極限元資深智能語音演算法專家,中科院-極限元智能交互聯合實驗室核心技術人員,曾多次在國際頂級會議上發表論文,獲得多項關於語音及音頻領域的專利,具有豐富的工程經驗。
深度學習在2006年嶄露頭角後,近幾年取得了快速發展,在學術界和工業界均呈現出指數級增長的趨勢;伴隨著這項技術的不斷成熟,深度學習在智能語音領域率先發力,取得了一系列成功的應用,在語音領域也已經落地解決了許多問題,語音合成、語音增強、語音轉換、語音帶寬擴展等等。本文圍繞語音合成和語音增強兩個典型問題展開介紹。
語音合成
語音合成的任務目標是從文本輸入到聲學特徵的轉換。在生成語音之前,文本首先需要進行分析預處理,其中正則化針對數字和特殊符號,音字轉換針對多音字,韻律處理讓生成的語音抑揚頓挫、有節奏感,然後再進行後端的生成。聲學處理常用的方法有統計參數建模和聲碼器的方法。
這是傳統基於隱馬爾可夫框架(HMM)的統計參數語音合成系統,在訓練過程中建立文本參數到音頻參數之間的映射關係。其中有三個環節會導致語音音質下降:決策樹聚類、聲碼器重新生成語音、以及動態參數生成演算法。針對這三個問題點,就有人提出用深度學習的方法進行改進。
深度學習的方法里,用神經網路代替決策樹的作用,建立文本特徵和聲學特徵之間的關係,就提高了模型的精度。對於具體的模型結構,LSTM比DBN具有更強的序列學習能力,所以使用LSTM時經常可以跳過參數生成演算法,直接預測語音參數,然後送到聲碼器中就可以生成語音了。深度神經網路強大的非線性建模能力也能在一定程度上提升語音合成系統的性能。
最近一兩年在工業界也有一些新的語音合成方法,比如基於WavNet的語音合成。這是一種從時域(聲波在不同時間的採樣值大小)的角度出發處理語音問題的方法,問題本身很有挑戰性;傳統方法都是從頻域(聲波在不同時間的頻率高低)出發的。谷歌提出的WavNet可以直接把文本參數和聲波的採樣值建立對應關係。它的主要問題是,每次只能輸出單個採樣點的值,導致計算速度慢、生成效率低。
百度也提出了基於 DeepVoice 的語音生成系統,用深度神經網路實現了其中多個模塊,然後以類似WavNet的模塊生成語音。它的計算速度相比 WavNet 提升了約400倍。隨後百度進一步拓展為了DeepVoice2,可以支持多說話人的語音合成,每個人也最少也只需要半個小時數據就可以達到比較理想的效果。
Tacotron是谷歌推出的比較新穎的語音合成系統,它的特點是使用了編碼器-解碼器的網路結構,好處在於輸入和輸出序列的長度可以不需要保持一致;並且引入了注意力機制,可以提升性能。結構里還包含一個後處理網路。網路的輸出是一個頻譜圖,用相位重構演算法就可以轉換為語音。這種方法里繞開了聲碼器模塊,可以提升語音的質量
目前語音合成方面還有一些問題沒有解決,一,多數方法還是面向單個說話人的。對於多個說話人、多語言的語音合成效果仍然不太理想。遷移學習相關的方法有可能會對這類問題的解決做出貢獻。二,目前的語音系統生成的聲音的表現力還有所不足,尤其是合成口語的時候,效果會有下降。
語音增強
語音增強是語音識別、聲紋識別等演算法中重要的前端處理模塊。它的優劣在一定程度上影響著後續識別方法的魯棒性。根據麥克風的數目不同,語音增強可以分為單通道語音增強和多通道語音增強。多通道語音增強可以更有效低利用聲音的空間信息,增強目標方向的聲音信息,抑制分目標方向的干擾源;這類方法今天先不作具體介紹,感興趣的可以參見麥克風陣列技術的相關資料。
圖中展示了四種主要的干擾源,真實狀況下可能是同時存在的,這就給語音增強帶來了很大難度。以下介紹一些單通道語音環境下的語音增強方法。
單通道語音增強的方法主要分為三大類。基於深度學習的語音增強方法下面會做詳細一些的介紹。這裡也是利用了深度學習強大的非線性建模的能力,在匹配的環境下優勢很明顯,在處理非平穩雜訊的時候也有一定的優勢。
這是一種通過深層神經網路直接預測譜參數的方法,它的輸入是帶噪語音的幅值譜相關特徵,輸出是乾淨語音的幅值譜相關特徵,然後建立了兩者間的映射關係。網路結構可以是DNN,可以是LSTM,甚至可以是CNN。這類方法可以更有效地捕捉到上下文的信息,所以處理非平穩雜訊時有一定優勢。
深層神經網路還可以用來預測屏蔽值。這類方法中,模型的輸入可以是聽覺域相關特徵,輸出可以是二值型的屏蔽值或者浮點型的屏蔽值。這類方法根據聽覺感知的特性把音頻分為了不同的子帶,提取特徵參數。它的實際作用是判斷時頻單元內的內容是語音還是雜訊,然後根據判斷結果保留時頻單元內的能量或者置零。這類方法的優勢是,共振峰處的能量可以得到很好的保留,而相鄰共振峰之間、波谷處的語音雖然會失真較多,但是人類對這些信息不敏感,所以仍然有相對較高的可懂度。
以往的方法主要關注於聲音的幅值譜,沒有利用到相位譜中的信息。複數神經網路中的複數譜就是一種同時利用幅值譜和相位譜的方法。
現在還有利用生成式對抗網路GANs的語音增強方法。GANs是這兩年的熱點範式,目前在語音領域中的應用還不多,不過今年也已經有人提出運用在語音增強中。這篇論文中的方法中,不再需要RNN結構網路中的遞歸操作,可以直接處理原始音頻,是端到端的方法,不需要手工提取特徵,也不需要對原始數據做明顯的假設。生成器結構採用了CNN,而且沒有全連接層,這樣可以減少模型參數數量、縮短訓練時間;端到端直接處理原始語音信號的方法也避免了變換、提取聲音特徵等複雜過程。鑒別器仍然起到引導生成器更新的作用。
除了剛才說到的一些主要針對環境雜訊抑制的方法之外,PIT方法則可以處理兩個或更多說話人聲音混疊時的分離問題。還有一種基於深層聚類的分離方法。不過為了在真實環境下可用,去噪音、去混響等問題也需要考慮,分離問題仍然有很大的困難。
語音增強領域目前仍待解決的問題是,如何在消除雜訊的同時有效提高語音的可懂度、聽感(避免消除語音本身的特徵),以及,語音增強方法作為後續語音識別和聲紋識別方法的預處理模塊,需要前後合理對接,而不應完全分別設計,這樣才能提高整個系統的魯棒性。
最後,對於未來發展的展望,語音生成領域許多問題雖然建模方法不同,但是也有許多值得互相借鑒的部分,可以促進相互提高。深度學習雖然是火熱的方法,但是也不能指望深度學習解決所有的問題。並且,要先對處理對象的物理含義有深入的理解,在這個基礎上尋找合適的模型、對模型進行優化,才能得到較好的問題解決效果。
推薦閱讀:
※脫碳入硅
※從基礎概念到實現,小白如何快速入門PyTorch
※人工智慧的過去、現在、未來和幻想
※Keras官方中文版文檔來了~
TAG:人工智慧 |