內容簡介
隨著語音算法技術的不斷發展與完善,如何進行工程落地成為語音商業套用中普遍面臨的問題。工程落地不僅要考慮模型效果,還要考慮資源占用、模組聯調且整個架構要具有可靠性、可擴展性和可維護性。本書圍繞如何從零構建一個完整的語音識別系統,深入淺出地介紹了語音識別前端算法、語音識別算法及說話人日誌算法原理;基於Kaldi的模型訓練;語音識別工程落地和服務搭建。本書適合作為語音技術研究人員及對語音技術感興趣的開發人員的參考用書。
圖書目錄
第1章 語音識別概述 1
1.1 語音識別發展歷程 2
1.2 語音識別產業與套用 6
1.2.1 消費級市場 7
1.2.2 企業級市場 8
1.3 常用語音處理工具 10
1.3.1 WebRTC 10
1.3.2 Kaldi 12
1.3.3 端到端語音識別工具包 14
第2章 語音信號基礎 16
2.1 語音信號的聲學基礎 17
2.1.1 語音產生機理 17
2.1.2 語音信號的產生模型 19
2.1.3 語音信號的感知 20
2.2 語音信號的數位化和時頻變換 22
2.2.1 語音信號的採樣、量化和編碼 22
2.2.2 語音信號的時頻變換 25
2.3 本章小結 31
第3章 語音前端算法 32
3.1 語音前端算法概述 33
3.2 VAD 35
3.2.1 基於門限判決的VAD 36
3.2.2 基於高斯混合模型的VAD 38
3.2.3 基於神經網路的VAD 40
3.3 單通道降噪 43
3.3.1 譜減法 44
3.3.2 維納濾波法 46
3.3.3 音樂噪聲和參數譜減法 48
3.3.4 貝葉斯準則下的MMSE 51
3.3.5 噪聲估計 56
3.3.6 基於神經網路的單通道降噪 61
3.4 回聲消除 65
3.4.1 回聲消除概述 66
3.4.2 線性自適應濾波 69
3.4.3 分塊頻域自適應濾波器 70
3.4.4 雙講檢測 72
3.4.5 延遲估計 75
3.4.6 殘留回聲消除 76
3.4.7 基於神經網路的回聲消除 78
3.5 麥克風陣列與波束形成 79
3.5.1 麥克風陣列概述 80
3.5.2 延遲求和波束形成 86
3.5.3 小方差無失真回響波束形成 89
3.5.4 廣義旁瓣對消波束形成 92
3.5.5 後置濾波 98
3.5.6 基於神經網路的波束形成 101
3.6 聲源定位 103
3.6.1 GCC-PHAT 104
3.6.2 基於自適應濾波的聲源定位 105
3.6.3 SRP-PHAT 108
3.6.4 子空間聲源定位算法 108
3.6.5 基於神經網路的聲源定位 111
3.7 其他未盡話題 111
3.8 本章小結 113
第4章 語音識別原理 114
4.1 特徵提取 116
4.1.1 特徵預處理 116
4.1.2 常見的語音特徵 119
4.2 傳統聲學模型 124
4.2.1 聲學建模單元 124
4.2.2 GMM-HMM 126
4.2.3 強制對齊 131
4.3 DNN-HMM 131
4.3.1 語音識別中的神經網路基礎 132
4.3.2 常見的神經網路結構 137
4.4 語言模型 145
4.4.1 n-gram語言模型 145
4.4.2 語言模型的評價指標 148
4.4.3 神經語言模型 148
4.5 WFST解碼器 151
4.5.1 WFST原理 151
4.5.2 常見的WFST運算 152
4.5.3 語音識別中的WFST解碼器 155
4.5.4 令牌傳遞算法 157
4.5.5 Beam Search 159
4.6 序列區分性訓練 160
4.6.1 MMI和bMMI 161
4.6.2 MPE和sMBR 161
4.6.3 詞圖 161
4.6.4 LF-MMI 162
4.7 端到端語音識別 163
4.7.1 CTC 163
4.7.2 Seq2Seq 166
4.8 語音識別模型評估 169
4.9 本章小結 171
第5章 中文國語模型訓練——以multi_cn為例 172
5.1 Kaldi安裝與環境配置 173
5.2 Kaldi中的數據格式與數據準備 174
5.3 語言模型訓練 178
5.4 發音詞典準備 180
5.5 特徵提取 184
5.6 Kaldi中的Transition模型 186
5.7 預對齊模型訓練 187
5.7.1 單音素模型訓練 187
5.7.2 delta特徵模型訓練 190
5.7.3 lda_mllt特徵變換模型訓練 191
5.7.4 說話人自適應訓練 192
5.8 數據增強 193
5.8.1 數據清洗及重分割 194
5.8.2 速度增強和音量增強 194
5.8.3 SpecAugment 196
5.9 I-Vector訓練 197
5.9.1 對角UBM 197
5.9.2 I-Vector提取器 198
5.9.3 提取訓練數據的I-Vector 199
5.10 神經網路訓練 199
5.10.1 Chain模型 200
5.10.2 Chain模型數據準備 202
5.10.3 神經網路配置與訓練 203
5.11 解碼圖生成 209
5.12 本章小結 210
5.13 附錄 211
5.13.1 xconfig中的描述符及網路配置表 211
5.13.2 Chain模型中的egs 215
5.13.3 Kaldi nnet3中疊代次數和學習率調整 217
第6章 基於Kaldi的說話人日誌 219
6.1 說話人日誌概述 220
6.1.1 什麼是說話人日誌 220
6.1.2 說話人日誌技術 220
6.1.3 說話人日誌評價指標 227
6.2 聲紋模型訓練——以CNCeleb為例 229
6.2.1 聲紋數據準備 230
6.2.2 I-Vector訓練 240
6.2.3 X-Vector訓練 243
6.2.4 LDA/PLDA後端模型訓練 248
6.2.5 說話人日誌後端模型訓練 250
6.3 本章小結 253
第7章 基於Kaldi的語音SDK實現 254
7.1 語音特徵提取 258
7.1.1 音頻讀取 258
7.1.2 音頻特徵提取 261
7.2 基於WebRTC的語音活動檢測 268
7.3 說話人日誌模組 273
7.3.1 I-Vector提取 275
7.3.2 X-Vector提取 287
7.3.3 說話人日誌算法實現 299
7.4 語音識別解碼 313
7.5 本章小結 324
第8章 基於gRPC的語音識別服務 325
8.1 gRPC語音服務 326
8.2 ProtoBuf協定定義 327
8.3 基於gRPC的語音服務實現 329
8.3.1 gRPC Server實現 330
8.3.2 gRPC Client實現 337
8.3.3 gRPC語音服務的編譯與測試 343
8.4 本章小結 346
參考文獻 347
作者簡介
楊學銳大疆創新智慧型語音算法負責人,復旦大學及Turku大學碩士,長期從事語音算法、深度學習、人工智慧等領域的研究與商業落地。在相關領域發表過多篇論文及專利。晏超北京郵電大學碩士,曾任職於HP Labs, Cisco, Technicolor等公司。現為雲從科技語音算法負責人,從事語音識別、聲紋識別、說話人日誌、語音合成等方向的算法研發工作,構建了雲從科技整套語音算法引擎與套用服務平台。劉雪松oppo音頻算法專家,復旦大學碩士,曾任職於美國國家儀器、聲網、雲從科技等公司。在信號處理、音頻算法和語音算法等領域有長期的研究經歷和豐富的實戰經驗。在相關領域發表過多篇論文及專利。