一個月之前,微軟釋出了基于深度神經網絡的文本到語音(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 導航、語音讀物等等。
我們把「産生聲音」的能力放在雲上之後,人們可以用它進行各種不同的工作。