本書圍繞語音識別的原理和應(yīng)用講解,理論結(jié)合實際,采用大量插圖,輔以實例,力求深入淺出,讓讀者能較快地理解語音識別的基礎(chǔ)理論和關(guān)鍵技術(shù)。為了幫助讀者動手操作,提高實戰(zhàn)技能,本書最后還結(jié)合Kaldi、ESPnet和WeNet等開源工具,介紹了具體的工程實踐方法。
洪青陽,廈門大學(xué)副教授,天聰智能創(chuàng)始人,主要研究方向是語音識別、聲紋識別,先后主持國家自然科學(xué)基金兩三項,科技部創(chuàng)新基金兩項。牽頭組建廈門大學(xué)智能語音實驗室,帶領(lǐng)xmuspeechXMUSPEECH團(tuán)隊連續(xù)兩屆獲東方語種識別(OLR)競賽第一名,成功研發(fā)國內(nèi)第一套閩南語合成系統(tǒng)。具有豐富的工業(yè)界研發(fā)經(jīng)驗,與華為、云從、掌數(shù)科技、鼎橋等知名企業(yè)合作,承擔(dān)過大量的智能語音項目,核心技術(shù)應(yīng)用到華為智能手機(jī)和全國十五幾個省市的司法/社保/證券/電力系統(tǒng)。長期從事本科生、研究生的語音識別教學(xué)工作,從最早的動態(tài)時間規(guī)整(DTW)、隱馬爾可夫模型(HMM)到最新的端到端(E2E)語音識別框架,與時俱進(jìn)更新教學(xué)內(nèi)容,積累了豐富的教學(xué)經(jīng)驗。李琳,廈門大學(xué)副教授,博士生導(dǎo)師,主要研究方向為語音信號處理、聲紋識別、智能系統(tǒng)設(shè)計,主持國家自然科學(xué)基金一項,負(fù)責(zé)國家科技部重點研發(fā)計劃項目子課題一項、省級科研項目一項,作為第一合作者參與國家自然基金兩項,曾獲福建省科技進(jìn)步獎二等獎、福建省教學(xué)成果獎二等獎、廈門市科技進(jìn)步獎一等獎。參與指導(dǎo)XMUSPEECHxmuspeech團(tuán)隊連續(xù)兩屆獲東方語種識別競賽第一名。國際IEEE學(xué)會會員,CCF高級會員,NCMMSC常設(shè)機(jī)構(gòu)委員會委員,CCF語音對話與聽覺專業(yè)組委員會委員,NCMMSC常設(shè)機(jī)構(gòu)委員會委員。
第1章 語音識別概論 1
1.1 語音的產(chǎn)生和感知 1
1.2 語音識別過程 4
1.3 語音識別發(fā)展歷史 8
1.4 國內(nèi)語音識別現(xiàn)狀 15
1.5 語音識別建模方法 18
1.5.1 DTW 19
1.5.2 GMM-HMM 19
1.5.3 DNN-HMM 20
1.5.4 E2E模型 22
1.6 語音識別開源工具 22
1.7 常用語音識別數(shù)據(jù)庫 23
1.8 語音識別評價指標(biāo) 24
1.9 參考資料 25
第2章 語音信號基礎(chǔ) 28
2.1 聲波的特性 28
2.2 聲音的接收裝置 29
2.2.1 麥克風(fēng)的性能指標(biāo) 30
2.2.2 麥克風(fēng)陣列 31
2.3 聲音的采樣 32
2.4 聲音的量化 33
2.5 語音的編碼 35
2.6 WAV文件格式 39
2.7 WAV文件分析 40
2.8 本章小結(jié) 43
思考練習(xí)題 43
第3章 語音特征提取 44
3.1 預(yù)處理 44
3.2 短時傅里葉變換 48
3.3 聽覺特性 51
3.4 線性預(yù)測 54
3.5 倒譜分析 55
3.6 常用的聲學(xué)特征 56
3.6.1 語譜圖 57
3.6.2 FBank 58
3.6.3 MFCC 59
3.6.4 PLP 60
3.7 本章小結(jié) 62
思考練習(xí)題 63
第4章 HMM 64
4.1 HMM的基本概念 66
4.1.1 馬爾可夫鏈 67
4.1.2 雙重隨機(jī)過程 68
4.1.3 HMM的定義 69
4.2 HMM的三個基本問題 70
4.2.1 模型評估問題 71
4.2.2 最佳路徑問題 74
4.2.3 模型訓(xùn)練問題 76
4.3 本章小結(jié) 78
4.4 參考資料 79
思考練習(xí)題 79
第5章 GMM-HMM 80
5.1 概率統(tǒng)計 81
5.2 高斯分布 82
5.3 GMM 85
5.3.1 初始化 86
5.3.2 重估計 87
5.4 GMM與HMM的結(jié)合 88
5.5 GMM-HMM的訓(xùn)練 94
5.6 模型自適應(yīng) 96
5.6.1 MAP 96
5.6.2 MLLR 97
5.6.3 fMLLR 97
5.6.4 SAT 98
5.7 本章小結(jié) 98
5.8 參考資料 98
思考練習(xí)題 99
第6章 基于HMM的語音識別 100
6.1 建模單元 100
6.2 發(fā)音過程與HMM狀態(tài) 103
6.3 串接HMM 104
6.4 固定語法的識別 108
6.5 隨機(jī)語法的識別 113
6.6 音素的上下文建模 119
6.6.1 協(xié)同發(fā)音 120
6.6.2 上下文建模 121
6.6.3 決策樹 122
6.6.4 問題集 123
6.6.5 三音子模型的訓(xùn)練 128
6.7 本章小結(jié) 129
思考練習(xí)題 130
第7章 DNN-HMM 131
7.1 深度學(xué)習(xí) 131
7.2 DNN 132
7.2.1 激活函數(shù) 133
7.2.2 損失函數(shù) 135
7.2.3 梯度下降算法 136
7.3 DNN與HMM的結(jié)合 138
7.4 不同的DNN結(jié)構(gòu) 142
7.4.1 CNN 143
7.4.2 LSTM 147
7.4.3 GRU 147
7.4.4 TDNN 148
7.4.5 TDNN-F 151
7.5 本章小結(jié) 154
7.6 參考資料 155
思考練習(xí)題 155
第8章 語言模型 156
8.1 n-gram模型 158
8.2 評價指標(biāo)——困惑度 162
8.3 平滑技術(shù) 163
8.3.1 Good-Turing折扣法 163
8.3.2 Witten-Bell折扣法 165
8.3.3 Katz回退法 166
8.3.4 Jelinek-Mercer插值法 169
8.3.5 Kneser-Ney插值法 170
8.4 語言模型的訓(xùn)練 172
8.5 神經(jīng)網(wǎng)絡(luò)語言模型 175
8.6 本章小結(jié) 180
8.7 參考資料 180
思考練習(xí)題 181
第9章 WFST解碼器 183
9.1 基于動態(tài)網(wǎng)絡(luò)的Viterbi解碼 184
9.2 WFST理論 189
9.3 HCLG構(gòu)建 193
9.3.1 H的構(gòu)建 194
9.3.2 C的構(gòu)建 195
9.3.3 L的構(gòu)建 196
9.3.4 G的構(gòu)建 197
9.3.5 HCLG合并 200
9.4 WFST的Viterbi解碼 202
9.4.1 Token的定義 202
9.4.2 Viterbi算法 203
9.5 Lattice解碼 210
9.5.1 主要數(shù)據(jù)結(jié)構(gòu) 211
9.5.2 令牌傳播過程 212
9.5.3 剪枝策略 215
9.5.4 Lattice 216
9.6 本章小結(jié) 218
9.7 參考資料 218
思考練習(xí)題 218
第10章 序列區(qū)分性訓(xùn)練 219
10.1 區(qū)分性準(zhǔn)則 220
10.1.1 MMI 220
10.1.2 BMMI 221
10.1.3 MPE/sMBR 221
10.2 MMI求導(dǎo)過程 222
10.3 Lattice-based MMI 224
10.4 Lattice-free MMI 226
10.5 Kaldi Chain模型 228
10.6 本章小結(jié) 230
10.7 參考資料 230
思考練習(xí)題 231
第11章 端到端語音識別 232
11.1 CTC 233
11.1.1 損失函數(shù) 234
11.1.2 前向算法 238
11.1.3 后向算法 241
11.1.4 求導(dǎo)過程 242
11.1.5 CTC解碼 244
11.2 RNN-T 247
11.3 基于Attention的Encoder-Decoder模型 250
11.4 Hybrid CTC/Attention 253
11.5 Transformer 255
11.6 Conformer 258
11.7 本章小結(jié) 259
11.8 參考資料 259
思考練習(xí)題 261
第12章 Kaldi實踐 262
12.1 下載與安裝Kaldi 263
12.1.1 獲取源代碼 263
12.1.2 編譯 264
12.2 創(chuàng)建和配置基本的工程目錄 265
12.3 aishell語音識別工程 266
12.3.1 數(shù)據(jù)集映射目錄準(zhǔn)備 267
12.3.2 詞典準(zhǔn)備和lang目錄生成 269
12.3.3 語言模型訓(xùn)練 271
12.3.4 聲學(xué)特征提取與倒譜均值歸一化 273
12.3.5 聲學(xué)模型訓(xùn)練與強(qiáng)制對齊 275
12.3.6 解碼測試與指標(biāo)計算 277
12.4 本章小結(jié) 279
第13章 ESPnet實踐 280
13.1 數(shù)據(jù)準(zhǔn)備 280
13.1.1 映射文件準(zhǔn)備 280
13.1.2 特征提取 281
13.1.3 數(shù)據(jù)擴(kuò)增 282
13.1.4 詞典生成 282
13.1.5 數(shù)據(jù)打包 283
13.2 ESPnet配置文件 284
13.3 語言模型訓(xùn)練 286
13.4 聲學(xué)模型訓(xùn)練 287
13.4.1 聲學(xué)模型訓(xùn)練腳本 287
13.4.2 CTC聲學(xué)模型訓(xùn)練 288
13.4.3 Attention聲學(xué)模型訓(xùn)練 289
13.4.4 RNN-T模型訓(xùn)練 290
13.4.5 Transformer模型訓(xùn)練 292
13.5 語音識別解碼 293
13.6 ESPnet訓(xùn)練解碼可視化 294
13.6.1 ESPnet訓(xùn)練參數(shù)可視化 294
13.6.2 ESPnet中的Attention可視化 295
13.6.3 ESPnet解碼結(jié)果可視化 296
13.7 ESPnet2 297
13.7.1 ESPnet2與ESPnet 297
13.7.2 數(shù)據(jù)準(zhǔn)備 298
13.7.3 配置文件 299
13.7.4 模型訓(xùn)練 300
13.7.5 訓(xùn)練日志與可視化 303
13.7.6 性能對比 304
13.8 本章小結(jié) 305
13.9 參考資料 305
第14章 WeNet實踐 306
14.1 數(shù)據(jù)準(zhǔn)備 306
14.1.1 映射文件準(zhǔn)備 306
14.1.2 CMVN計算 307
14.1.3 詞典生成 307
14.1.4 數(shù)據(jù)打包 307
14.2 WeNet配置文件 308
14.3 聲學(xué)模型訓(xùn)練 309
14.3.1 聲學(xué)模型訓(xùn)練腳本 309
14.3.2 Transformer模型訓(xùn)練 310
14.3.3 Conformer模型訓(xùn)練 313
14.3.4 Unified Conformer模型訓(xùn)練 314
14.3.5 U2++ Conformer模型訓(xùn)練 315
14.4 Python環(huán)境解碼 315
14.5 WeNet 模型部署 317
14.5.1 模型導(dǎo)出 317
14.5.2 語言模型訓(xùn)練 317
14.5.3 結(jié)合語言模型的解碼 318
14.6 WeNet 解碼結(jié)果可視化 318
14.7 本章小結(jié) 319
14.8 參考文獻(xiàn) 319
第15章 工業(yè)應(yīng)用實踐 320
15.1 應(yīng)用場景 321
15.2 引擎優(yōu)化 323
15.2.1 Kaldi方案 323
15.2.2 WeNet方案 327
15.3 工程部署 330
15.3.1 SDK封裝 330
15.3.2 語音云平臺 338
15.3.3 Kaldi嵌入式移植 342
15.3.4 WeNet端側(cè)部署 344
15.4 本章小結(jié)