《PyTorch語音識別實戰(zhàn)》使用PyTorch 2.0作為語音識別的基本框架,循序漸進地引導讀者從搭建環(huán)境開始,逐步深入到語音識別基本理論、算法以及應用實踐,是較好的一本語音識別技術圖書。本書配套示例源碼、數(shù)據(jù)集、PPT課件等資源。
《PyTorch語音識別實戰(zhàn)》分為13章,內容包括語音識別之路、PyTorch 2.0深度學習環(huán)境搭建、音頻信號處理的理論與Python實戰(zhàn)、音頻處理常用工具包Librosa詳解與實戰(zhàn)、基于DNN的語音情緒分類識別、一學就會的深度學習基礎算法、基于PyTorch卷積層的語音情緒分類識別、詞映射與循環(huán)神經(jīng)網(wǎng)絡、基于Whisper的語音轉換實戰(zhàn)、注意力機制與注意力模型詳解、鳥叫的多標簽分類實戰(zhàn)、多模態(tài)語音轉換模型基礎、GLM架構多模態(tài)語音文字轉換實戰(zhàn)。
《PyTorch語音識別實戰(zhàn)》內容詳盡、示例豐富,適合作為語音識別初學者、深度學習初學者、語音識別技術人員的參考書,同時也非常適合作為高等院校或高職高專深度學習、語音識別等課程的教材。
眾多實戰(zhàn)案例,帶你快速掌握語音識別應用開發(fā)
基于特征詞的語音喚醒實戰(zhàn)
短時傅里葉變換實戰(zhàn)
梅爾頻率倒譜系數(shù)實戰(zhàn)
基于音頻特征的聲音聚類實戰(zhàn)
基于深度神經(jīng)網(wǎng)絡的語音情緒識別實戰(zhàn)
基于卷積神經(jīng)網(wǎng)絡的語音情緒識別實戰(zhàn)
基于循環(huán)神經(jīng)網(wǎng)絡的文本內容情感分類實戰(zhàn)
基于Whisper的語音轉換實戰(zhàn)
拼音漢字轉化實戰(zhàn)
鳥叫的多標簽分類實戰(zhàn)
多模態(tài)語音文字轉換實戰(zhàn)
隨著信息科技的日新月異,人工智能已經(jīng)成為新時代經(jīng)濟發(fā)展的引擎,而深度學習作為其背后的強大推動力,正在無聲無息地改變著我們的生活。語音識別,作為人工智能領域中一顆璀璨的明珠,從智能家居到自動駕駛,從語音助手到無數(shù)其他的創(chuàng)新應用,它正在持續(xù)地拓展其應用邊界,改變著人與機器的交流方式。
本書旨在為讀者揭開語音識別的神秘面紗,通過深入淺出的講解和豐富的實踐案例,帶領讀者走進語音識別的奇妙世界。我們不是只停留在理論的探討,而是通過大量的實戰(zhàn)案例,讓讀者親手體驗深度學習的魅力,掌握語音識別的核心技術。
本書以應用實戰(zhàn)為出發(fā)點,結合最新的語音識別深度學習框架進行深入淺出的講解和演示。作者將以多角度、多方面的方式手把手地教會讀者如何進行代碼編寫,同時結合實際案例深入剖析其中的設計模式和模型架構。
總之,本書是一本理論與實踐相結合、全面覆蓋語音識別領域、培養(yǎng)創(chuàng)新思維和解決問題能力的專業(yè)書籍。通過本書的學習和實踐,作者期望每一個讀者都能全面掌握深度學習的程序設計方法和技巧,為未來的實際工作做好充分準備。
本書特點
(1)內容與結構的系統(tǒng)性。本書從語音識別的基本概念、發(fā)展歷程講起,逐步深入到音頻信號處理、深度學習算法、多模態(tài)語音轉換模型等核心領域。每個章節(jié)的內容安排都能做到邏輯清晰、循序漸進,保證了知識的連貫性和易讀性,使讀者能夠在學習的過程中建立起完整的知識體系。
(2)前沿性與創(chuàng)新性。本書站在學術的最前沿,詳細介紹基于深度學習的端到端語音識別、多模態(tài)架構的語音識別與轉換等最新技術。同時,通過介紹GLM架構等多模態(tài)語音文字轉換的實戰(zhàn)內容,展示語音識別技術的創(chuàng)新應用,讓讀者領略到科技創(chuàng)新的無窮魅力。
(3)實戰(zhàn)性與實用性。本書通過大量實戰(zhàn)案例,如基于深度學習的語音喚醒、音頻特征提取、語音情緒分類識別等,讓讀者在動手實踐中掌握語音識別技術的具體應用。這些案例不僅具有代表性,而且貼近實際應用,對于讀者提升實踐能力和解決現(xiàn)實問題具有很強的指導意義。
(4)跨學科融合。本書不僅涵蓋了語音識別領域的專業(yè)知識,還巧妙地融合了音頻信號處理、深度學習算法、自然語言處理等相關學科的基礎知識。這種跨學科的知識融合有助于讀者構建完備的知識體系,并從多個維度深刻領悟語音識別技術的內涵與外延。
(5)語言簡明,易于理解。本書在撰寫過程中注重語言的簡明和表達的準確性,通過生動的比喻和形象的描述,將復雜的技術原理和算法變得通俗易懂。這種寫作風格降低了讀者的閱讀門檻,增強了閱讀過程中的愉悅體驗。
資源下載和技術支持
本書配套示例源碼、數(shù)據(jù)集、PPT課件,請讀者用自己的微信掃描下邊的二維碼下載。如果學習本書的過程中發(fā)現(xiàn)問題或疑問,可發(fā)送郵件至booksaga@163.com,郵件主題為PyTorch語音識別實戰(zhàn)。
適合閱讀本書的讀者
?語音識別初學者。
?深度學習初學者。
?語音識別技術人員。
?高等院校或高職高專相關課程的師生。
?其他對語音識別感興趣的技術人員。
指正與鳴謝
由于筆者的水平有限,加之編寫時間跨度較長,在編寫此書的過程中難免會出現(xiàn)不準確的地方,懇請讀者批評指正。
感謝清華大學出版社所有老師在本書編寫中提供的無私幫助和寶貴建議,正是他們的耐心和支持才讓本書得以順利出版。感謝家人對我的支持和理解。這些都給了我莫大的動力,讓我的努力更加有意義。
著 者
2024年1月
王曉華,高校計算機專業(yè)講師,研究方向為云計算、大數(shù)據(jù)與人工智能。其創(chuàng)作的部分圖書:《從零開始大模型開發(fā)與微調:基于PyTorch與ChatGLM》《PyTorch 2.0深度學習從零開始學》《Python機器學習與可視化分析實戰(zhàn)》《谷歌JAX深度學習從零開始學》《Spark 3.0大數(shù)據(jù)分析與挖掘:基于機器學習》《TensorFlow深度學習應用實踐》《TensorFlow語音識別實戰(zhàn)》《TensorFlow 2.0深度學習從零開始學》《深度學習的數(shù)學原理與實現(xiàn)》。
第1章 語音識別之路 1
1.1 何謂語音識別 1
1.2 語音識別為什么那么難 2
1.3 語音識別之路語音識別的發(fā)展歷程 3
1.3.1 高斯混合-隱馬爾科夫時代 4
1.3.2 深度神經(jīng)網(wǎng)絡-隱馬爾科夫時代 5
1.3.3 基于深度學習的端到端語音識別時代 6
1.3.4 多模態(tài)架構的語音識別與轉換 7
1.4 基于深度學習的語音識別的未來 8
1.5 本章小結 8
第2章 PyTorch 2.0深度學習環(huán)境搭建 9
2.1 環(huán)境搭建1:安裝Python 9
2.1.1 Miniconda的下載與安裝 9
2.1.2 PyCharm的下載與安裝 12
2.1.3 Python代碼小練習:計算softmax函數(shù) 15
2.2 環(huán)境搭建2:安裝PyTorch 2.0 16
2.2.1 Nvidia 10/20/30/40系列顯卡選擇的GPU版本 16
2.2.2 PyTorch 2.0 GPU Nvidia運行庫的安裝 16
2.2.3 PyTorch 2.0小練習:Hello PyTorch 19
2.3 實戰(zhàn):基于特征詞的語音喚醒 20
2.3.1 數(shù)據(jù)的準備 20
2.3.2 數(shù)據(jù)的處理 21
2.3.3 模型的設計 24
2.3.4 模型的數(shù)據(jù)輸入方法 24
2.3.5 模型的訓練 25
2.3.6 模型的結果和展示 26
2.4 本章小結 27
第3章 音頻信號處理的理論與Python實戰(zhàn) 28
3.1 音頻信號的基本理論詳解 28
3.1.1 音頻信號的基本理論 28
3.1.2 音頻信號的時域與頻域 29
3.2 傅里葉變換詳解 30
3.2.1 傅里葉級數(shù) 31
3.2.2 連續(xù)到離散的計算 33
3.2.3 Python中的傅里葉變換實戰(zhàn) 34
3.3 快速傅里葉變換與短時傅里葉變換 38
3.3.1 快速傅里葉變換Python實戰(zhàn) 39
3.3.2 短時傅里葉變換Python實戰(zhàn) 42
3.4 梅爾頻率倒譜系數(shù)Python實戰(zhàn) 44
3.4.1 梅爾頻率倒譜系數(shù)的計算過程 44
3.4.2 梅爾頻率倒譜系數(shù)的Python實現(xiàn) 45
3.5 本章小結 52
第4章 音頻處理工具包Librosa詳解與實戰(zhàn) 53
4.1 音頻特征提取Librosa包基礎使用 53
4.1.1 基于Librosa的音頻信號讀取 53
4.1.2 基于Librosa的音頻多種特征提取 56
4.1.3 其他基于Librosa的音頻特征提取工具 58
4.2 基于音頻特征的聲音聚類實戰(zhàn) 59
4.2.1 數(shù)據(jù)集的準備 59
4.2.2 按標簽類別整合數(shù)據(jù)集 62
4.2.3 音頻特征提取函數(shù) 63
4.2.4 音頻特征提取之數(shù)據(jù)降維 64
4.2.5 音頻特征提取實戰(zhàn) 65
4.3 本章小結 69
第5章 基于深度神經(jīng)網(wǎng)絡的語音情緒分類識別 70
5.1 深度神經(jīng)網(wǎng)絡與多層感知機詳解 70
5.1.1 深度神經(jīng)網(wǎng)絡與多層感知機 70
5.1.2 基于PyTorch 2.0的深度神經(jīng)網(wǎng)絡建模示例 71
5.1.3 交叉熵損失函數(shù)詳解 73
5.2 實戰(zhàn):基于深度神經(jīng)網(wǎng)絡的語音情緒識別 74
5.2.1 情緒數(shù)據(jù)的獲取與標簽的說明 75
5.2.2 情緒數(shù)據(jù)集的讀取 76
5.2.3 基于深度神經(jīng)網(wǎng)絡示例的模型設計和訓練 78
5.3 本章小結 79
第6章 一學就會的深度學習基礎算法 80
6.1 反向傳播神經(jīng)網(wǎng)絡前身歷史 80
6.2 反向傳播神經(jīng)網(wǎng)絡基礎算法詳解 84
6.2.1 最小二乘法詳解 84
6.2.2 梯度下降算法(道士下山的故事) 86
6.2.3 最小二乘法的梯度下降算法及其Python實現(xiàn) 89
6.3 反饋神經(jīng)網(wǎng)絡反向傳播算法介紹 95
6.3.1 深度學習基礎 95
6.3.2 鏈式求導法則 96
6.3.3 反饋神經(jīng)網(wǎng)絡原理與公式推導 97
6.3.4 反饋神經(jīng)網(wǎng)絡原理的激活函數(shù) 103
6.4 本章小結 104
第7章 基于PyTorch卷積層的語音情緒分類識別 105
7.1 卷積運算的基本概念 105
7.1.1 基本卷積運算示例 106
7.1.2 PyTorch中的卷積函數(shù)實現(xiàn)詳解 107
7.1.3 池化運算 109
7.1.4 softmax激活函數(shù) 111
7.1.5 卷積神經(jīng)網(wǎng)絡的原理 112
7.2 基于卷積神經(jīng)網(wǎng)絡的語音情緒分類識別 114
7.2.1 串聯(lián)到并聯(lián)的改變數(shù)據(jù)的準備 114
7.2.2 基于卷積的模型設計 116
7.2.3 模型訓練 117
7.3 PyTorch的深度可分離膨脹卷積詳解 118
7.3.1 深度可分離卷積的定義 119
7.3.2 深度的定義以及不同計算層待訓練參數(shù)的比較 121
7.3.3 膨脹卷積詳解 121
7.4 本章小結 122
第8章 詞映射與循環(huán)神經(jīng)網(wǎng)絡 123
8.1 有趣的詞映射 123
8.1.1 什么是詞映射 124
8.1.2 PyTorch中的詞映射處理函數(shù)詳解 125
8.2 實戰(zhàn):循環(huán)神經(jīng)網(wǎng)絡與文本內容情感分類 126
8.2.1 基于循環(huán)神經(jīng)網(wǎng)絡的中文情感分類準備工作 126
8.2.2 基于循環(huán)神經(jīng)網(wǎng)絡的中文情感分類 128
8.3 循環(huán)神經(jīng)網(wǎng)絡理論講解 131
8.3.1 什么是GRU 131
8.3.2 單向不行,那就雙向 133
8.4 本章小結 134
第9章 基于Whisper的語音轉換實戰(zhàn) 135
9.1 實戰(zhàn):Whisper語音轉換 135
9.1.1 Whisper使用環(huán)境變量配置與模型介紹 135
9.1.2 Whisper模型的使用 137
9.1.3 一學就會的語音轉換Web前端 138
9.2 Whisper模型詳解 141
9.2.1 Whisper模型總體介紹 141
9.2.2 更多基于Whisper的應用 143
9.3 本章小結 144
第10章 注意力機制 146
10.1 注意力機制與模型詳解 146
10.1.1 注意力機制詳解 147
10.1.2 自注意力機制 148
10.1.3 ticks和Layer Normalization 153
10.1.4 多頭自注意力 154
10.2 注意力機制的應用實踐:編碼器 157
10.2.1 編碼器的總體架構 157
10.2.2 回到輸入層:初始詞向量層和位置編碼器層 158
10.2.3 前饋層的實現(xiàn) 161
10.2.4 多層模塊融合的TransformerBlock層 162
10.2.5 編碼器的實現(xiàn) 164
10.3 實戰(zhàn)編碼器:拼音漢字轉換模型 169
10.3.1 漢字拼音數(shù)據(jù)集處理 169
10.3.2 漢字拼音轉換模型的確定 171
10.3.3 模型訓練代碼的編寫 172
10.4 本章小結 174
第11章 鳥叫的多標簽分類實戰(zhàn) 175
11.1 基于語音識別的多標簽分類背景知識詳解 175
11.1.1 多標簽分類不等于多分類 176
11.1.2 多標簽損失函數(shù)Sigmoid BCELoss 176
11.2 實戰(zhàn):鳥叫的多標簽分類 178
11.2.1 鳥叫聲數(shù)據(jù)集的獲取 178
11.2.2 鳥叫聲數(shù)據(jù)處理與可視化 179
11.2.3 鳥叫聲數(shù)據(jù)的批量化數(shù)據(jù)集建立 182
11.2.4 鳥叫分辨深度學習模型的搭建 185
11.2.5 多標簽鳥叫分類模型的訓練與預測 188
11.3 為了更高的準確率:多標簽分類模型的補充內容 190
11.3.1 使用不同的損失函數(shù)提高準確率 190
11.3.2 使用多模型集成的方式完成鳥叫語音識別 192
11.4 本章小結 194
第12章 多模態(tài)語音轉換模型基礎 195
12.1 語音文字轉換的研究歷程與深度學習 195
12.1.1 語音文字轉換的傳統(tǒng)方法 195
12.1.2 語音文字轉換基于深度學習的方法 197
12.1.3 早期深度學習語音文字轉換模型介紹 198
12.2 基于GLM架構的多模態(tài)語音文本轉換模型 202
12.2.1 最強的人工智能模型ChatGLM介紹 202
12.2.2 更加準確、高效和泛化性的多模態(tài)語音轉換架構GLM與GPT2 203
12.3 從零開始的GPT2模型訓練與數(shù)據(jù)輸入輸出詳解 205
12.3.1 開啟低硬件資源GPT2模型的訓練 205
12.3.2 GPT2的輸入輸出結構自回歸性(auto-regression) 206
12.3.3 GPT2模型的輸入格式的實現(xiàn) 208
12.3.4 經(jīng)典GPT2模型的輸出格式詳解與代碼實現(xiàn) 210
12.4 一看就能學會的GPT2模型源碼詳解 212
12.4.1 GPT2模型中的主類 212
12.4.2 GPT2模型中的Block類 219
12.4.3 GPT2模型中的Attention類 224
12.4.4 GPT2模型中的MLP類 231
12.5 具有多樣性生成的GPT2生成函數(shù) 232
12.5.1 創(chuàng)造性函數(shù)的使用與代碼詳解 233
12.5.2 創(chuàng)造性參數(shù)temperature與采樣個數(shù)TopK簡介 234
12.6 本章小結 236
第13章 GLM架構多模態(tài)語音文字轉換實戰(zhàn) 237
13.1 GLM架構詳解 237
13.1.1 GLM模型架構重大突破:旋轉位置編碼 238
13.1.2 添加旋轉位置編碼的注意力機制 239
13.1.3 新型的激活函數(shù)GLU詳解 240
13.1.4 調整架構順序的GLMBlock 240
13.1.5 自定義完整的GLM模型(單文本生成版) 243
13.2 實戰(zhàn):基于GLM的文本生成 247
13.2.1 數(shù)據(jù)集的準備 247
13.2.2 模型的訓練 250
13.2.3 模型的推斷 252
13.3 實戰(zhàn):基于GLM的語音文本轉換 253
13.3.1 數(shù)據(jù)集的準備與特征抽取 253
13.3.2 語音特征融合的方法 255
13.3.3 基于多模態(tài)語音融合的多模態(tài)模型設計 256
13.3.4 模型的訓練 261
13.3.5 模型的推斷 262
13.3.6 多模態(tài)模型準確率提高的方法 263
13.4 本章小結 264