-
>
全國計算機等級考試最新真考題庫模擬考場及詳解·二級MSOffice高級應用
-
>
決戰行測5000題(言語理解與表達)
-
>
軟件性能測試.分析與調優實踐之路
-
>
第一行代碼Android
-
>
JAVA持續交付
-
>
EXCEL最強教科書(完全版)(全彩印刷)
-
>
深度學習
掌控Python(人工智能之語音識別) 版權信息
- ISBN:9787030721051
- 條形碼:9787030721051 ; 978-7-03-072105-1
- 裝幀:一般膠版紙
- 冊數:暫無
- 重量:暫無
- 所屬分類:>
掌控Python(人工智能之語音識別) 本書特色
適讀人群 :有一定Python基礎而想要學習語音識別內容的讀者,青少年編程、中小學生本書內容實用,貼近行業發展前沿,結構合理,讀者群廣泛
掌控Python(人工智能之語音識別) 內容簡介
本書圍繞人工智能領域重要的語音識別技術,面向有一定Python基礎的讀者講解語音識別的原理、技術發展和實現方法。 本書共6章,主要內容包括語音識別概述、音頻文件的可視化、人工智能和機器學習、語音轉換為文本、語音反饋與交互、語音助手。 本書案例豐富、代碼規范,適合作為有一定Python基礎而想要學習語音識別內容的讀者的進階參考書,還可用作青少年編程、中小學生人工智能教育的教材。
掌控Python(人工智能之語音識別) 目錄
第1章 語音識別概述
1.1 語音識別技術 1
1.2 語音識別技術的發展 1
1.3 語音識別技術的原理 3
1.4 錄制及播放音頻 6
第2章 音頻文件的可視化
2.1 NumPy模塊 12
2.2 Matplotlib模塊 21
2.3 音頻可視化 33
第3章 人工智能和機器學習
3.1 人工智能 47
3.2 人工神經網絡 49
3.3 監督式學習與非監督式學習 51
3.4 scikit-learn模塊 53
第4章 語音轉換為文本
4.1 幀的處理 67
4.2 百度語音識別 71
4.3 錄制并識別語音 79
第5章 語音反饋與交互
5.1 語音反饋 91
5.2 掌控板錄音 117
5.3 掌控板語音識別 121
第6章 語音助手
6.1 本地語音識別模塊 131
6.2 語音喚醒 143
掌控Python(人工智能之語音識別) 節選
第1章語音識別概述 小愛同學、小度小度、天貓精靈、叮咚叮咚 我們身邊好像突然就出現了一些可以和我們“聊天”的音箱,圖1.1所示為百度智能音箱。 圖1.1百度智能音箱“小度小度” 智能音箱與傳統音箱*大的區別就是能夠聽懂我們的語音,人們通過說話就能與電子設備溝通,實現信息的檢索與查找,比如查詢天氣、設定鬧鐘、播放音樂等。這其中*關鍵的就是語音識別技術。 1.1語音識別技術 語音識別通俗地講就是將人類語音中的詞匯內容轉換為計算機可讀的輸入,讓機器知道我們在說什么,這是一門交叉學科,涉及的領域包括信號處理、模式識別、概率論和信息論、發聲機理和聽覺機理、人工智能,等等。*近幾年隨著人工智能技術的快速發展,語音識別技術取得顯著進步,開始從實驗室走向市場。 1.2語音識別技術的發展 自從機器出現以后,通過語音與機器進行交流一直是科研人員的夢想。應用語音識別技術的**個裝置應該是1952年貝爾研究所Davis等人研發的能識別10個英文數字發音的實驗系統。 1960年,英國Denes等人成功研制出**個計算機語音識別系統。而大規模的語音識別研究是在進入了20世紀70年代以后,在小詞匯量、孤立詞的識別方面取得了實質性的進展。 20世紀80年代,語音識別技術研究的重點逐漸轉向大詞匯量、非特定人連續語音識別,包括噪聲環境下的語音識別和會話(口語)識別系統。在研究思路上也發生了重大變化,即由傳統的基于標準模板匹配的技術思路轉向基于統計模型的技術思路。當時出現了兩項非常重要的技術:隱馬爾可夫模型(HMM:Hidden Markov Model)和N-gram語言模型。此外還提出了將神經網絡技術引入語音識別領域的技術思路。20世紀90年代以后,在語音識別的系統框架方面并沒有什么重大突破,不過在語音識別技術的應用及產品化方面進展很大。 進入21世紀,隨著深度學習的不斷發展,神經網絡之父Hinton提出深度置信網絡(DBN:Deep Belief Networks),2009年,Hinton和學生Mohamed將深度神經網絡(DNN:Deep Neural Networks)應用于語音識別,在小詞匯量連續語音識別任務TIMIT上獲得成功。 中國的語音識別技術研究始于1958年,中國科學院聲學研究所利用電子管電路實現了識別10個元音的實驗系統。1973年,中國科學院聲學研究所開始研究計算機語音識別。由于當時條件的限制,中國的語音識別技術研究工作一直處于緩慢發展的階段。 20世紀80年代以后,隨著計算機應用技術在中國逐漸普及和廣泛應用,以及數字信號技術的進一步發展,國內許多單位具備了研究語音識別技術的基本條件。與此同時,國際上語音識別技術在多年沉寂之后重又成為研究的熱點,迅速發展。在這種形式下,國內許多單位紛紛投入這項研究工作中。 1986年3月,中國高技術研究發展計劃(863計劃)啟動,語音識別技術作為智能計算機系統研究的一個重要組成部分被專門列為研究課題。在863計劃的支持下,中國開始了有組織的語音識別技術的研究,中國的語音識別技術進入了一個前所未有的發展階段。 1.3語音識別技術的原理 語音識別系統可以分為:特定人與非特定人的識別、獨立詞與連續詞的識別、小詞匯量與大詞匯量以及無限詞匯量的識別。但無論哪種語音識別系統,其基本原理和處理方法都大體類似。 1.3.1WAV文件 大家都知道語音(或聲音)實際上是一種波,聲波經過拾音器(話筒或麥克風)采集后被轉換成連續變化的電信號。電信號再經過放大和濾波,然后被電子設備以一個固定的頻率進行采樣,每個采樣值就是當時檢測到的電信號幅值。接著電子設備會將采樣值由模擬信號量化為由二進制數表示的數字信號。*后是對數字信號編碼,并將編碼后的內容存儲為音頻流數據。在計算機應用中,能夠達到高保真水平的是PCM(Pulse Code Modulation,脈沖編碼調制)編碼。編碼之后有些應用為了節省存儲空間,存儲前還會對音頻流數據進行壓縮,常見的MP3文件就是一種壓縮后的音頻流數據。 說明 雖然PCM是數字音頻中*佳的保真水平,但并不意味著PCM就和原音頻一樣毫無失真。PCM只是能做到*大限度的無限接近,但依然是有失真的。 處理音頻流數據時,必須是非壓縮的純波形文件。WAV就是*常見的無壓縮聲音文件格式之一(也是采用PCM編碼),是微軟公司專門為Windows操作系統開發的一種標準數字音頻文件,*早于1991年8月出現在Windows3.1操作系統上。WAV文件里存儲的內容除了一個文件頭以外,就是聲音波形的采樣點。WAV文件能記錄各種單聲道或立體聲的聲音信息,并且能保證聲音不失真。不過相比于MP3文件,WAV文件非常大。一般來說,由WAV文件還原的聲音的音質取決于聲音采樣樣本的多少(即采樣頻率的高低),采樣頻率越高,音質就越好,但WAV文件也就越大。 一個WAV文件的參數包括采樣頻率、采樣精度和聲道數,這幾個參數介紹如下。 (1)采樣頻率:每秒鐘采集音頻數據的次數。采樣頻率越高,音頻保真度越高。常用的采樣頻率包括11025Hz、22050Hz、44100Hz和48000Hz四種,其中,11025Hz的采樣頻率相當于電話聲音的效果;22050Hz的采樣頻率相當于FM調頻廣播的效果;44100Hz的采樣頻率相當于CD聲音的效果。 (2)采樣精度:這是用來衡量聲音波動變化的參數,也是聲卡的分辨率。它的數值越大,聲卡的分辨率就越高。目前計算機配置的16位聲卡的采樣精度包括8位和16位兩種。一般講話以8位11.025kHz采樣就能較好地還原。 (3)聲道數:有單聲道和立體聲之分,單聲道的聲音只能使一個喇叭發聲(有的聲卡會將單聲道信息處理成兩個喇叭同時輸出),立體聲的聲音可以使兩個喇叭都發聲(一般左右聲道各有分工),這樣更能感受到音頻信息的空間效果。顯然,立體聲數據還原特性更接近人們的聽力習慣,但采集的數據量會增加1倍。 1.3.2聲學特征提取 有了數字化的音頻文件之后,語音識別的第二步是進行聲學特征提取。這是語音識別*重要的一環。提取的特征參數必須滿足以下要求: (1)提取的特征參數能有效代表語音特征,具有很好的區分性。 (2)各階參數之間有良好的獨立性。 (3)特征參數要計算方便,*好有高效的算法,以保證語音識別的實時實現。 簡單來說,聲學特征提取的過程如下: 首先在語音識別之前,通常先把首尾端的靜音切除,降低對后續步驟造成的干擾。 其次對聲音分幀,也就是把聲音切成一小段一小段,每小段稱為一幀。分幀操作不是簡單地切開,而是通過移動窗函數來實現。幀與幀之間一般是有交疊的。對于典型的語音識別任務,推薦一幀的時間為20~30ms。在這段時間內,人類*多只能說一個音素(根據語音的自然屬性劃分出來的*小語音單位)。幀與幀之間的重疊率可以根據需要在25%~75%之間選擇,通常來說,設置為50%。 分幀后,語音就變成了很多小段。不過波形在時域上幾乎沒有描述能力,因此,必須對波形進行變換。常見的一種變換方法是提取MFCC(Mel-Frequency Cepstral Coefficients,梅爾頻率倒譜系數)特征。梅爾頻率是基于人耳聽覺特性提出來的,它與赫茲頻率成非線性對應關系。梅爾頻率倒譜系數(MFCC)則是利用它們之間的這種關系,計算得到的赫茲頻譜特征。經過變換,每一幀波形會變成一個多維向量,可以簡單地理解為這個向量包含了這幀語音的內容信息。實際應用中,變換又分為預加重、分幀、加窗、快速傅里葉變換(FFT:Fast Fourier Transform)、梅爾濾波器組、離散余弦變換(DCT:Discrete Cosine Transform)等幾個步驟,而聲學特征也不是只有MFCC這一種。 1.3.3匹配識別 提取音頻的聲學特征之后,語音識別的*后一步就是通過訓練好的模型將這些特征進行分類,進而依據判定準則找出*佳匹配結果。 聲學模型是語音識別系統中非常重要的一個組件,對不同基本單元的區分能力直接關系到識別結果。語音識別本質上是一個模式識別的過程,而模式識別的核心是分類器和分類決策的問題。 通常,在孤立詞、中小詞匯量識別中使用動態時間規整(DTW:Dynamic Time Warping)分類器會有良好的識別效果,并且識別速度快,系統開銷小,是語音識別中很成功的匹配算法。但是,在大詞匯量、非特定人語音識別的時候,DTW識別效果就會急劇下降,這時候使用隱馬爾可夫模型(HMM)進行訓練識別效果會有明顯提升,由于在傳統語音識別中一般采用連續的高斯混合模型(GMM:Gaussian Mixture Model)對狀態輸出密度函數進行刻畫,因此又稱為GMM-HMM構架。不過隨著人工智能(尤其是深度學習)的發展,通過深度神經網絡(DNN)來完成聲學建模,形成所謂的DNN-HMM構架來取代傳統的GMM-HMM構架,在語音識別上也取得了很好的效果。 1.4錄制及播放音頻 編寫Python代碼實現錄制和播放音頻,需要用到wave模塊和PyAudio模塊。 1.4.1wave模塊 wave模塊是Python標準庫中的模塊,它提供了一個處理WAV聲音格式文件的接口,讓用戶可以讀寫、分析及創建WAV文件。它不支持壓縮/解壓,但是支持單聲道/立體聲。 如果希望打開一個WAV文件,可以使用wave模塊中的函數 wave.open(file, mode = None) **個參數file是一個字符串,表示要打開的WAV文件的路徑以及文件名。 第二個參數mode表示文件的讀寫模式,如果是rb表示只讀模式,返回一個Wave_read對象,如果是wb表示只寫模式,返回一個Wave_write對象。 說明 打開WAV文件是不支持同時讀寫的。 對于Wave_read對象來說,其包含以下方法: (1)Wave_read.close(),關閉打開的數據流并使對象不可用。當對象銷毀時會自動調用。 (2)Wave_read.getnchannels(),返回聲道數,1為單聲道,2為立體聲。 (3)Wave_read.getsampwidth(),返回采樣字節長度。 (4)Wave_read.getframerate(),返回采樣頻率。 (5)Wave_read.getnframes(),返回音頻總幀數。
掌控Python(人工智能之語音識別) 作者簡介
程晨,國內資深創客、科技作家,具有十余年嵌入式開發經驗,編著、翻譯出版開源硬件、3D打印、機器人、物聯網領域相關圖書十余本,國內最早的Arduino和3D打印技術普及圖書都出自他手。他是機械工業出版社特聘技術顧問,曾任北京航空航天大學軟件學院特聘講師,參與了清華大學、北京郵電大學等多個高校的創新性課程設計。
- >
隨園食單
- >
月亮虎
- >
山海經
- >
經典常談
- >
姑媽的寶刀
- >
莉莉和章魚
- >
羅庸西南聯大授課錄
- >
回憶愛瑪儂