Siri 是一個使用語音合成技術與人類進行交流的個人助手。從 iOS 10 開始,蘋果已經在 Siri 的語音中用到了深度學習,iOS 11 中的 Siri 依然延續這一技術。使用深度學習使得 Siri 的語音變的更自然、流暢,更人性化。?
介紹
語音合成,也就是人類聲音的人工產品,被廣泛應用于從助手到游戲、娛樂等各種領域。最近,配合語音識別,語音合成已經成為了 Siri 這樣的語音助手不可或缺的一部分。
如今,業內主要使用兩種語音合成技術:單元選擇 [1] 和參數合成 [2]。單元選擇語音合成技術在擁有足夠高質量錄音時能夠合成最高質量的語音,也因此成為商業產品中最常用的語音合成技術。另外,參數合成能夠提供高度可理解的、流暢的語音,但整體質量略低。因此,在語料庫較小、低占用的情況下,通常使用參數合成技術?,F代的單元選擇系統結合這兩種技術的優勢,因此被稱為混合系統。混合單元選擇方法類似于傳統的單元選擇技術,但其中使用了參數合成技術來預測選擇的單元。
近期,深度學習對語音領域沖擊巨大,極大的超越了傳統的技術,例如隱馬爾可夫模型。參數合成技術也從深度學習技術中有所收益。深度學習也使得一種全新的語音合成技術成為了可能,也就是直接音波建模技術(例如 WaveNet)。該技術極有潛力,既能提供單元選擇技術的高質量,又能提供參數選擇技術的靈活性。然而,這種技術計算成本極高,對產品而言還不成熟。為了讓所有平臺的 Siri 語音提供最佳質量,蘋果邁出了這一步,在設備中的混合單元選擇系統上使用了深度學習。
蘋果深度語音合成技術工作原理
為個人助手建立高質量的文本轉語音(TTS)系統并非簡單的任務。首先,第一個階段是找到專業的播音人才,她/他的聲音既要悅耳、易于理解,又要符合 Siri 的個性。為了覆蓋各種人類語音,我們首先在錄音棚中記錄了 10-20 小時的語音。錄制的腳本從音頻簿到導航指導,從提示答案到笑話,不一而足。通常來說,這種天然的語音不能像錄制的那樣使用,因為不可能錄制助手會說的每一句話。因此,單元選擇 TTS 系統把記錄的語音切片成基礎元件,比如半音素,然后根據輸入文本把它們重新結合,創造全新的語音。在實踐中,選擇合適的音素并組合起來并非易事,因為每個音素的聲學特征由相鄰的音素、語音的韻律所決定,這通常使得語音單元之間不相容。圖 1 展示了如何使用被分割為半音素的數據庫合成語音。
圖 1:展示了使用半音素進行單元選擇語音合成。合成的發音是「Unit selection synthesis」,圖的頂部是使用半音素的標音法。相應的合成波形與光譜圖在圖下部分。豎線劃分的語音段是來自數據集的持續語音段,數據集可能包含一個或多個半音素。
單元選擇 TTS 技術的基本難題是找到一系列單元(例如,半音素),既要滿足輸入文本、預測目標音韻,又要能夠在沒有明顯錯誤的情況下組合在一起。傳統方式上,該流程包含兩部分:前端和后端(見圖 2),盡管現代系統中其界限可能會很模糊。前端的目的是基于原始文本輸入提供語音轉錄和音韻信息。這包括將包含數字、縮寫等在內的原始文本規范化寫成單詞,并向每個單詞分配語音轉錄,解析來自文本的句法、音節、單詞、重音、分句。要注意,前端高度依賴語言。
圖 2:文本轉語音合成流程。
使用由文本分析模塊創建的符號語言學表征,音韻生成模塊預測音調、音長等聲學特征的值。這些值被用于選擇合適的單元。單元選擇的任務極其復雜,所以現代的合成器使用機器學習方法學習文本與語音之間的一致性,然后根據未知文本的特征值預測其語音特征值。這一模塊必須要在合成器的訓練階段使用大量的文本和語音數據進行學習。音韻模型輸入的是數值語言學特征,例如音素特性、音素語境、音節、詞、短語級別的位置特征轉換為適當的數值形式。音韻模型的輸出由語音的數值聲學特征組成,例如頻譜、基頻、音素時長。在合成階段,訓練的統計模型用于把輸入文本特征映射到語音特征,然后用來指導單元選擇后端流程,該流程中聲調與音長的合適度極其重要。
與前端不同,后端通常是語言獨立的。它包括單元選擇和波形拼接部分。當系統接受訓練時,使用強制對齊將錄制的語音和腳本對齊(使用語音識別聲學模型)以使錄制的語音數據被分割成單獨的語音段。然后使用語音段創建單元數據庫。使用重要的信息,如每個單元的語言環境(linguistic context)和聲學特征,將該數據庫進一步增強。我們將該數據叫作單元索引(unit index)。使用構建好的單元數據庫和指導選擇過程的預測音韻特征,即可在語音空間內執行 Viterbi 搜索,以找到單元合成的最佳路徑(見圖 3)。
圖 3. 使用 Viterbi 搜索在柵格中尋找單元合成最佳路徑。圖上方是合成的目標半音素,下面的每個框對應一個單獨的單元。Viterbi 搜索找到的最佳路徑為連接被選中單元的線。
該選擇基于兩個標準:(1)單元必須遵循目標音韻;(2)在任何可能的情況下,單元應該在單元邊界不產生聽覺故障的情況下完成拼接。這兩個標準分別叫作目標成本和拼接成本。目標成本是已預測的目標聲學特征和從每個單元抽取出的聲學特征(存儲在單元索引中)的區別,而拼接成本是后項單元之間的聲學區別(見圖 4)。總成本按照如下公式計算:
其中 u_n 代表第 n 個單元,N 代表單元的數量,w_t 和 w_c 分別代表目標成本和拼接成本的權重。確定單元的最優順序之后,每個單元波形被拼接,以創建連續的合成語音。
圖 4. 基于目標成本和拼接成本的單元選擇方法。
Siri 新聲音背后的技術
因為隱馬爾可夫模型對聲學參數的分布直接建模,所以該模型通常用于對目標預測 [5][6] 的統計建模,因此我們可以利用如 KL 散度那樣的函數非常簡單地計算目標成本。然而,基于深度學習的方法通常在參數化的語音合成中更加出色,因此我們也希望深度學習的優勢能轉換到混合單元選擇合成(hybrid unit selection synthesis)中。
Siri 的 TTS 系統的目標是訓練一個基于深度學習的統一模型,該模型能自動并準確地預測數據庫中單元的目標成本和拼接成本(concatenation costs)。因此該方法不使用隱馬爾可夫模型,而是使用深度混合密度模型(deep mixture density network /MDN)[7][8] 來預測特征值的分布。MDS 結合了常規的深度神經網絡和高斯混合模型(GMM)。
常規 DNN 是一種在輸入層和輸出層之間有多個隱藏層的人工神經網絡。因此這樣的深度神經網絡才能對輸入特征與輸出特征之間的復雜和非線性關系建模。通常深度神經網絡使用反向傳播算法通過誤差的傳播而更新整個 DNN 的權重。相比之下,GMM 在使用一系列高斯分布給定輸入數據的情況下,再對輸出數據的分布進行建模。GMM 通常使用期望最大化(expectation maximization /EM)算法執行訓練。MDN 結合了 DNN 和 GMM 模型的優點,即通過 DNN 對輸入和輸出之間的復雜關系進行建模,但是卻提高概率分布作為輸出(如下圖 5)。
圖 5:用于對聲音特征的均值和方差建模的深度混合密度網絡,輸出的聲學均值和方差可用于引導單元選擇合成
對于 Siri 來說,我們使用了基于 MDN 統一的目標和拼接模型,該模型能預測語音目標特征(頻譜、音高和音長)和拼接成本分布,并引導單元的搜索。因為 MDN 的分布是一種高斯概率表分布形式,所以我們能使用似然度函數作為目標和拼接成本的損失函數:
其中 x_i 是第 i 個目標特征,μ_i 為預測均值,而 (σ_i)^2 為預測方差。在實際的成本計算中,使用負對數似然函數和移除常數項將變得更加方便,經過以上處理將簡化為以下簡單的損失函數:
其中 w_i 為特征權重。
當我們考慮自然語言時,這種方法的優勢將變得非常明顯。像元音那樣,有時候語音特征(如話音素)相當穩定,演變也非常緩慢。而有時候又如有聲語音和無聲語音的轉換那樣變化非常迅速??紤]到這種變化性,模型需要能夠根據這種變化性對參數作出調整,深度 MDN 的做法是在模型中使用嵌入方差(variances embedded)。因為預測的方差是依賴于上下文的(context-dependent),所以我們將它們視為成本的自動上下文依賴權重。這對提升合成質量是極為重要的,因為我們希望在當前上下文下計算目標成本和拼接成本:
其中 w_t 和 w_c 分別為目標和拼接成本權重。在最后的公式中,目標成本旨在確保合成語音(語調和音長)中再現音韻。而拼接成本確保了流暢的音韻和平滑的拼接。
在使用深度 MDN 對單元的總成本進行評分后,我們執行了一種傳統的維特比搜索(Viterbi search)以尋找單元的最佳路徑。然后,我們使用波形相似重疊相加算法(waveform similarity overlap-add/WSOLA)找出最佳拼接時刻,因此生成平滑且連續合成語音。
評論