Kaldi現(xiàn)在提供TensorFlow集成
由于近年來虛擬個人助理的迅猛發(fā)展和深度學習算法的運用所帶來的字詞識別準確率的飛躍,自動語音識別 (ASR) 已經(jīng)得到廣泛的采用。許多語音識別團隊都依靠 Kaldi,這是一款廣受歡迎的開放源代碼語音識別工具包。我們宣布 Kaldi 現(xiàn)在提供 TensorFlow 集成。
通過此集成,使用 Kaldi 的語音識別研究人員和開發(fā)者將能夠在他們的 Kaldi 語音識別管道中,使用 TensorFlow 來探索和部署深度學習模型。這樣,Kaldi 社區(qū)可以構建更出色、更強大的 ASR 系統(tǒng),并為 TensorFlow 用戶提供一種利用龐大的 Kaldi 開發(fā)者社區(qū)的經(jīng)驗探索 ASR 的途徑。
構建一套能夠理解每種對話語言、口音、環(huán)境和類型的人類語音的 ASR 系統(tǒng)是一項極其復雜的任務。傳統(tǒng)的 ASR 系統(tǒng)可被視為由許多獨立模塊組成的處理管道,其中,每個模塊的運行都基于上一個模塊的輸出。原始音頻數(shù)據(jù)從管道的一端進入管道,然后從另一端輸出已識別語音的轉錄文字。在 Kaldi 中,會以各種方式對這些 ASR 轉錄文字進行后處理,以便支持不斷增多的最終用戶應用。
Yishay Carmiel 和 Hainan Xu 來自總部位于西雅圖的公司 IntelligentWire,他們在這兩個團隊的支持下,領導開發(fā)了 Kaldi 和 TensorFlow 之間的集成,他們親身體會到這種復雜性。他們公司開發(fā)了云軟件在實時電話對話和商業(yè)應用之間架設銜接的橋梁。
他們的目標是:讓企業(yè)能夠實時分析其業(yè)務代表與客戶之間成千上萬的對話內容并據(jù)此采取行動,同時自動處理數(shù)據(jù)錄入或響應請求之類的任務。
IntelligentWire 目前專注于呼叫中心市場,全球各地共有 2200 多萬名坐席代表每年花費 500 億小時進行電話交流,花費大約 250 億小時查詢和操作各種業(yè)務應用。
ASR 系統(tǒng)要在此環(huán)境中發(fā)揮作用,不僅必須提供準確的轉錄文字,還應確保很低的延遲時間,并且能夠升級,從而高效地支持成千上萬的并發(fā)對話。在這樣的情況下,近年來深度學習技術的發(fā)展可以幫助突破技術限制,TensorFlow 則大放異彩。
在過去幾年里,人們一直使用深度神經(jīng)網(wǎng)絡代替許多原有的 ASR 模塊,最終使得字詞識別準確率得到顯著的提升。這些深度學習模塊通常需要處理海量的數(shù)據(jù),而 TensorFlow 則可以簡化這一處理工作。然而,在開發(fā)生產(chǎn)級的 ASR 系統(tǒng)時,仍有幾個重大的挑戰(zhàn)需要克服:
- 算法 - 深度學習算法在針對手頭的任務進行定制時效果***,包括聲音環(huán)境(如噪音)、所講的特定語言、詞匯范圍等。這些算法一經(jīng)部署,再要修改就不是很容易了。
- 數(shù)據(jù) - 針對不同的語言和不同的聲音環(huán)境構建 ASR 系統(tǒng)需要多種類型的大量數(shù)據(jù)。如此龐大的數(shù)據(jù)并非總能得到,也可能并不適合用例。
- 擴展 - 能夠支持龐大使用量和許多語言的 ASR 系統(tǒng)通常要消耗大量的運算資源。
能夠說明這些挑戰(zhàn)的 ASR 系統(tǒng)模塊之一是語言模型。語言模型是***進的 ASR 系統(tǒng)的關鍵部件之一,它們提供語言上下文,幫助預測詞語的正確順序并區(qū)分發(fā)音相似的詞語。借助***的機器學習突破,語音識別開發(fā)者現(xiàn)在利用基于深度學習的語言模型,也稱為神經(jīng)語言模型。特別是,相對于傳統(tǒng)的統(tǒng)計方法,循環(huán)神經(jīng)語言模型的識別結果更勝一籌。
然而,神經(jīng)語言模型的訓練和部署相當復雜,而且頗為耗時。對 IntelligentWire 來說,將 TensorFlow 集成到 Kaldi 中已經(jīng)將 ASR 開發(fā)周期縮短了一個數(shù)量級。如果某個語言模型在 TensorFlow 中已存在,則從模型到概念證明只需要幾天時間,而不是幾周時間;對于新模型,開發(fā)時間可從幾個月縮短到幾周。在 Kaldi 生產(chǎn)管道中部署新的 TensorFlow 模型還很簡單,這對每個直接使用 Kaldi 以及未來很可能造福于每個人的更智能的 ASR 系統(tǒng)的人來說,不啻為一大福音。
類似地,這種集成讓 TensorFlow 開發(fā)者能夠輕松訪問強大的 ASR 平臺,能夠將現(xiàn)有的語音處理管道(例如 Kaldi 強大的聲學模型)集成到他們的機器學習應用中。Kaldi 模塊可以為 TensorFlow 深度學習模塊訓練提供輸入,模塊的更換干脆利落,為探索研究提供了許多便利,同時還可重復利用生產(chǎn)中使用的管道來評估模型的質量。
我們希望 Kaldi 和 TensorFlow 之間的這種集成能夠將這兩個生機勃勃的開放源代碼社區(qū)更緊密地結合在一起,為各種新的語音產(chǎn)品和相關研究取得突破提供支持。要開始使用集成 TensorFlow 的 Kaldi,請查看 Kaldi 代碼庫:
https://github.com/kaldi-asr/kaldi
另請參閱運行 TensorFlow 的 Kaldi 設置示例:
https://github.com/kaldi-asr/kaldi/tree/master/egs/ami/s5/local/tfrnnlm
【本文是51CTO專欄機構“谷歌開發(fā)者”的原創(chuàng)稿件,轉載請聯(lián)系原作者(微信公眾號:Google_Developers)】