語音識別是一門綜合性學科,涉及的領域非常廣泛,包括聲學、語音學、語言學、信號處理、概率統計、信息論、模式識別和深度學習等。語音識別的基礎理論包括語音的產生和感知過程、語音信號基礎知識、語音特征提取等,關鍵技術包括高斯混合模型 ( Gaussian Mixture Model,GMM )、隱馬爾可夫模型 ( Hidden Markov Model,HMM )、深度神經網絡 ( Deep Neural Network,DNN ),以及基于這些模型形成的GMM-HMM、DNN-HMM和端到端 ( End-to-End,E2E ) 系統。語言模型和解碼器也非常關鍵,直接影響語音識別實際應用的效果。
為了讓讀者更好地理解語音信號的特性,接下來我們首先介紹語音的產生和感知機制。
01
語音的產生和感知
如圖1-1所示,人的發音器官包括:肺、氣管、聲帶、喉、咽、鼻腔、口腔和唇。肺部產生的氣流沖擊聲帶,產生振動。聲帶每開啟和閉合一次的時間是一個基音周期 ( Pitch period ) T,其倒數為基音頻率 ( F0=1/T,基頻 ),范圍在70Hz~450Hz。基頻越高,聲音越尖細,如小孩的聲音比大人尖,就是因為其基頻更高。基頻隨時間的變化,也反映聲調的變化。
圖1-1 人的發音器官[37]
聲道主要由口腔和鼻腔組成,它是對發音起重要作用的器官,氣流在聲道會產生共振。前五個共振峰頻率 ( F1、F2、F3、F4和F5 ),反映了聲道的主要特征。共振峰的位置、帶寬和幅度決定元音音色,改變聲道形狀可改變共振峰,改變音色。
語音可分為濁音和清音,其中濁音是由聲帶振動并激勵聲道而得到的語音,清音是由氣流高速沖過某處收縮的聲道所產生的語音。
語音的產生過程可進一步抽象成如圖1-2所示的激勵模型,包含激勵源和聲道部分。在激勵源部分,沖擊序列發生器以基音周期產生周期性信號,經過聲帶振動,相當于經過聲門波模型,肺部氣流大小相當于振幅;隨機噪聲發生器產生非周期信號。聲道模型模擬口腔、鼻腔等聲道器官,最后產生語音信號。我們要發濁音時,聲帶振動形成準周期的沖擊序列。發清音時,聲帶松弛,相當于發出一個隨機噪聲。
圖1-2 產生語音的激勵模型
如圖1-3所示,人耳是聲音的感知器官,分為外耳、中耳和內耳三部分。外耳的作用包括聲源的定位和聲音的放大。
外耳包含耳翼和外耳道,耳翼的作用是保護耳孔,并具有定向作用。外耳道同其他管道一樣也有共振頻率,大約是3400 Hz。鼓膜位于外耳道內端,聲音的振動通過鼓膜傳到內耳。中耳由三塊聽小骨組成,作用包括放大聲壓和保護內耳。中耳通過咽鼓管與鼻腔相通,其作用是調節中耳壓力。內耳的耳蝸實現聲振動到神經沖動的轉換,并傳遞到大腦。
圖1-3 聲音的感知器官[37]
正常人耳能感知的頻率范圍為20 Hz~20 kHz,強度范圍為0 dB~120 dB。人耳對不同頻率的感知程度是不同的。音調是人耳對不同頻率聲音的一種主觀感覺,單位為mel。mel頻率與在1kHz以下的頻率近似成線性正比關系,與1kHz以上的頻率成對數正比關系。
02
語音識別過程
人耳接收到聲音后,經過神經傳導到大腦分析,判斷聲音類型,并進一步分辨可能的發音內容。人的大腦從嬰兒出生開始,就不斷在學習外界的聲音,經過長時間的潛移默化,最終才聽懂人類的語言。機器跟人一樣,也需要學習語言的共性和發音的規律,才能進行語音識別。
音素 ( phone ) 是構成語音的最小單位。英語中有48個音素 ( 20個元音和28個輔音 )。采用元音和輔音來分類,漢語普通話有32個音素,包括元音10個,輔音22個。
但普通話的韻母很多是復韻母,不是簡單的元音,因此拼音一般分為聲母 ( initial ) 和韻母 ( final )。漢語中原來有21個聲母和36個韻母,經過擴充 ( 增加a o e y w v ) 和調整后,包含27個聲母和38個韻母 ( 不帶聲調 ) ,如表1-1所示。
表1-1 普通話的聲母和韻母 ( 不帶聲調 ) 分類表
音節 ( syllable ) 是聽覺能感受到的最自然的語音單位,由一個或多個音素按一定的規律組合而成。英語音節可單獨由一個元音構成,也可由一個元音和一個或多個輔音構成。漢語的音節由聲母、韻母和音調構成,其中音調信息包含在韻母中。所以,漢語音節結構可以簡化為:聲母+韻母。
漢語中有409個無調音節,約1300個有調音節。
漢字與漢語音節并不是一一對應的。一個漢字可以對應多個音節,一個音節可對應多個漢字,例如:
和 —— hé hè huó huò hú
tián —— 填 甜
語音識別過程是個復雜的過程,但其最終任務歸結為,找到對應觀察值序列O的最可能的詞序列W^。按貝葉斯準則轉化為:
其中,P(O)與P(W)沒有關系,可認為是常量,因此P(W|O)的最大值可轉換為P(O|W)和P(W)兩項乘積的最大值,第一項P(O|W)由聲學模型決定,第二項P(W)由語言模型決定。
圖1-4所示是典型的語音識別過程。為了讓機器識別語音,首先提取聲學特征,然后通過解碼器得到狀態序列,并轉換為對應的識別單元。一般是通過詞典將音素序列 ( 如普通話的聲母和韻母 ),轉換為詞序列,然后用語言模型規整約束,最后得到句子識別結果。
例如,對"今天天氣很好"進行詞序列、音素序列、狀態序列的分解,并和觀察值序列對應,如圖1-5所示。其中每個音素對應一個HMM,并且其發射狀態 ( 深色 ) 對應多幀觀察值。
從圖1-5中可看出,人的發音包含雙重隨機過程,即說什么不確定,怎么說也不確定,很難用簡單的模板匹配技術來識別。更合適的方法是用HMM這種統計模型來刻畫雙重隨機過程。
我們來看一個簡單的例子,假設詞典包含:
今天 j in1 t ian1
圖1-4 語音識別過程
則"今天"的詞HMM由"j"、"in1"、"t"和"ian1"四個音素HMM串接而成,形成一個完整的模型以進行解碼識別。這個解碼過程可以找出每個音素的邊界信息,即每個音素 ( 包括狀態 ) 對應哪些觀察值 ( 特征向量 ),均可以匹配出來。音素狀態與觀察值之間的匹配關系用概率值衡量,可以用高斯分布或DNN來描述。
圖1-5 從句子到狀態序列的分解過程
語音識別任務有簡單的孤立詞識別,也有復雜的連續語音識別,工業應用普遍要求大詞匯量連續語音識別 ( LVCSR )。圖1-6所示是主流的語音識別系統框架。對輸入的語音提取聲學特征后,得到一序列的觀察值向量,再將它們送到解碼器識別,最后得到識別結果。解碼器一般是基于聲學模型、語言模型和發音詞典等知識源來識別的,這些知識源可以在識別過程中動態加載,也可以預先編譯成統一的靜態網絡,在識別前一次性加載。發音詞典要事先設計好,而聲學模型需要由大批量的語音數據 ( 涉及各地口音、不同年齡、性別、語速等方面 ) 訓練而成,語言模型則由各種文本語料訓練而成。為保證識別效果,每個部分都需要精細的調優,因此對系統研發人員的專業背景有較高的要求。
圖1-6 主流的語音識別系統框架
03
語音識別發展歷史
羅馬城不是一天建成的,語音識別近些年的爆發也并非一朝一夕可以做到的,而是經過了一段漫長的發展歷程。從最初的語音識別雛形,到高達90%以上準確率的現在,經過了大約100年的時間。在電子計算機被發明之前的20世紀20年代,生產的一種叫作"Radio Rex"的玩具狗被認為是世界上最早的語音識別器。每當有人喊出"Rex"這個詞時,這只狗就從底座上彈出來,以此回應人類的"呼喚"。但是實際上,它使用的技術并不是真正意義上的語音識別技術,而是使用了一個特殊的彈簧,每當該彈簧接收到頻率為500Hz的聲音時,它就會被自動釋放,而500Hz恰好就是人們喊出"Rex"時的第一個共振峰的頻率。"Radio Rex"玩具狗被視為語音識別的雛形。
真正意義上的語音識別研究起源于20世紀50年代。先是美國的AT&T Bell實驗室的Davis等人成功開發出了世界上第一個孤立詞語音識別系統——Audry系統,該系統能夠識別10個英文數字的發音[1],正確率高達98%。1956年,美國普林斯頓大學的實驗室使用模擬濾波器組提取出元音的頻譜后,通過模板匹配,建立了針對特定說話人的包括10個單音節詞的語音識別系統。1959年,英國倫敦大學的科學家Fry和Denes等人第一次利用統計學的原理構建出了一個可以識別出4個元音和9個輔音的音素識別器。在同一年,美國麻省理工學院林肯實驗室的研究人員則首次實現了可以針對非特定人的可識別10個元音音素的識別器[2]。
圖1-7給出了語音識別技術的發展歷史,主要包括模板匹配、統計模型和深度學習三個階段。
圖1-7 語音識別發展歷史
第一階段:模板匹配 ( DTW )
20世紀60年代,一些重要的語音識別的經典理論先后被提出和發表出來。1964年,Martin為了解決語音時長不一致的問題,提出了一種時間歸一化的方法,該方法可以可靠地檢測出語音的端點,這可以有效地降低語音時長對識別結果的影響,使語音識別結果的可變性減小了。1966年,卡耐基梅隆大學的 Reddy 利用動態跟蹤音素的方法進行了連續語音識別,這是一項開創性的工作。1968年,前蘇聯科學家Vintsyuk首次提出將動態規劃算法應用于對語音信號的時間規整。雖然在他的工作中,動態時間規整的概念和算法原型都有體現,但在當時并沒有引起足夠的重視。這三項研究工作,為此后幾十年語音識別的發展奠定了堅實的基礎。雖然在這10年中語音識別理論取得了明顯的進步,但是這距離實現真正實用且可靠的語音識別系統的目標依舊十分遙遠。
20世紀70年代,語音識別技術飛速發展,又取得了幾個突破性的進展。1970年,來自前蘇聯的Velichko和Zagoruyko將模式識別的概念引入語音識別中。同年,Itakura提出了線性預測編碼 ( Linear Predictive Coding,LPC ) 技術,并將該技術應用于語音識別。1978年,日本人Sakoe和Chiba在前蘇聯科學家Vintsyuk的工作基礎上,成功地使用動態規劃算法將兩段不同長度的語音在時間軸上進行了對齊,這就是我們現在經常提到的動態時間規整 ( Dynamic Time Warping,DTW )[3][4]。該算法把時間規整和距離的計算有機地結合起來,解決了不同時長語音的匹配問題。在一些要求資源占用率低、識別人比較特定的環境下,DTW是一種很經典很常用的模板匹配算法。這些技術的提出完善了語音識別的理論研究,并且使得孤立詞語音識別系統達到了一定的實用性。此后,以IBM公司和Bell實驗室為代表的語音研究團隊開始將研究重點放到大詞匯量連續語音識別系統 ( Large Vocabulary Continuous Speech Recognition,LVCSR ),因為這在當時看來是更有挑戰性和更有價值的研究方向。20世紀70年代末,Linda的團隊提出了矢量量化 ( Vector Quantization,VQ )[5]的碼本生成方法,該項工作對于語音編碼技術具有重大意義。美國國防部下屬的一個名為美國國防高級研究計劃局 ( Defense Advanced Research Projects Agency,DARPA ) 的行政機構,在20世紀70年代介入語音領域,開始資助一項旨在支持語言理解系統的研究開發工作的10年戰略計劃。在該計劃推動下,誕生了一系列不錯的研究成果,如卡耐基梅隆大學推出了Harpy系統,其能識別1000多個單詞且有不錯的識別率。
第二階段:統計模型 ( GMM-HMM )
到了20世紀80年代,更多的研究人員開始從對孤立詞識別系統的研究轉向對大詞匯量連續語音識別系統的研究,并且大量的連續語音識別算法應運而生,例如分層構造 ( Level Building ) 算法等。同時,20世紀80年代的語音識別研究相較于20世紀70年代,另一個變化是基于統計模型的技術逐漸替代了基于模板匹配的技術。統計模型兩項很重要的成果是聲學模型和語言模型,語言模型以n元語言模型 ( n-gram ) 為代表,聲學模型以HMM為代表。HMM的理論基礎在1970年前后由Baum等人建立[6],隨后由卡耐基梅隆大學 ( CMU ) 的Baker和IBM的Jelinek等人應用到語音識別中。在20世紀80年代中期,Bell實驗室的L.R. Rabiner等人對HMM進行了深入淺出的介紹[7],并出版了語音識別專著Fundamentals of Speech Recognition[8],有力地推動了HMM在語音識別中的應用。Mark Gales和Steve Young在2007年對HMM在語音識別中的應用做了詳細闡述[9]。隨著統計模型的成功應用,HMM開始了對語音識別數十年的統治,直到現今仍被看作是領域內的主流技術。在DARPA的語音研究計劃的資助下,又誕生了一批著名的語音識別系統,其中包括李開復 ( K.F.Lee ) 在卡耐基梅隆大學攻讀博士學位時開發的SPHINX系統。該系統也是基于統計模型的非特定說話人連續語音識別系統,其采用了如下技術:① 用HMM對語音狀態的轉移概率建模;② 用高斯混合模型 ( Gaussian Mixture Model,GMM ) 對語音狀態的觀察值概率建模。這種把上述二者相結合的方法,稱為高斯混合模型-隱馬爾可夫模型 ( Gaussian Mixture Model-Hidden Markov Model,GMM-HMM )[9][10]。在深度學習熱潮出現之前,GMM-HMM一直是語音識別最主流最核心的技術。值得注意的是,在20世紀80年代末,隨著分布式知識表達和反向傳播算法 ( Backpropagation,BP ) 的提出,解決了非線性學習問題,于是關于神經網絡的研究興起,人工神經網絡 ( Artificial Neural Network,ANN )[11]被應用到語音領域并且掀起了一定的熱潮。這是具有里程碑意義的事件,它為若干年后深度學習在語音識別中的崛起奠定了一定的基礎。但是由于人工神經網絡其自身的缺陷還未得到完全解決,它相對于GMM-HMM系統并沒有什么優勢可言,研究人員還是更傾向于基于統計模型的方法。在20世紀80年代還有一個值得一提的事件,美國國家標準技術署 ( NIST ) 在1987年第一次舉辦了NIST評測,這項評測在后來成為了全球最權威的語音評測。
20世紀90年代,語音識別進入了一個技術相對成熟的時期,主流的GMM-HMM框架得到了更廣泛的應用,在領域中的地位越發穩固。聲學模型的說話人自適應 ( Speaker Adaptation ) 方法和區分性訓練 ( Discriminative Training ) 準則的提出,進一步提升了語音識別系統的性能。1994年提出的最大后驗概率估計 ( Maximum A Posteriori Estimation,MAP )[12]和1995年提出的最大似然線性回歸 ( Maximum Likelihood Linear Regression,MLLR )[13],幫助HMM實現了說話人自適應。最大互信息量 ( Maximum Mutual Information,MMI )[14]和最小分類錯誤 ( Minimum Classification Error,MCE )[15]等聲學模型的區分性訓練準則相繼被提出,使用這些區分性準則去更新GMM-HMM的模型參數,可以讓模型的性能得到顯著提升。此外,人們開始使用以音素為代表的字詞單元作為基本單元,一些支持大詞匯量的語音識別系統被陸續開發出來,這些系統不但可以做到支持大詞匯量非特定人連續語音識別,而且有的產品在可用性方面達到了很好的性能,例如微軟公司的Whisper、貝爾實驗室的PLATO、麻省理工學院的SUMMIT系統、IBM的ViaVioce系統。英國劍橋大學Steve Young開創的語音識別工具包HTK ( Hidden Markov Tool Kit )[10],是一套開源的基于HMM的語音識別軟件工具包,它采用模塊化設計,而且配套了非常詳細的HTKBook 文檔,這既方便了初學者的學習、實驗 ( HTKBook 文檔做得很好 ),也為語音識別的研究人員提供了專業且便于搭建的開發平臺。HTK自1995年發布以來,被廣泛采用。即便如今,大部分人在接受語音專業啟蒙教育時,依然還是要通過HTK輔助將理論知識串聯到工程實踐中。可以說,HTK對語音識別行業的發展意義重大。
進入21世紀頭幾年,基于GMM-HMM的框架日臻成熟完善,人們對語音識別的要求已經不再滿足于簡單的朗讀和對話,開始將目光著眼于生活中的普通場景,因此研究的重點轉向了具有一定識別難度的日常流利對話、電話通話、會議對話、新聞廣播等一些貼近人類實際應用需求的場景。但是在這些任務上,基于GMM-HMM框架的語音識別系統的表現并不能令人滿意,識別率達到80%左右后,就無法再取得突破。人們發現一直占據主流的GMM-HMM框架也不是萬能的,它在某些實際場景下的識別率無法達到人們對實際應用的要求和期望,這個階段語音識別的研究陷入了瓶頸期。
第三階段:深度學習 ( DNN-HMM,E2E )
2006年,變革到來。Hinton在全世界最權威的學術期刊Science上發表了論文,第一次提出了"深度置信網絡"的概念[16][17]。深度置信網絡與傳統訓練方式的不同之處在于它有一個被稱為"預訓練" ( pre-training ) 的過程,其作用是為了讓神經網絡的權值取到一個近似最優解的值,之后使用反向傳播算法 ( BP ) 或者其他算法進行"微調" ( fine-tuning ),使整個網絡得到訓練優化。Hinton給這種多層神經網絡的相關學習方法賦予了一個全新的名詞——"深度學習" ( Deep Learning,DL )[18]。深度學習不僅使深層的神經網絡訓練變得更加容易,縮短了網絡的訓練時間,而且還大幅度提升了模型的性能。以這篇劃時代的論文的發表為轉折點,從此,全世界再次掀起了對神經網絡的研究熱潮,揭開了屬于深度學習的時代序幕。
在2009年,Hinton和他的學生Mohamed將深層神經網絡 ( DNN ) 應用于聲學建模,他們的嘗試在TIMIT音素識別任務上取得了成功。然而TIMIT數據庫包含的詞匯量較小,在面對連續語音識別任務時還往往達不到人們期望的識別詞和句子的正確率。2012年,微軟研究院的俞棟和鄧力等人將深度學習與HMM相結合,提出了上下文相關的深度神經網絡 ( Context Dependent Deep Neural Network,CD-DNN ) 與HMM融合的聲學模型 ( CD-DNN-HMM )[19],在大詞匯量的連續語音識別任務上取得了顯著的進步,相比于傳統的GMM-HMM系統獲得超過20%的相對性能提升。這是深度學習在語言識別上具有重大意義的成果。從此,自動語音識別 ASR 的準確率得到了快速提升,深度學習徹底打破了GMM-HMM 的傳統框架對于語音識別技術多年的壟斷,使得人工智能獲得了突破性的進展。由Daniel Povey領銜開發在2011年發布的Kaldi[20],是DNN-HMM系統的基石,在工業界得到廣泛應用。大多數主流的語音識別解碼器基于加權有限狀態轉換器 ( WFST )[21],把發音詞典、聲學模型和語言模型編譯成靜態解碼網絡,這樣可大大加快解碼速度,為語音識別的實時應用奠定基礎。
近幾年,隨著機器學習算法的持續發展,各種神經網絡模型結構層出不窮。循環神經網絡 ( Recurrent Neural Network,RNN ) 可以更有效、更充分地利用語音中的上下文信息[22],卷積神經網絡 ( Convolutional Neural Network,CNN ) 可以通過共享權值來減少計算的復雜度,并且CNN被證明在挖掘語音局部信息的能力上更為突出。引入了長短時記憶網絡 ( Long Short Term Memory,LSTM ) 的循環神經網絡 RNN,能夠通過遺忘門和輸出門忘記部分信息來解決梯度消失的問題[23]。由LSTM 也衍生出了許多變體,較為常用的是門控循環單元 ( Gated Recurrent Unit,GRU ),在訓練數據很大的情況下GRU相比LSTM參數更少,因此更容易收斂,從而能節省很多時間。LSTM及其變體使得識別效果再次得到提升,尤其是在近場的語音識別任務上達到了可以滿足人們日常生活的標準。另外,時延神經網絡 ( Time Delay Neural Network,TDNN )[24]也獲得了不錯的識別效果,它可以適應語音的動態時域變化,能夠學習到特征之間的時序依賴。
深度學習技術在近十幾年中,一直保持著飛速發展的狀態,它也推動語音識別技術不斷取得突破。尤其是最近幾年,基于端到端的語音識別方案逐漸成了行業中的關注重點,CTC ( Connectionist Temporal Classification )[25]算法就是其中一個較為經典的算法。在LSTM-CTC的框架中,最后一層往往會連接一個CTC模型,用它來替換HMM。CTC的作用是將Softmax層的輸出向量直接輸出成序列標簽,這樣就實現了輸入語音和輸出結果的直接映射,也實現了對整個語音的序列建模,而不僅僅是針對狀態的靜態分類。2012年,Graves等人又提出了循環神經網絡變換器RNN Transducer[26],它是CTC的一個擴展,能夠整合聲學模型與語言模型,同時進行優化。自 2015 年以來,谷歌、亞馬遜、百度等公司陸續開始了對CTC模型的研發和使用,并且都獲得了不錯的性能提升。
2014年,基于 Attention ( 注意力機制 ) 的端到端技術在機器翻譯領域中得到了廣泛的應用并取得了較好的實驗結果[27],之后很快被大規模商用。于是,Jan Chorowski在2015年將Attention的應用擴展到了語音識別領域[28],結果大放異彩。在最近的兩年里,有一種稱為Seq2Seq ( Sequence to Sequence ) 的基于Attention的語音識別模型[29]在學術界引起了極大的關注,相關的研究取得了較大的進展。在加拿大召開的國際智能語音領域的頂級會議ICASSP2018上,谷歌公司發表的研究成果顯示,在英語語音識別任務上,基于 Attention 的 Seq2Seq 模型表現強勁,它的識別結果已經超越了其他語音識別模型[30]。但 Attention 模型的對齊關系沒有先后順序的限制,完全靠數據驅動得到,對齊的盲目性會導致訓練和解碼時間過長。而 CTC 的前向后向算法可以引導輸出序列與輸入序列按時間順序對齊。因此 CTC 和 Attention 模型各有優勢,可把兩者結合起來,構建 Hybrid CTC/Attention模型[31],并采用多任務學習,以取得更好的效果。
2017年,google和多倫多大學提出一種稱為Transformer[32]的全新架構,這種架構在Decoder和Encoder中均采用Attention機制。特別是在Encoder層,將傳統的RNN完全用Attention替代,從而在機器翻譯任務上取得了更優的結果,引起了極大關注。隨后,研究人員把Transformer應用到端到端語音識別系統[33][34]中,也取得了非常明顯的改進效果。
另外,生成式對抗網絡 ( Generative Adversarial Network,GAN ) 是近年來無監督學習方面最具前景的一種新穎的深度學習模型,Ian J. Goodfellow等人于2014年10月發表論文"Generative Adversarial Nets"[36],文中提出了一個通過對抗過程估計生成模型框架的全新方法。通過對抗學習,GAN可用于提升語音識別的噪聲魯棒性。GAN網絡在無監督學習方面展現出了較大的研究潛質和較好的應用前景。
從一個更高的角度來看待語音識別的研究歷程,從HMM到GMM,到DNN,再到CTC和Attention,這個演進過程的主線是如何利用一個網絡模型實現對聲學模型層面更精準的刻畫。換言之,就是不斷嘗試更好的建模方式以取代基于統計的建模方式。
在2010年以前,語音識別行業水平普遍還停留在80%的準確率以下。在接下來的幾年里,機器學習相關模型算法的應用和計算機性能的增強,帶來了語音識別準確率的大幅提升。到 2015年,識別準確率就達到了 90%以上。谷歌公司在2013年時,識別準確率還僅僅只有77%,然而到2017年5月時,基于谷歌深度學習的英語語音識別錯誤率已經降低到4.9%,即識別準確率為95.1%,相較于2013年的準確率提升了接近20個百分點。這種水平的準確率已經接近正常人類。2016年10月18日,微軟語音團隊在Switchboard語音識別測試中打破了自己的最好成績,將詞錯誤率降低至 5.9%。次年,微軟語音團隊研究人員通過改進語音識別系統中基于神經網絡的聲學模型和語言模型,在之前的基礎上引入了CNN-BLSTM ( Convolutional Neural Network Combined with Bidirectional Long Short-Term Memory,帶有雙向LSTM的卷積神經網絡 ) 模型,用于提升語音建模的效果。2017年8月20日,微軟語音團隊再次將這一紀錄刷新,在Switchboard測試中將詞錯誤率從5.9%降低到5.1%,即識別準確率達到 94.9%,與谷歌一起成為了行業新的標桿。另外,亞馬遜 ( Amazon ) 公司在語音行業可謂后發制人,其在2014年底正式推出了Echo智能音箱,并通過該音箱搭載的Alexa語音助理,為使用者提供種種應用服務。Echo 智能音箱一經推出,在消費市場上取得了巨大的成功,如今已成為美國使用最廣的智能家居產品,至今累計銷量已超過2000萬臺。投資機構摩根士丹利分析師稱智能音箱是繼iPad之后"最成功的消費電子產品"。
04
國內語音識別現狀
國內最早的語音識別研究開始于1958年,中國科學院聲學所研究出一種電子管電路,該電子管可以識別10個元音。1973年,中國科學院聲學所成為國內首個開始研究計算機語音識別的機構。受限于當時的研究條件,我國的語音識別研究在這個階段一直進展緩慢。
改革放開以后,隨著計算機應用技術和信號處理技術在我國的普及,越來越多的國內單位和機構具備了語音研究的成熟條件。而就在此時,外國的語音識別研究取得了較大的突破性進展,語音識別成為科技浪潮的前沿,得到了迅猛的發展,這推動了包括中科院聲學所、中科院自動化所、清華大學、中國科技大學、哈爾濱工業大學、上海交通大學、西北工業大學、廈門大學等許多國內科研機構和高等院校投身到語音識別的相關研究當中。大多數的研究者將研究重點聚焦在語音識別基礎理論研究和模型、算法的研究改進上。
1986年3月,我國的"863"計劃正式啟動。"863"計劃即國家高技術研究發展計劃,是我國的一項高科技發展計劃。作為計算機系統和智能科學領域的一個重要分支,語音識別在該計劃中被列為一個專項研究課題。隨后,我國展開了系統性的針對語音識別技術的研究。因此,對于我國國內的語音識別行業來說,"863"計劃是一個里程碑,它標志著我國的語音識別技術進入了一個嶄新的發展階段。但是由于研究起步晚、基礎薄弱、硬件條件和計算能力有限,導致我國的語音識別研究在整個20世紀80年代都沒有取得顯著的學術成果,也沒有開發出具有優良性能的識別系統。
20世紀90年代,我國的語音識別研究持續發展,開始逐漸地緊追國際領先水平。在"863"計劃、國家科技攻關計劃、國家自然科學基金的支持下,我國在中文語音識別技術方面取得了一系列研究成果。
21世紀初期,包括科大訊飛、中科信利、捷通華聲等一批致力于語音應用的公司陸續在我國成立。語音識別龍頭企業科大訊飛早在2010年,就推出了業界首個中文語音輸入法,引領了移動互聯網的語音應用。2010年以后,百度、騰訊、阿里巴巴等國內各大互聯網公司相繼組建語音研發團隊,推出了各自的語音識別服務和產品。在此之后,國內語音識別的研究水平在之前建立的堅實基礎上,取得了突飛猛進的進步。如今,基于云端深度學習算法和大數據的在線語音識別系統的識別率可以達到95%以上,科大訊飛、百度、阿里巴巴都提供了達到商業標準的語音識別服務,如語音輸入法、語音搜索等應用,語音云用戶達到了億級規模。
人工智能和物聯網的迅猛發展,使得人機交互方式發生重大變革,語音交互產品也越來越多。國內消費者接受語音產品也有一個過程,最開始的認知大部分是從蘋果Siri開始。亞馬遜的Echo音箱剛開始推出的兩三年,國內的智能音箱市場還不溫不火,不為消費者所接受,因此銷量非常有限。但自2017年以來,智能家居逐漸普及,音箱市場開始火熱,為搶占語音入口,阿里巴巴、百度、小米、華為等大公司紛紛推出了各自的智能音箱。據Canalys報告,2019年第1季度中國市場智能音箱出貨量全球占比51%,首次超過美國,成為全球最大的智能音箱市場。據奧維云網 ( AVC ) 數據顯示,2019年上半年中國智能音箱市場銷量為1556萬臺,同比增長233%。
隨著語音市場的擴大,國內涌現出一批具有強大競爭力的語音公司和研究團隊,包括云知聲、思必馳、出門問問、聲智科技、北科瑞聲、天聰智能等。他們推出的語音產品和解決方案主要針對特定場景,如車載導航、智能家居、醫院的病歷輸入、智能客服、會議系統、證券柜臺業務等,因為采用深度定制,識別效果和產品體驗更佳,在市場上獲得了不錯的反響。針對智能硬件的離線識別,云知聲和思必馳等公司還研發出專門的語音芯片,進一步降低功耗,提高產品的性價比。
在國內語音應用突飛猛進的同時,各大公司和研究團隊紛紛在國際學術會議和期刊上發表研究成果。2015年,張仕良等人提出了前饋型序列記憶網絡 ( feed-forward sequential memory network,FSMN ),在DNN 的隱層旁增加了一個“記憶模塊”,這個記憶模塊用來存儲對判斷當前語音幀有用的語音信號的歷史信息和未來信息,并且只需等待有限長度的未來語音幀。隨后,科大訊飛進一步提出了深度全序列卷積神經網絡 ( DFCNN )。2018年,阿里巴巴改良并開源了語音識別模型DFSMN ( Deep FSMN )。2018年,中科院自動化所率先把Transformer應用到語音識別任務,并進一步拓展到中文語音識別。
不管是在研究成果還是在產品性能體驗上,國內的語音行業整體水平已經達到甚至超越了國際尖端水平。2016年10月,時任百度首席科學家的吳恩達在對微軟的語音識別技術與人類水平持平的消息表示祝賀的同時聲稱,百度的漢語語音識別在2015年就已經超越了人類的平均水平,也就是說百度比微軟提前一年實現了這一成績。2016年11月,搜狗、百度和科大訊飛三家公司相繼召開了三場發布會,分別向外界展示了他們各自在語音識別等方面的最新進展。這三家公司幾乎不約而同地宣布各自的中文語音識別準確率達到了97%,這充分說明大數據和深度神經網絡的成功應用使得國內的語音識別技術取得了質的突破。
盡管如此,當前語音識別系統依然面臨著不少應用挑戰,其中包括以下主要問題:
- 魯棒性。目前語音識別準確率超過人類水平主要還是在受限的場景下,比如在安靜環境的情況下,而一旦加入干擾信號,尤其是環境噪聲和人聲干擾,性能往往會明顯下降。因此,如何在復雜場景 ( 包括非平穩噪聲、混響、遠場 ) 下,提高語音識別的魯棒性,研發"能用=>好用"的語音識別產品,提升用戶體驗,仍然是要重點解決的問題。
- 口語化。每個說話人的口音、語速和發聲習慣都是不一樣的,尤其是一些地區的口音 ( 如南方口音、山東重口音 ),會導致準確率急劇下降。還有電話場景和會議場景的語音識別,其中包含很多口語化表達,如閑聊式的對話,在這種情況下的識別效果也很不理想。因此語音識別系統需要提升自適應能力,以便更好地匹配個性化、口語化表達,排除這些因素對識別結果的影響,達到準確穩定的識別效果。
- 低資源。特定場景、方言識別還存在低資源問題。手機App采集的是16kHz寬帶語音,有大量的數據可以訓練,因此識別效果很好,但特定場景如銀行/證券柜臺很多采用專門設備采集語音,保存的采樣格式壓縮比很高,跟一般的16kHz或8kHz語音不同,而相關的訓練數據又很缺乏,因此識別效果會變得很差。低資源問題同樣存在于方言識別,中國有七大方言區,包括官話方言 ( 又稱北方方言 )、吳語、湘語、贛語、客家話、粵語、閩語 ( 閩南語 ),還有晉語、湘語等分支,要搜集各地數據 ( 包括文本語料 ) 相當困難。因此如何從高資源的聲學模型和語言模型遷移到低資源的場景,減少數據搜集的代價,是很值得研究的方向。
- 語種混雜 ( code-switch )。在日常交流中,還可能存在語種混雜現象,如中英混雜 ( 尤其是城市白領 )、普通話與方言混雜,但商業機構在這方面的投入還不多,對于中英混雜語音一般僅能識別簡單的英文詞匯 ( 如"你家Wi-Fi密碼是多少" ),因此如何有效提升多語種識別的準確率,也是當前語音識別技術面臨的挑戰之一。
05
語音識別建模方法
語音識別建模方法主要分為模板匹配、統計模型和深度模型幾種類型,以下分別介紹DTW、GMM-HMM、DNN-HMM和端到端模型。
1. DTW
當同一個人說同一個詞時,往往會因為語速、語調等差異導致這個詞的發音特征和時間長短各不相同,這樣就造成通過采樣得到的語音數據在時間軸上無法對齊的情況。如果時間序列無法對齊,那么傳統的歐氏距離是無法有效地衡量出這兩個序列間真實的相似性的。而DTW的提出就是為了解決這一問題,它是一種將兩個不等長時間序列進行對齊并且衡量出這兩個序列間相似性的有效方法。
如圖 1-8 所示,DTW 采用動態規劃的算法思想,通過時間彎折,實現P和Q兩條語音的不等長匹配,將語音匹配相似度問題轉換為最優路徑問題。DTW是模板匹配法中的典型方法,非常適合用于小詞匯量孤立詞語音識別系統。但DTW過分依賴端點檢測,不適合用于連續語音識別,DTW對特定人的識別效果較好。
圖1-8 動態時間規整(DTW)
2. GMM-HMM
HMM是一種統計分析模型,它是在馬爾可夫鏈的基礎上發展起來的,用來描述雙重隨機過程。HMM有算法成熟、效率高、易于訓練等優點,被廣泛應用于語音識別、手寫字識別和天氣預報等多個領域,目前仍然是語音識別中的主流技術。
如圖1-9所示,HMM包含S1、S2、S3、S4和S55個狀態,每個狀態對應多幀觀察值,這些觀察值是特征序列 ( o1、o2、o3、o4,...,oT ),沿時刻t遞增,多樣化而且不局限取值范圍,因此其概率分布不是離散的,而是連續的。自然界中的很多信號可用高斯分布表示,包括語音信號。由于不同人發音會存在較大差異,具體表現是,每個狀態對應的觀察值序列呈現多樣化,單純用一個高斯函數來刻畫其分布往往不夠,因此更多的是采用多高斯組合的 GMM 來表征更復雜的分布。這種用 GMM 作為 HMM 狀態產生觀察值的概率密度函數 ( pdf ) 的模型就是GMM- HMM,如圖1-9所示,每個狀態對應的GMM由2個高斯函數組合而成。
圖1-9 GMM-HMM
3. DNN-HMM
DNN擁有更強的表征能力,其能夠對復雜的語音變化情況進行建模。把GMM-HMM的GMM用DNN替代,如圖1-10所示,HMM的轉移概率和初始狀態概率保持不變。
圖1-10 把GMM-HMM的GMM用DNN替代
DNN的輸出節點與所有HMM ( 包括"a"、"o"等音素 ) 的發射狀態一一對應 ( 如圖1-11所示 ),因此可通過DNN的輸出得到每個狀態的觀察值概率。
圖1-11 DNN-HMM
4. 端到端
從2015年,端到端模型開始流行,并被應用于語音識別領域。如圖1-12所示,傳統語音識別系統的發音詞典、聲學模型和語言模型三大組件被融合為一個E2E模型,直接實現輸入語音到輸出文本的轉換,得到最終的識別結果。
圖1-12 E2E模型
06
語音識別開源工具
HTK ( HMM Toolkit ) 是一個專門用于建立和處理HMM的實驗工具包[10],由劍橋大學的Steve Young等人開發,非常適合GMM-HMM系統的搭建。2015年DNN-HMM推出,該新版本主要由張超博士開發。
Kaldi是一個開源的語音識別工具箱[20],它是基于C++編寫的,可以在windows和UNIX平臺上編譯,主要由Daniel Povey博士在維護。Kaldi適合DNN-HMM系統 ( 包括Chain模型 ) 的搭建,支持TDNN/TDNN-F等模型。其基于有限狀態轉換器 ( FST ) 進行訓練和解碼,可用于x-vector等聲紋識別系統的搭建。
Espnet是一個端到端語音處理工具集[35],其側重于端到端語音識別和語音合成。Espnet是使用Python開發的,它將Chainer和Pytorch作為主要的深度學習引擎,并遵循Kaldi風格的數據處理方式,為語音識別和其他語音處理實驗提供完整的設置,支持CTC/Attention等模型。
07
語音識別常用數據庫
TIMIT——經典的英文語音識別庫,其中包含,來自美國8個主要口音地區的630人的語音,每人10句,并包括詞和音素級的標注。圖1-13給出了一條語音的波形圖、語譜圖和標注。這個庫主要用來測試音素識別任務。
圖1-13 語音文件“/timit/test/dr5/fnlp0/sa1.wav”的波形圖、語譜圖和標注
SwitchBoard——對話式電話語音庫,采樣率為8 kHz,包含來自美國各個地區543人的2400條通話錄音。研究人員用這個數據庫做語音識別測試已有20多年的歷史。
LibriSpeech——免費的英文語音識別數據庫,總共1000小時,采樣率為16kHz,包含朗讀式語音和對應的文本。
Thchs-30——清華大學提供的一個中文示例,并配套完整的發音詞典,其數據集有30小時,采樣率為16 kHz。
AISHELL-1——希爾貝殼開源的 178 小時中文普通話數據,采樣率為16kHz。包含400位來自中國不同口音地區的發音人的語音,語料內容涵蓋財經、科技、體育、娛樂、時事新聞等。
語音識別數據庫還有很多,包括16kHz和8kHz的數據。海天瑞聲、數據堂等數據庫公司提供大量的商用數據庫,可用于工業產品的開發。
08
語音識別評價指標
假設"我們明天去動物園"的語音識別結果如下:
識別結果包含了刪除、插入和替換錯誤。
度量語音識別性能的指標有許多個,通常使用測試集上的詞錯誤率 ( word Error Rate,WER ) 來判斷整個系統的性能,其公式定義如下:
其中,NRef表示測試集所有的詞數量,NDel表示識別結果相對于實際標注發生刪除錯誤的詞數量,NSub代表發生替換錯誤的詞數量,而NIns則表示發生插入錯誤的詞數量。
針對中文普通話,評價指標也經常采用字錯誤率 ( CER ),即用單字而不是詞來計算錯誤率。
作者:洪青陽,廈門大學副教授,天聰智能創始人,主要研究方向是語音識別、聲紋識別,先后主持國家自然基金兩項,科技部創新基金兩項。牽頭組建廈門大學智能語音實驗室,帶領xmuspeech團隊連續兩屆獲東方語種識別 ( OLR ) 競賽第一名,成功研發國內第一套閩南語合成系統。具有豐富的工業界研發經驗,與華為、云從、掌數科技等知名企業合作,承擔過大量的智能語音項目,核心技術應用到華為智能手機和全國十五個省市的司法/社保/證券/電力系統。長期從事本科生、研究生的語音識別教學工作,從動態時間規整 ( DTW )、隱馬爾可夫模型 ( HMM ) 到E2E語音識別框架,與時俱進更新教學內容,積累了豐富的教學經驗。