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