第七章 語音合成系統概述
來自專欄智能機器人7 人贊了文章
第七章 語音合成系統概述
第一節 語音合成的發展與應用
語音合成就是將任意文本轉換成語音的技術。如果說語音識別是讓計算機學會「聽」人說話,將輸入的語音信號轉換成文字,那麼語音合成就是讓計算機程序把我們輸入的文字「說」出來。實際上最早能夠形成實用化的語音技術是從語音合成開始的,現在大型的場館會議和公共場所聽到的廣播聲音大都是用這個技術合成出來的。
語言合成技術的研究已有二百多年的歷史,但是真正有實用意義的語音合成技術是隨著計算機技術和數字信號處理技術的發展而發展起來的。一個典型的語音合成系統的前端部分主要是對輸入文本進行分析並提取語音建模需要的信息,具體包括分詞、詞性標註、多音字消岐、字音轉換、韻律結構與參數的預測等等。後端的部分讀入前端文本分析結果,並結合文本信息對輸出的語音進行建模。在合成過程中,後端會利用輸入的文本信息和訓練好的聲學模型,生成語音信號。根據所採用的方法和框架不同,現階段的語音生成器主要分為波形拼接、參數生成和基於波形的端到端統計合成這三種形式。
當前的TTS技術已經在信息的交流與播報等方面得到廣泛應用,它能夠全面支持多語種、多方言、多音色的選擇,發音水平已經超過真人,專業MOS評分可達4.0以上(最高為5分,代表專業播音員發音自然度)。還可構建如明星聲音定製、方言定製等專業音庫,滿足用戶的個性化需求。現階段語音合成發展的主要目標是進一步提高合成語音的清晰度與自然度、豐富合成語音的表現力、降低技術的複雜度等方面。另外合成語音現在的主要問題是很難體現出情感特徵,具體表現為韻律特徵上不夠靈活,聲調變化上相對死板等問題。而企業應該做的就是結合產業需求,把現在能夠實現的一些技術更好地轉化到應用當中去。
第二節 語音合成的流程框架及原理分類
簡單來說語音合成的流程分為文本分析、韻律分析和聲學分析三個部分。首先通過文本分析提取出音素、片語、短語、句子劃分等文本特徵,並在此基礎上預測基頻、時長、能量、節奏等多種韻律特徵,最後通過聲學模型實現從前端參數到語音參數的映射,通過聲碼器來合成語音。整個框架類似於「編碼、信息匹配,解碼的過程」。
常用的波形拼接語音合成法就是從語音語料庫中抽取合適的單元,拼接成為句子。而參數語音合成則需要對語音語料庫進行參數化建模,根據訓練得到的模型預測出輸出文本的聲學參數和韻律參數。前者需要對錄音人進行長達幾十個小時以上的專業錄音採集,而後者只需要十個小時的錄音採集,即可完成一套定製化語音包的製作。在體驗效果上,拼接合成的語音更加貼近真實發音,但是通過參數合成的語音更穩定、適應性更強。文語轉換系統(TTS)實際上也可看作一個人工智慧系統,它先將文字序列轉換成音韻序列,再由語音合成器生成語音波形。因此一般說來,文語合成系統都需要一套複雜的文字序列到音素序列的轉換程序。當然其中的語音合成器還是最基本的部分,它相當於「人工嘴巴」,任何語音合成系統都離不開它。
按照人類語言功能的不同層次,語言合成也可分成從文字到語音的合成、從概念到語音的合成和從意向到語音的合成三個層次。這三個層次反映了人類大腦中形成說話內容的不同過程,是高級神經活動。為了合成出高質量的語言,除了依賴於語音學、語義學、辭彙學中的各種規則外,還必須對文字的內容有很好的理解,這就涉及到前六章中介紹的自然語言理解中的詞法分析、句法分析、語義、語用、語境等各種技術了。
第三節 波形拼接法與參數合成法
現階段語音合成主要採用波形拼接合成和統計參數合成兩種方式。前者中的波形編碼合成是先通過波形編碼壓縮把錄音等方式得到的語音發音波形存儲在聲學模型中,合成重放時再解碼組合輸出。另一種波形編輯合成是把波形語音編碼技術用於語音合成,首先選取音庫中自然語言合成單元的語音波形單元,然後對這些單元進行編輯拼接、數據平滑處理,最後生成輸出的語音。
參數合成法也稱為分析合成法,通過分析計算提取出語音的各種參數,以壓縮存儲量,然後由人工控制這些參數用於語音合成。其中的發音器官參數合成法是對人的發音過程直接進行模擬。它先定義唇、舌、聲帶的相關參數,由發音參數估計聲道截面積函數,進而計算聲波。由於發音生理過程的複雜性和理論計算與物理模擬的差別,合成語音的質量暫時還不理想。聲道模型參數語音合成是模擬人的口腔的聲道特性並基於聲道諧振特性來合成語音的。其中比較著名的有共振峰以及基於LPC、LSP和LMA等聲學參數的合成系統。使用這些方法來建立聲學模型的過程為:首先錄製典型聲音並提取出這些聲音的聲學參數,然後整合成一個完整的音庫。在發音過程中,首先根據需要發的音,從音庫中選擇合適的聲學參數,再加上韻律模型中得到的韻律參數,通過語音合成演算法產生TTS語音。
波形語音合成法通常只能合成有限辭彙的語音段。目前自動報時、報站或報警等專門用途的語音晶元都採用這種方式。參數語音合成方法的優點是整個系統能適應的韻律特徵的範圍較寬,合成器比特率低,音質適中;缺點是參數合成技術的參數多,演算法複雜,並且在壓縮比較大時,信息丟失亦大,合成出的語音總是不夠自然清晰。不過工程師們近幾年又發展了比特率更大的混合編碼技術。
第四節 基於PSOLA演算法的語音合成及語音語料庫
基於規則的語音合成法就是在系統中存儲最小語音單位的聲學參數--音素,以及由音素組成音節、由音節組成詞、由片語成句子和控制音調、音長、輕重音等韻律的各種規則。在輸入待合成的文本數據後,系統會利用以上資源自動地將它們轉換成連續的語音聲波。目前最常的是基音同步疊加技術(PSOLA),其本質上是利用短時傅里葉變換重構信號的疊接相加法,主要包括基音同步分析、基音同步修改、基音同步合成三個步驟。
該方法既能保持所發音的主要音段特徵,又能在拼接時靈活調整其基頻、時長和強度等超音段特徵。其主要步驟是首先根據語義,對被拼接單元的韻律特徵進行調整,使合成波形保持原始語音單元的主要音段特徵,且保證拼接的韻律特徵符合語義,從而獲得很高的可懂度和自然度。在對拼接單元的韻律特徵進行調整時,它以基音周期的完整性作為保證波形及頻譜的平滑連續的基本前提。有別於傳統概念上只是將不同的語音單元進行簡單拼接的波形編輯合成,PSOLA使用語音學規則從大量語音庫中,選擇最合適的語音單元來用於拼接。最近在TD-PSOLA的基礎上又提出了基音同步的Sinusoidal等新模型,這些對進一步改善系統的性能提供了幫助。
語音語料庫是目前主流的語音拼接合成技術的重要組成部分,一個高質量的語料庫可以為系統提供良好的語音源文件支撐,從而實現高自然度的發音。語音語料庫的構建主要包括設計發音文本、錄音及整理、語音標註、建立資料庫和資料庫管理系統四個過程。目前常使用隱馬爾可夫模型方法來進行語音標註中的語音單元的切分和標註,採用動態規劃將一串生成的語音單元模板或是模型與給定的一句語音進行對齊,從而得到每個語音單元的起始時間,另外也可以使用自動語音識別中稱為強制對齊的方法。
第五節 情感語音分析的研究方法
人類之所以能夠通過聆聽語音捕捉對方情感的變化,是因為人腦具備了感知和理解語音信號中的能夠反映說話人情感狀態信息的能力。1985年,隨著Minsky教授「讓計算機具有情感能力」觀點的提出,眾多的科研機構開始了這個領域的探索,其研究包括情感描述模型、情感語音庫、語音情感特徵提取、情感識別演算法等內容。
自動語音情感識別與生成是計算機對人類情感感知和理解的模擬,其主要過程就是從採集到的語音信號中提取表達情感的聲學特徵,並找出這些聲學特徵與人類情感的映射關係。它是計算機情感智能的重要組成部分,具有很大的研究和應用價值。情感描述模型主要分為離散和維度兩種形式。前者將情感描述為離散的、形容詞標籤的形式,如高興、憤怒等,在日常交流的過程中被廣泛使用;後者則將情感狀態描述為多維情感空間中的點,理論上該空間的情感描述能力能夠涵蓋所有的情感狀態。當前語音情感特徵提取的方法可歸納為韻律學特徵、基於譜的相關特徵和音質特徵這三種類型。
韻律是指語音中凌駕於語義符號之上的音高、音長、快慢和輕重等方面的變化,是對語音流表達方式的一種結構性安排。雖然它不影響我們對字、詞、句的聽辨,卻決定著一句話是否聽起來自然。通過對情感語音的相關波譜特徵進行研究發現,語音中的情感對頻譜能量在各個頻譜區間的分布有著明顯的影響。在情感語音合成研究方面,Mozziconacci在IPO語調基礎上,通過規則的方式,加入了情感控制參數,初步增加了語音合成的表現力。Cahn則在DECTALK語音合成器的基礎上,編寫了一個情感語音的編輯器,使研究人員可以細緻的觀測情感參數對語音輸出的影響,對情感語音合成的研究起到了較好的推動作用。
第六節 深度學習在統計參數語音合成中的應用
基於HMM參數的語音合成已成為當前一種主流的方法,它在訓練過程中建立文本參數到音頻參數之間的映射關係。但該方法存在其決策樹聚類、聲碼器語音生成、動態參數生成等環節會導致語音音質下降的問題。因此有人提出用深度置信神經網路(DBN)和長短時記憶遞歸神經網路(LSTM)等神經網路代替決策樹的作用,利用神經網路強大的非線性數據模擬能力來建立文本特徵和聲學特徵之間的關係。針對決策樹聚類問題,可以通過深層神經網路建立文本特徵和聲學特徵之間的映射關係,替代傳統的淺層模型以提高模型精度和表現力。
Char2Wav是一個端到端的語音合成模型,它由讀取器和神經聲碼器兩個部分組成。讀取器是一個編碼器-解碼器模型,它的編碼器是一個以文本或音素作為輸入的雙向RNN,而解碼器則是一個帶有注意力的RNN,會產出聲碼器合成語音所需要的聲學特徵。為了獲得高質量的輸出,研究人員使用了一個經過訓練的參數神經模塊替代了聲碼器。他們使用Sample RNN作為增強的函數逼近器,用於在音頻信號這樣的序列數據中建模長期的語音依存關係,其中的層級結構被設計來捕捉不同時間尺度中序列的動態。這對捕捉遠距音頻時間步驟(例如,語音信號中的詞層面關係)之間的長距關聯以及近距音頻時間步驟的動態都是有效且必要的。
Char2Wav使用同一模型的條件式版本學習方法,把來自聲碼器的特徵序列映射到相應的音頻樣本。每個聲碼器的特徵幀都被添加進語音語料庫以用作相應狀態的最好的額外輸入。這使得該模塊能使用過去的音頻樣本和聲碼器特徵幀來生成當前的音頻樣本。日常生活中我們可能更關注聽感,所以可以只在語音合成的後端加入一些文本分析的結果作為對Char2Wav系統預測的補充。
第七節 基於深度學習和語音增強
雖然語音合成和語音增強需要解決的問題不同,但是在建模方法上有很多相通之處,可以相互借鑒。有效的語音增強演算法一方面可以提高語音可懂度和清晰度,另一方面有助於提高語音識別和聲紋識別的魯棒性。經典的語音增強方法基於一些數學假設,包括譜減法、維納濾波法、最小均方誤差法、盲分離的非負矩陣分解方法等。這些方法在真實環境下難以有效抑制非平穩雜訊的干擾。近年來,該領域基於深度學習的方法也得到了極大關注,主要有預測幅值譜信息、預測屏蔽值信息、預測複數譜信息、深度聚類、說話人分離等方法。這些技術已經成功應用到包括韻律模型、聲學模型預測等場景,並集成為端到端的語音合成模型。
比較著名的蘋果Siri是一種混合語音合成系統,雖然它利用參數合成方法來指導選音,但本質上是一種波形拼接語音合成系統。它的目標是訓練一個深度學習的模型來自動預測語音資料庫中單元的目標成本和拼接成本。該系統使用深度混合密度模型來預測特徵值的分布,在結構上採用了常規的深度神經網路和高斯混合模型的優勢,即通過DNN對輸入和輸出之間的複雜關係進行建模,並且以概率分布作為輸出。Siri系統使用了基於MDN統一的目標和拼接模型,能預測語音目標特徵(譜、基頻、時長)和拼接成本分布,並據此引導基元的搜索。
針對母音發音有時特徵相對穩定,有時變化又非常迅速這一問題,系統的模型需要能夠根據這種變化對參數做出調整。Siri在模型中使用嵌入方差來解決這一問題。該系統使用快速預選機制、單元剪枝和並行化計算等方法來提高運行速度、減少內存使用,已經可以在移動設備上運行。目前來看,深度學習運用到語音增強中以後,起到了有效抑制各種干擾信號,增強目標語音信號的效果。
第八節 基於對抗網路的語音增強
2017年在語音合成方面的最新突破是生成對抗網路(GAN),這種方法能夠快速提高系統性能,不需要因果關係和RNN中類似的遞歸操作。它是一種直接處理原始音頻的端到端方法,不需要手工提取特徵,無需對原始數據做明顯假設;它從不同說話者和不同類型雜訊中進行學習,並將它們結合在一起形成相同的共享參數,使得系統簡單且泛化能力較強。
有人提出基於RBM-HMM和DBN-HMM的語音合成方法,該方法根據譜參數進行決策樹狀態聚類。它用每個狀態對應的譜包絡數據分別訓練對應的限制玻爾茲曼機(RBM)或深度信念網路(DBN);合成階段則採用其顯層概率密度函數的特徵替代高斯均值。對相關性很強的高維譜包絡直接建模,更好地保留了頻譜細節,可以更好地擬合譜包絡的分布特性,減弱合成語音的過平滑。我們用Baseline表示傳統HMM參數合成系統,使用高斯分布描述每個HMM狀態的倒譜特徵分布;GMM(8)系統使用8個分量的高斯混合模型描述每個HMM狀態的譜包絡分布;RBM(50)系統使用隱層節點數為50的RBM模型描述狀態譜包絡分布。實驗證明RBM(50)系統可以取得顯著優於Baseline和GMM(8)系統的合成語音自然度傾向性得分。
深度神經網路(DNN)的語音合成方法在訓練階段利用GAN取代傳統的基於HMM參數合成方法中的決策樹和GMM模型,建立從語言學特徵到聲學特徵的映射關係;在合成階段直接用DNN預測值替換傳統方法的高斯均值,對應的訓練數據方差替換傳統方法中高斯模型的方差,進行參數生成。還有科學家針對語音合成的特點提出了MD-DBN模型(Multi-Distribution DBN)。藉助MD-DBN中不同類型的RBM可以同時對頻譜、基頻以及清濁特徵建模,並估計音節和聲學特徵的聯合概率分布。實驗證明,該模型用於頻譜特徵建模和預測可以將合成語音自然度的MOS得分提升0.2分。
第九節 幾種語音合成器的原理簡介
語音合成器的主要功能是根據韻律建模的結果,從原始語音庫中選出相應的語音基元,利用特定的語音合成技術對語音基元進行韻律特性的調整和修改,最終合成出符合要求的語音。常用的語音合成技術主要有:共振峰合成、LPC合成、PSOLA拼接合成和LMA聲道模型技術。人們在實際應用過程中往往將多種技術有機地結合在一起,或將一種技術的優點運用到另一種技術上,以提高系統的整體性能。
共振峰模型是一種模擬人體聲道比較準確的技術,可以合成出自然度較高的語音;另外由於共振峰參數直接對應於聲道參數,有著明確的物理意義,因此可以利用共振峰來描述自然語流中的各種現象,總結出有關的聲學規則,並用於共振峰語音合成系統。實際工作表明,共振峰模型雖然描述了語音中最基本的部分,但並不能表徵影響語音自然度的其他許多細微的語音成分,從而影響了合成語音的自然度。另外,共振峰合成器的控制十分複雜,對於一個較好的合成器來說,其控制參數往往達到幾十個,實現起來比較困難。
LPC和PSOLA技術都是基於波形拼接合成技術的代表。前者本質上是一種時間波形的編碼技術,目的是為了降低時域信號的傳輸速率。LPC合成過程是一種簡單的解碼和拼接過程,從本質上來說是一種錄音+重放。PSOLA則著眼於對語音信號超時段特徵的控制,它比LPC具有可修改性更強的優點。PSOLA首先根據上下文的要求對拼接單元的韻律特徵進行調整,使合成波形既保持了原始發音的主要音段特徵,又能使拼接單元的韻律特徵符合上下文的要求。另外基於LMA聲道模型的語音合成方法既有參數合成可以靈活調節韻律參數的優點,又有更高的合成音質,是一種極具發展前景的技術。
第十節 百度的Deep Voice系統簡介
傳統語音合成需要進行大量的特徵處理和構建,但通過使用深度學習的模型框架可以避免這些問題。百度的Andrew Ng團隊構建並開源了全部使用深度學習模型的Deep Voice語音合成系統。相比於WaveNet,百度語音合成系統的有效速度提升了400倍。如果將其應用於新的數據集,進行手動操作和訓練模型所需的時間只要幾個小時就足夠了。
Deep Voice處理一個簡單文本的步驟為:首先將文本轉換為音素;然後預測每個音素的發音持續時間與頻率。最後結合音素、發音持續時間和頻率,輸出表示文本的聲波。Deep Voice需要非常少的特徵工程,設計的模型能實時進行推理,因此可以方便地應用於不同的數據集。另外其TTS系統的訓練周期從之前的幾周時間下降到幾個小時即可完成訓練。系統可以在幾分之一秒內合成音頻,並在合成速度和音頻質量之間提供可調諧的權衡。
百度語音合成的REST應用程序介面(API)已經開放,語音合成具體應用方面目前支持中文普通話、中英文混讀男聲和女聲播報。暫時沒有開放純離線模式下的語音合成軟體開發工具包(SDK,Software Development Kit),但是開放了離在線融合語音合成SDK,會自動判斷當前網路環境,自動匹配使用離線還是在線合成引擎。可以通過Speech Synthesizer
Listener的 onNewDataArrive方法獲取音頻數據。具體使用步驟是登錄百度語音開放平台,註冊百度開發者並創建應用,在首頁登陸已經註冊為開發者的百度賬號,然後點擊頁面上方的「應用管理」進入應用管理頁面。如果您之前在百度開發者中心創建過應用,則會出現您之前曾經創建過的應用;如果您之前沒有創建過應用,則需要新創建一個應用,最後開通服務就可以了。是不是很簡單、很貼心呢?, 2.3??R?р
推薦閱讀:
※Ableton Live 10 for Mac圖文破解教程
※客戶端連接WebSocket伺服器時連接失敗會出現的一些問題
※Iris van Herpen 2016秋冬高定:高科技打造的視覺盛宴
※想玩汽車漂移,技術不夠怎麼辦?
※圖解 | Pycharm激活、配置以及快捷方式