序一
最近這段時間我的生活有了一些戲劇性的變化,大家可以從一些新聞(例如《紐約時報》)中看到實際的報導。因為這些變化,我目前暫時在做一些諮詢的工作,也因此有機會到世界各處巡遊。例如此時此刻,在為這本撰寫序的時候,我正在土耳其伊斯坦堡的一家小咖啡館裡。寫序其實並不是一個我所擅長的事情,相對來說,我更喜歡寫程式,但是我會盡我所能為這本撰寫序。
電腦軟體很少有處在穩定狀態的,對Kaldi 來說尤其如此。用鯊魚的實例來做類比,鯊魚是從來不休息的,必須透過持續的運動才能生存;Kaldi也是這樣,這些年來一直都在一刻不停地、持續地發展壯大。當然,發展是一把雙刃劍,這麼高速的發展給Kaldi 帶來了很多發展紅利,也不可避免地帶來了問題。事實上,在目前版本的Kaldi 開發中,我們做出了不少正確的決定,但是回過去看,也有不少不盡如人意的設計。因此,我目前正在為Kaldi 規劃一些比平常大得多的改動,例如更進一步地支援目前主流的機器學習架構,例如PyTorch。當然,Kaldi 大部分的特性都會保持不變,因此我相信這本書的內容會一直有很大的參考價值。
Kaldi 最寶貴的資產其實一直都是Kaldi 的開放原始碼社區。我相信這本書的出版能夠相當大地推動Kaldi 開放原始碼社區的持續發展。對我個人來說,無論將來在哪裡工作,我也都會繼續全身心地投入到Kaldi 專案中。
Daniel Povey
Kaldi 主要開發者
作者譯
序二
在最近的十年裡,語音辨識、語音合成和語音訊號處理都有了長足的發展。這些發展一方面歸功於研究人員在語音處理領域引用了一系列新的研究成果,例如序列上的區分度訓練和以深度學習為基礎的識別和合成架構,另一方面得益於使用者在行動網際網路時代對語音技術的應用需求和與之對應的巨量資料和強大計算力,這些因素互相促進,相當大地推動了語音技術的發展,並使得語音技術的效能指標在幾年前就超過了使用者的使用門檻,催生了大量的實際應用。
在技術和應用的發展過程中,工具一直佔有著重要的地位,舉例來說,TensorFlow、PyTorch、CNTK、MXNet 等深度學習工具的出現相當大地推動了深度學習的發展。而語音系統錯綜複雜,有關的技術模組多樣,所需的領域基礎知識繁多,對專案最佳化的要求高,好的工具就顯得尤為重要。早期的語音辨識的發展大幅得益於HTK 和Sphinx 工具集,而在最近的十年裡,Kaldi 工具箱對於語音技術的普及和研發起到了舉足輕重的作用。
Kaldi 起源於2009 年的約翰霍普金斯大學夏季研討會,當時我在微軟研究院語音與對話研究組的同事Dan Povey 博士提出了Subspace Gaussian Mixture Model (SGMM),並在研討會上組織研究了這個模型。作為這個研究的副產品,他們開始整理和開發一個新的語音技術工具箱Kaldi,並採用了開放原始碼的開發模式。經過十年的發展,Kaldi 已經成為深度學習時代主流的語音技術工具箱,整合了大量的最新進展和最佳指令稿,相當大地降低了語音技術的研究和應用門檻。
不過,Kaldi 是一個持續發展中的開放原始碼專案,它的文件大幅落後於程式。本書作者們以自己多年的第一線語音研發和Kaldi 使用經驗為基礎,深入淺出地介紹了語音辨識各個模組的原理及Kaldi 中各種實作技巧的來龍去脈和使用方法,相當大地彌補了Kaldi 文件方面的缺陷,降低了Kaldi 的學習和使用門檻,有助Kaldi 的進一步推廣和開發。
俞棟
IEEE Fellow,騰訊人工智慧實驗室副主任