黃學東:微軟TTS,第一款實時神經網路語音合成服務
一個月之前,微軟釋出了基於 深度神經網路 的文字到語音(text-to-speech,TTS)系統,並且做為 Azure 認知服務中的一項,提供面向客戶的預覽版本。
就此,我們採訪了微軟語音、自然語言與機器翻譯的技術負責人黃學東,他向我們展示了一系列 TTS 生成的「真假難辨」的語音樣例,並分享了微軟在 TTS 一途上的經歷與考量。
下面的視訊裡包括了三段錄音與三段合成音,你能分辨出機器與人聲的區別嗎?
機器之心:微軟是從什麼時候開始提供 TTS 服務的?TTS 與微軟語音系統的關係是什麼?
事實上,TTS 是微軟語音 API(Microsoft Speech API, SAPI)進入大眾視野的契機。
1995 年,我作為專案負責人推出 SAPI 1.0 的目標是讓人機互動更加自然。而研發 TTS(文字轉語音)技術的初衷是為了給殘障人士提供更多「無障礙功能」(accessibility)。1996 年,文字轉語音功能被納入 Microsoft NT 4.0 中,那是 SAPI 第一次整合進 Windows,進入大眾視野。
機器之心:在神經網路用於 TTS 之前,常用的方法有哪些?
語音合成經歷了許多次技術與正規化的轉移。
第一代 TTS 技術採用的是由麻省理工學院的教授 Dennis Klatt 提出的共振峰合成法(Formant synthesis)。這樣的技術生成的語音能夠被人們所理解,但是聽上去特別機械。已逝的理論物理學巨匠 Stephen Hawking 在失去發聲能力之後,就在使用這一套技術對外交流。
這個模型非常非常小,需要的計算資源也非常少,甚至在當時的德州儀器公司(TI)開發的很多玩具中,都有簡單的語音合成功能。
第二個階段是拼接合成法(Concatenation synthesis),把語音的每個單元存下來,拼接到一起。串聯法的交接部分會有很多問題,這時候就需要進行很多的處理。從最早的直接對接、平滑(smoothing)到後來使用基於統計的引數合成的隱馬爾科夫方法(HMM)進行處理。
選擇用 HMM 是因為它在語音識別領域獲得了非常不錯的結果,因此在語音大領域內都流行了起來。
第三個階段就是利用 深度神經網路 了,這是一次飛躍式的進步。谷歌的 WaveNet、Tacotron,百度的 ClariNet,都是基於 深度神經網路 的 TTS [BD4] 系統,在學術上都取得了一定的突破,但是工程化方面仍然沒有一個實時的系統。
機器之心:能否介紹一下微軟的 深度神經網路 TTS?
微軟的 深度神經網路 TTS 系統由兩部分組成,第一部分是將文字轉換成包含語音資訊(phonetic)和韻律資訊(prosodic)的聲學引數(acoustic features)。第二部分是將兩部分資訊轉為聲波(waveform)。
我們的系統最大的突破在於,這是第一個實時的神經網路TTS,並且大家直接可以在 Azure 雲上使用。
之前我們的很多與人類相比較的突破不同的是,之前的大部分突破是從研究角度,我們的演算法可以達到人類的水平。例如我們在ImageNet影象識別資料集、Switchboard語音識別資料集、SQuAD 問答資料集上的工作都是這一型別。而此次我們除了合成的聲音 MOS 分(Mean Opinion Score)非常高,達到了與真人的聲音不可區分的水平之外,最值得驕傲的是,我們構建了一個雲端計算服務系統,可以讓大家來實時地使用 TTS。
實時 深度神經網路 TTS 能夠實現,有幾個關鍵因素:第一是我們的雲端計算平臺,提供了人工智慧算力的支援;第二是我們的工程方面的進步,讓這樣一個序列到序列的過程可以實現實時;最後,我們的系統具有比較強的泛化能力,在實際應用場景中出現錯誤的概率比一般模型小很多。
機器之心:TTS 的使用文件中提到,使用者可以提交訓練樣本定製自己的聲音模型,想要完成定製,使用者需要提交什麼規模的何種資料?
「定製」是寫在微軟的基因裡的一個概念。
我們第一次推出語音識別認知服務時,就同時推出了量身定製的語音識別系統,自然語言理解系統 LUIS 也是一個量身定製的語言理解系統,除此之外機器翻譯、影象識別等等,都有量身定製的功能。
使用者提供幾百句聲音樣本資料,就能獲得一個「入門」級的聲音定製;提供五千句左右,可以進行「標準」的定製,如果能夠提供一萬句甚至更多,我們就能提供接近人聲水平的 TTS 語音定製。
機器之心:TTS 和語音識別演算法之間有哪些聯絡呢?
我們借鑑了很多語音識別領域的做法。
例如,以前李開復在卡內基梅隆大學的博士論文中,一個最大的貢獻就是把不同人的聲音合在一起,共同訓練出一套通用的語音識別系統,而不需要為特定人訓練自己的語音識別系統。
我們的語音合成系統也可以把不同人的聲音效能整合起來,變成一個通用的、自然的語音合成系統。在這個情況下,要量身定製某一個人的語音就會比較容易。
機器之心:TTS 相比於機器翻譯和語音識別模型,對算力的需求如何?
相對要求還是要高,這也是為什麼其他廠商現在還沒有提供實時神經網路語音合成系統的原因。
另一方面,TTS 的質量和對算力的要求是非線性的,想要達到類似人類的水平,需要的算力非常多,但是稍微降低要求,算力需求就小很多。
機器之心:TTS 有哪些應用場景?
最大的應用場景是智慧音箱。其次是無障礙功能,Windows 可以讀出螢幕中的內容。第三是公共汽車、火車、機場上的報站功能、GPS 導航、語音讀物等等。
我們把「產生聲音」的能力放在雲上之後,人們可以用它進行各種不同的工作。