從技術角度出發 回顧2016年語音識別的發展
得益于深度學習與人工神經網絡的發展,語音識別在2016年取得了一系列突破性的進展,在產品應用上也越來越成熟。作為語音交互領域中極其重要的一環,語音識別一直是科技巨頭研究的重點,國內外也涌現出了一批優秀的創業公司。
今年年初,機器之心發布來自ACM中文版的文章《深度 | 四十年的難題與榮耀——從歷史視角看語音識別發展》,文中微軟首席語音科學家黃學東為我們深入解讀了語音識別的歷史以及發展難題。
長久以來,人與機器交談一直是人機交互領域內的一個夢想。語音識別做為很基礎的技術在這一年中再次有了更大的發展。
一年中,機器之心拜訪過科大訊飛,接觸過云知聲、思必馳等創業公司,在微軟的英語語音識別取得突破后更是深度專訪了微軟的黃學東、俞棟,不久之前的百度語音開發平臺三周年的主題活動上我們也向百度首席科學家吳恩達了解過百度的語音識別發展。我們希望從機器之心文章中梳理出的線索,能為接下來語音識別的發展提供一絲洞見。
在這篇文章中,我們會依次梳理2016年機器之心關注到的語音識別領域的突破性研究、未來待解決的難題、語音識別發展歷史中較為重要的時間點。
一、2016 年語音識別有哪些突破?
這一部分盤點了 2016 年機器之心所關注到的在語音識別準確率上取得的突破,主要涉及的公司包括百度、IBM 和微軟等。根據這些突破,我們梳理出了一條語音識別技術發展的線路。
1. 百度 Deep Speech 2 的短語識別的詞錯率降到了 3.7%
發生時間:2016 年 2 月
Deep Speech 2 于 2015 年 12 月首次發布時,首席科學家吳恩達表示其識別的精度已經超越了 Google Speech API、wit.ai、微軟的 Bing Speech 和蘋果的 Dictation 至少 10 個百分點。到今年 2 月份時,Deep Speech 2 的短語識別的詞錯率已經降到了 3.7%
不久之前,百度又將 Deep CNN 應用于語音識別研究,使用了 VGGNet,以及包含 Residual 連接的深層 CNN 等結構,并將 LSTM 和 CTC 的端對端語音識別技術相結合,使得識別錯誤率相對下降了 10%(原錯誤率的 90%)以上。
據百度語音技術部識別技術負責人、Deep Speech 中文研發負責人李先剛博士介紹說,百度正在努力推進 Deep Speech 3,這項研究不排除將會是 Deep Speech 3 的核心組成部分。
技術提升基礎:1. 端到端深度學習方法;2. 深層卷積神經網絡技術(Deep CNN)應用于語音識別聲學建模中,與基于長短時記憶單元(LSTM)和連接時序分類(CTC)的端對端語音識別技術相結合。
2.IBM Watson 會話詞錯率低至 6.9%
發生時間:2016 年 5 月
2015 年,IBM Watson 公布了英語會話語音識別領域的一個重大里程碑:系統在非常流行的評測基準 Switchboard 數據庫中取得了 8% 的詞錯率(WER)。到了今年 5 月份,IBM Watson 團隊再次宣布在同樣的任務中他們的系統創造了 6.9% 的詞錯率新紀錄。
技術提升基礎:聲學和語言建模兩方面技術的提高
3. 微軟新系統英語語音識別詞錯率低至 6.3%
發生時間:2016 年 9 月
在產業標準 Switchboard 語音識別任務上,微軟研究者取得了產業中最低的 6.3% 的詞錯率(WER)。
技術提升基礎:基于神經網絡的聲學和語言模型的發展,數個聲學模型的結合,把 ResNet 用到語音識別。
4. 微軟英語語音識別詞錯率達到了 5.9%,媲美人類
發生時間:2016 年 10 月
微軟人工智能與研究部門的團隊報告出他們的語音識別系統實現了和專業速錄員相當甚至更低的詞錯率(WER),達到了 5.9%。5.9% 的詞錯率已經等同于人速記同樣一段對話的水平,而且這是目前行業標準 Switchboard 語音識別任務中的最低記錄。這個里程碑意味著,一臺計算機在識別對話中的詞上第一次能和人類做得一樣好。
技術提升基礎:系統性地使用了卷積和 LSTM 神經網絡,并結合了一個全新的空間平滑方法(spatial smoothing method)和 lattice-free MMI 聲學訓練。
雖然在準確率的突破上都給出了數字基準,但百度與微軟、IBM(switchboard 上測試)有較大的不同。微軟的研究更加學術,是在標準數據庫——口語數據庫 switchboard 上面完成的,這個數據庫只有 2000 小時。
微軟研究院的研究關注點是基于 switchboard 數據庫,語音識別最終能做到什么樣的性能。而據百度語音識別技術負責人李先剛介紹,他們的關注點是語音技術能夠深入到大家的日常應用中,他們用的數據長達數萬小時。
黃學東在之前接受機器之心專訪時也表示他們的這個語音識別系統里面沒有 bug,因為要在標準數據上做到這樣的水平,實際上體現了工程的完美。
就各項突破的技術提升基礎,我們可以很明晰的梳理出一條線:
1. 之前 LSTM 這樣的模型開始成功應用于語音識別,今年的后續研究不斷提升 LSTM 的模型效果。
2. 另外一個比較大的進展是 Deep CNN。Deep CNN 比起雙向 LSTM(雙向效果比較好)有一個好處——時延。所以在實時系統里會更傾向于用 Deep CNN 而不是雙向 LSTM。
3. 端到端學習,這也是百度首席科學家吳恩達在 NIPS 2016 上重點提到的。比如語音識別,輸入的是語音,輸出的是文本,這是比較純粹的端對端學習。但是它也有缺點——需要足夠大的訓練集。
圖:吳恩達 NIPS 2016 ppt
這方面現在的研究工作主要集中在兩類模型上。一類就是 CTC 模型,包括 Johns Hopkins 大學的 Dan Povey 博士從 CTC 發展出來的 lattice-free MMI;還有一類是基于注意的序列到序列模型。今天它們的表現也還是比混合模型遜色,訓練的穩定性也更差,但是這些模型有比較大的潛力(參考機器之心對俞棟老師的專訪)。
國內還有其他幾家做語音識別的公司,這里對科大訊飛、搜狗、云知聲的語音識別系統做個簡單介紹。
去年年底,科大訊飛提出了以前饋型序列記憶網絡(FSMN, Feed-forward Sequential Memory Network)為代表的新一代語音識別系統。
今年,科大訊飛又推出了全新的深度全序列卷積神經網絡(Deep Fully Convolutional Neural Network, DFCNN)語音識別框架,使用大量的卷積層直接對整句語音信號進行建模,更好的表達了語音的長時相關性。據介紹,該框架的表現比學術界和工業界最好的雙向 RNN 語音識別系統識別率提升了 15% 以上。其結構圖如下:
科大訊飛 DFCNN 的結構圖
同時,我也附上搜狗、云知聲提供的各自的語音識別系統的流程,以供大家學習、比較、參考:
語音識別系統流程:語音信號經過前端信號處理、端點檢測等處理后,逐幀提取語音特征,傳統的特征類型包括 MFCC、PLP、FBANK 等特征,提取好的特征送至解碼器,在聲學模型、語言模型以及發音詞典的共同指導下,找到最為匹配的詞序列作為識別結果輸出。
搜狗 CNN 語音識別系統建模流程
云知聲語音識別系統
二、難題與前沿方向
在語音識別高速發展的一年,我們曾專訪過黃學東、俞棟等多位領域內的專家,不可避免的探討了未來語音識別領域所面臨的方向、挑戰、抑或是難題。現如今整理如下,希望能對大家接下來的語音識別研究有所幫助:
1. 語義理解
黃學東認為,要做好語音識別需要更好的語義理解,二者相輔相成。「人的魯棒性非常好,一個新的課題過來,他可以通過會話的方式跟你溝通,也能得到很好的結果。而機器對噪音的抗噪性不夠強,對新的課題會話溝通能力比較差。最重要的一點是,語音識別并沒有理解你的語義。理解語義是人工智能下一個需要攻克的難題,這也是我們團隊花很多時間和精力正在做的事情。」
2. 值得關注的四大方向
在之前機器之心對俞棟的專訪中,他為我們指出了語音識別領域的幾大前沿:
在安靜環境下并使用近距麥克風的場合,語音識別的識別率已越過了實用的門檻;但是在某些場景下效果還不是那么好,這就是我們這個領域的 frontier。現在大家主攻幾點:
首先,是不是能夠進一步提升在遠場識別尤其是有人聲干擾情況下的識別率。目前一般遠場識別的錯誤率是近場識別錯誤率的兩倍左右,所以在很多情況下語音識別系統還不盡如人意。遠場識別至少目前還不能單靠后端的模型加強來解決。現在大家的研究集中在結合多通道信號處理(例如麥克風陣列)和后端處理從拾音源頭到識別系統全程優化來增強整個系統的表現。
另外,大家還在研究更好的識別算法。這個「更好」有幾個方面:一個方面是能不能更簡單。現在的模型訓練過程還是比較復雜的,需要經過很多步驟。如果沒有 HTK 和 Kaldi 這樣的開源軟件和 recipe 的話,很多團隊都要用很長時間才能搭建一個還 OK 的系統,即使 DNN 的使用已經大幅降低了門檻。現在因為有了開源軟件和 recipe,包括像 CNTK 這樣的深度學習工具包,事情已經容易多了,但還有繼續簡化的空間。這方面有很多的工作正在做,包括如何才能不需要 alignment 、或者不需要 dictionary。現在的研究主要還是基于 end-to-end 的方法,就是把中間的一些以前需要人工做的步驟或者需要預處理的部分去掉。雖然目前效果還不能超越傳統的 hybrid system,但是已經接近 hybrid system 的 performance 了。
另外一個方面,最近的幾年里大家已經從一開始使用簡單的 DNN 發展到了后來相對復雜的 LSTM 和 Deep CNN 這樣的模型。但在很多情況下這些模型表現得還不夠好。所以一個研究方向是尋找一些特殊的網絡結構能夠把我們想要 model 的那些東西都放在里面。我們之前做過一些嘗試,比如說人在跟另外一個人對話的過程中,他會一直做 prediction,這個 prediction 包括很多東西,不單是包括你下一句想要說什么話,還包括根據你的口音來判斷你下面說的話會是怎樣等等。我們曾嘗試把這些現象建在模型里以期提升識別性能。很多的研究人員也在往這個方向走。
還有一個方向是快速自適應的方法—就是快速的不需要人工干預的自適應方法(unsupervised adaptation)。現在雖然已經有一些自適應的算法了,但是它們相對來說自適應的速度比較慢,或者需要較多的數據。有沒有辦法做到更快的自適應?就好像第一次跟一個口音很重的人說話的時候,你可能開始聽不懂,但兩三句話后你就可以聽懂了。大家也在尋找像這種非常快還能夠保證良好性能的自適應方法。快速自適應從實用的角度來講還是蠻重要的。因為自適應確實在很多情況下能夠提升識別率。
三、語音識別歷史的梳理
在這一部分我簡單的梳理了一下語音識別歷史上比較關鍵的一些時間點,至于詳細的語音識別技術研究歷史可參考之前提到的黃學東老師寫的《四十年的難題與榮耀——從歷史視角看語音識別發展》。
-
1952 年,貝爾實驗室 Davis 等人研制了世界上第一個能識別 10 個英文數字發音的實驗系統,但只能識別一人的發音。
-
1962 年,IBM 展示了 Shoebox。Shoebox 能理解 16 個口語單詞以及 0-9 的英文數字。
-
1969 年,貝爾實驗室的 John Pierce 預言成熟的語音識別在數十年內不會成為現實,因為它需要人工智能。
-
1970 年,普林斯頓大學的 Lenny Baum 發明隱馬爾可夫模型(Hidden Markov Model)。
-
20 世紀 70 年代,卡耐基梅隆大學研發 harpy speech recognition system,能夠識別 1011 個單詞,相當于 3 歲兒童的詞匯量。
-
20 世紀 80 年代,語音識別引入了隱馬爾可夫模型(Hidden Markov Model)。
-
20 世紀 90 年代出現首個消費級產品 DragonDictate,由國際語音識別公司 Nuance 發布。
-
2007 年,Dag Kittlaus 和 Adam Cheyer 創立 Siri.Inc。后被蘋果收購并于 2011 年首次出現在 iPhone 4s 上。
-
2009 年以來,借助機器學習領域深度學習研究的發展以及大數據語料的積累,語音識別技術得到突飛猛進的發展。
-
2011 年微軟率先取得突破,使用深度神經網絡模型之后,語音識別錯誤率降低 30%。
-
2015 年,IBM Watson 公布了英語會話語音識別領域的一個重大里程碑:系統在非常流行的評測基準 Switchboard 數據庫中取得了 8% 的詞錯率(WER)。
語音識別,在這一年有了極大的發展,從算法到模型都有了質的變化,在加上語音領域(語音合成等)的其他研究,語音技術陸續進入工業、家庭機器人、通信、車載導航等各個領域中。當有一天,機器能夠真正「理解」人類語言,并作出回應,那時我們必將迎來一個嶄新的時代。