從Hey、Siri、OK Google開始,我們早已習慣用語音來控制設備,語音輸入法取代鍵盤,Google幫你朗讀文章,你一定很好奇這些語音系統是如何建造出來的。
本書以Kaldi為主,完整介紹Librispeech等資料處理,並且完整說明了三音素架構。
語音模型方面:完整介紹語言模型、n元模型。
特徵工程方面:完整介紹包括對齊、Transition模型、GMM模型等。
構圖及解碼方面:完整介紹OpenFST、WFST等技術。
深度學習建模方面:完整介紹nnet、nnet2、nnet3。
大家最常用的語音搜尋、語音喚醒也有完整的實作介紹。類似人臉辨識的「人聲」辨識,也用PLDA、i-vector、x-vector等技術實作,最近當紅的語言辨識也沒錯過,可說是深入語音工程的最佳手冊。
作者簡介:
陳果果
約翰霍普金斯大學博士學位,師從語音識別開源工具Kaldi主要開發者Daniel Povey,以及約翰霍普金斯大學語言語音處理中心教授Sanjeev Khudanpur。成功的連續創業家。
都家宇
先後任職於清華大學語音技術實驗室、百度語音技術部,以及阿里巴巴iDST、達摩院語音組,從事聲學模型、解碼器、語音喚醒等方面的研發工作。
那興宇
先後任職於中國科學院聲學研究所和阿里巴巴機器人,曾任職微軟資深應用科學家,從事語音識別模型訓練系統和語音交互系統的開發。
張俊博
博士畢業於中國科學院聲學研究所,師從顏永紅研究員, 研究興趣包括語音識別、聲紋識別、語音合成和口語發音質量評測等。目前在小米從事語音領域的研發工作。
各界推薦
名人推薦:
好評來襲
顏永紅 中國科學院語言聲學與內容了解重點實驗室主任
Kaldi 開放原始碼軟體對推動語音技術研究和產品落地做出了不可磨滅的貢獻,本書作者是工作在語音研究和產業前端的青年才俊,他們以第一手經驗詳細說明了如何運用該軟體建置實際系統,這對初學者迅速掌握相關知識和技能是非常有益的。
俞凱 上海交通大學智慧語音技術實驗室主任,思必馳聯合創始人、首席科學家
我和Dan Povey 博士十幾年前在劍橋大學共事時,使用的是早期最著名的語音辨識開放原始碼軟體之一:HTK。雖然後來Kaldi 因其靈活的設計、開放的協定和豐富的功能而如日中天,卻一直在系統教學方面遠遠落後於HTK。本書從理論和實作的角度對Kaldi 進行了完整呈現,不僅有其實用價值,也為「知其所以然」列出了很好的註釋,相信必然會對Kaldi 的傳播和語音辨識技術的發展造成積極的促進作用。
崔寶秋 小米集團副總裁、集團技術委員會主席
Kaldi 是開放原始碼語音技術的典範,是大專院校同學們入門語音的啟發工具,也是人們快速提升語音技術的捷徑。它消除了大家因為長期沉浸在語音教科書和論文裡而產生的「手癢」,給人們帶來快速上手實作、快速感受語音資料之美的快樂。本書作者們都有豐富的工業界(包含小米)實戰經驗和深厚的學術累積,他們把這些經驗和累積無私地貢獻出來,也真正表現了開放原始碼的共用精神。擁抱開放原始碼是小米的工程文化,衷心希望Kaldi 及其社區在Daniel Povey 博士的主管下不斷茁壯成長、領導語音技術的發展。
張錦懋 美團首席科學家、基礎研發平台負責人
Kaldi 的誕生使得語音辨識領域的研究和創新成本都顯著降低,讓整個企業都獲益匪淺。這本書的幾位作者非常全面地介紹了Kaldi 的功能,包含資料處理、聲學模型、解碼器等相關的工具,同時對相關理論也進行了詳細的說明,讓讀者不僅學會使用Kaldi,而且能夠了解為什麼這麼使用。
雷欣 出門問問首席技術官
Kaldi 相比於經典的HTK 工具套件進行了極大的最佳化,譬如C++ 的採用、以WFST 為基礎的靜態解碼器、達到state-of-the-art 效能的recipe 指令稿等。這些優勢使得Kaldi 開放原始碼函數庫獲得迅速的發展,相當大地降低了語音技術的門檻,使得像出門問問這樣的語音創業公司能在短時間內開發出一流的語音技術產品。相比於經典的HTK Book,Kaldi 在文件方面則顯得落後很多。本書的作者們都是Kaldi 社區的活躍開發者,對Kaldi 及語音技術具有深刻的了解,他們的努力使得中國的語音技術同好們有了一本入門和加強的參考書,必將進一步推動語音技術的普及。
鄒月嫻 北京大學教授、博士生導師,深圳市人工智慧學會專家委主任
我在北京大學深圳研究所學生院開展教學和科學研究工作十四個整年頭,其間為電腦應用技術專業的學生主講「機器學習與模式識別」課程,帶領一群優秀的研究所學生開展機器聽覺技術研究。我們的教學和研究得益於許多的開放原始碼專案,深切體會到Kaldi 作為主流的語音辨識開放原始碼工具對同學們的幫助。Kaldi 秉承其開放原始碼社區的傳統特性,支援主流的機器學習架構和演算法,受到許多業界和學界開發者的支援。我相信本書的作者們正是秉承這樣的精神,以實際行動支援Kaldi 開放原始碼社區。這本書不僅介紹了語音技術的發展簡史、Kaldi 的發展歷史,也涵蓋了最新的以深度學習為基礎的語音技術主流架構和語音辨識應用實作案例,所呈現的內容和提供的實戰技巧接近產業需求,該書的出版將有益於學子們更加快速地了解主流的語音技術並迅速開展程式設計實作,推動語音技術進步和應用的發展。
李嵐 中軟國際教育科技集團人工智慧研究院執行院長
人工智慧技術在近年被確立為國家戰略後,大專院校和企業間深度合作,在人工智慧的人才培養上形成了一致看法,即實作是學校和學生的一致需求。從產業界的實際發展來看,隨著人工智慧技術應用領域的擴充,「聽」這一感知領域,已經是迫切需要得以提升和發展的。企業專家,特別是實際應用領域的專家聯合推動的企業資料和技術開放原始碼,為這個領域的人才培養做出了貢獻。而如何讓更多的老師和學生們了解語音領域的發展現狀及學習路徑,需要和本書的作者們一樣,分享自己的了解和系統整理。我們也將在後續工作中,將本書作為我們的教材之一,希望能推動語音領域人才的培養。
名人推薦:好評來襲
顏永紅 中國科學院語言聲學與內容了解重點實驗室主任
Kaldi 開放原始碼軟體對推動語音技術研究和產品落地做出了不可磨滅的貢獻,本書作者是工作在語音研究和產業前端的青年才俊,他們以第一手經驗詳細說明了如何運用該軟體建置實際系統,這對初學者迅速掌握相關知識和技能是非常有益的。
俞凱 上海交通大學智慧語音技術實驗室主任,思必馳聯合創始人、首席科學家
我和Dan Povey 博士十幾年前在劍橋大學共事時,使用的是早期最著名的語音辨識開放原始碼軟體之一:HTK。雖然後來Kaldi 因其靈活的設計、開放的協...
作者序
序一
最近這段時間我的生活有了一些戲劇性的變化,大家可以從一些新聞(例如《紐約時報》)中看到實際的報導。因為這些變化,我目前暫時在做一些諮詢的工作,也因此有機會到世界各處巡遊。例如此時此刻,在為這本撰寫序的時候,我正在土耳其伊斯坦堡的一家小咖啡館裡。寫序其實並不是一個我所擅長的事情,相對來說,我更喜歡寫程式,但是我會盡我所能為這本撰寫序。
電腦軟體很少有處在穩定狀態的,對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,騰訊人工智慧實驗室副主任
序一
最近這段時間我的生活有了一些戲劇性的變化,大家可以從一些新聞(例如《紐約時報》)中看到實際的報導。因為這些變化,我目前暫時在做一些諮詢的工作,也因此有機會到世界各處巡遊。例如此時此刻,在為這本撰寫序的時候,我正在土耳其伊斯坦堡的一家小咖啡館裡。寫序其實並不是一個我所擅長的事情,相對來說,我更喜歡寫程式,但是我會盡我所能為這本撰寫序。
電腦軟體很少有處在穩定狀態的,對Kaldi 來說尤其如此。用鯊魚的實例來做類比,鯊魚是從來不休息的,必須透過持續的運動才能生存;Kaldi也是這樣,這些年來一直都在一刻...
目錄
01 語音辨識技術基礎
1.1 語音辨識極史
1.2 語音辨識系統架構
1.3 一些其他細節
02 Kaldi 概要介紹
2.1 發展歷史
2.2 設計思想
2.3 安裝
2.4 一個簡單的範例
2.5 範例介紹
03 資料整理
3.1 資料分集
3.2 資料前置處理
3.3 輸入和輸出機制
3.4 常用資料表單與處理指令稿
3.5 語言模型相關檔案
04 經典聲學建模技術
4.1 特徵分析
4.2 單音素模型的訓練
4.3 三音素模型訓練
4.4 特徵轉換技術
4.5 區分性訓練
05 構圖和解碼
5.1 N 元文法語言模型
5.2 加權有限狀態轉換器
5.3 用WFST 表示語言模型
5.4 狀態圖的建置
5.5 圖的結構最佳化
5.6 最後狀態圖的產生
5.7 以權杖傳遞為基礎的維特比搜尋
5.8 SimpleDecoder 原始程式分析
5.9 Kaldi 解碼器家族
5.10 帶詞網格產生的解碼
5.11 用語言模型重評分提升辨識率
06 深度學習聲學建模技術
6.1 以神經網路為基礎的聲學模型
6.2 神經網路在Kaldi 中的實現
6.3 神經網路模型訓練
6.4 神經網路的區分性訓練
6.5 與其他深度學習架構的結合
07 關鍵字搜尋與語音喚醒
7.1 關鍵字搜尋技術介紹
7.2 語音檢索
7.3 語音喚醒
08 說話者辨識
8.1 概述
8.2 以i-vector 和PLDA 為基礎的說話者辨識技術
8.3 以深度學習為基礎的說話者辨識技術
8.4 語言辨識
09 語音辨識應用實作
9.1 語音辨識基本應用
9.2 話音檢測模組
9.3 模型的適應
9.4 解碼器的選擇及擴充
A 術語列表
B 常見問題解答
01 語音辨識技術基礎
1.1 語音辨識極史
1.2 語音辨識系統架構
1.3 一些其他細節
02 Kaldi 概要介紹
2.1 發展歷史
2.2 設計思想
2.3 安裝
2.4 一個簡單的範例
2.5 範例介紹
03 資料整理
3.1 資料分集
3.2 資料前置處理
3.3 輸入和輸出機制
3.4 常用資料表單與處理指令稿
3.5 語言模型相關檔案
04 經典聲學建模技術
4.1 特徵分析
4.2 單音素模型的訓練
4.3 三音素模型訓練
4.4 特徵轉換技術
4.5 區分性訓練
05 構圖和解碼
5.1 N 元文法語言模型
5.2 加權有限狀態轉換器
5.3 用WFST 表示語言模型...