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