一、要求
1.資料是16khz取樣的,需要降取樣到8khz後使用。
2.考慮選擇12維mfcc+12維其差分共24維作為提取的特徵
4.訓練及識別,分別給出訓練集和測試集的識別率。
5.任選一種識別方法(bp/rbf/gmm/dhmm/svm/adaboost)實現識別任務。
6.能夠讀出和所提供資料庫完全一樣格式的資料,並給出識別結果顯示,包括每乙個數字的識別率和最終的平均識別率。
7.描述所進行的一切步驟細節。
二、特徵提取
1.語料資料庫分配
和上乙個實驗所使用的語料庫一致,同樣是分成兩半,一般用來訓練,一般用來測試。
本次試驗我分別採取過以下幾種方法來選擇訓練樣本集和測試樣本集。
① 取每個數字樣本的前一半,例如數字1資料夾下面有280個樣本,選擇前面140額樣本當作測試集。
② 每個數字資料夾下面有280個樣本,每個人是10樣本排列,每次分別取每個人前面5個樣本當作訓練集,後5個當作測試集。
③ 把每個數字下所有樣本當作乙個大集合,分別取出奇數命名的樣本作為訓練集,剩下的偶數命名的樣本便充當測試集,或者取出偶數作為樣本,奇數作為訓練集。
總結發現: 除了第一種方法,其它兩種方法種取樣對最終識別率影響差別不是很大。第三種方法,取奇數命名的檔案樣本的識別率是這三種取法裡面最高的,表明這種這法取得語音頻號特徵也是最全面的。
2.特徵選取
在上一實驗中淺要的分析了mfcc和lp特徵對於單詞識別的優劣,
所以在這個實驗中考慮到魯棒性問題就決定繼續沿用這一特徵來作為識別手段。
3.特徵提取
1. 預濾波:考慮到接下來使用8khz頻率下取樣,保留的將是0-4000hz頻率段的資訊,本次實驗使用了乙個濾波器函式function x = pre_process(y,fs) ,濾波範圍[300,3400]的帶通濾波器對採集到的訊號進行抗混疊濾波。將符合人耳和發聲特性資訊保留。
2. 下取樣:由於matlab中melbank函式預設引數為8000hz,所以為了不造成分幀過程中幀移時長錯誤,再不改變voicebox中函式預設引數前提下,實驗中利用 x=downsample(x,2)將得到的16khz訊號降取樣為8khz取樣率的語音頻號。
3. 端點檢測和歸一化:首先將訊號歸一化x=x/max(abs(x));然後計算設定判定靜音短時能量閾值以及靜音最大。當靜音判定結束之後,標記出訊號strat點,同理如果靜音超過靜音最大長度,標記出end點。這樣在特徵提取時候極大減少訊號中的無用資訊,減少特徵矩陣維度從而極大減少計算量。除了在dtw動態規整有用之外,「靜音」部分帶來所有樣本的mfcc特徵相似度增加,減少了一定的的識別率。
4. mfcc特徵提取:和上乙個實驗提取特診操作順序一致,只是在窗的選擇上使用的是預設值三角窗(triangular shaped filters),在分析窄帶訊號有著較強的抗干擾能力,旁瓣小,沒有負旁瓣。具有很好特徵提取能力以及較好避免了訊號二次汙染。窗長任然是幀數一半平移。
5. 特徵矩陣規整: 雖然經過端點檢測,但是每個樣本訊號長度是不一樣的,所以有些訊號是10幀*24維,有些是4幀*24維,這就造成了儲存特徵的矩陣維度也不同。為了便於後面的特徵模版訓練,需要統一每個樣本特徵維度。本次試驗做法是,檢測到如果某個樣本特徵長度大於5幀,那麼就對其每幀訊號與相鄰的幀進行求取歐式距離來判斷他們的相似度,最後保留歐式距離最大的5幀訊號,這樣即統一了特徵矩陣維度,也去除了幀訊號之間的冗餘度。當判斷這某個樣本特徵長度小於5幀時候,y_mfcc=[x_mfcc;zeros(n-m,n)];然後在後面補0作為訊號靜音特徵。如圖,把14幀訊號特徵整定到了5幀。
圖1. 整定前後特徵舉證對比圖
人臉識別技術在HBase中的探索和應用
一 hbase基礎與儲存的優勢 hbase主要具有五大核心優勢,即海量儲存 列式儲存 易擴充套件 高併發以及稀疏矩陣。hbase所能夠應用的場景包括物件儲存 使用者畫像推薦 聊天訊息實時流 索引 報表以及軌跡資料和監控資料等。日誌記錄 對於離線人臉識別而言,只需要將資料儲存在本地即可,不需要在雲端進...
人臉識別技術在HBase中的探索和應用
一 hbase基礎與儲存的優勢 hbase主要具有五大核心優勢,即海量儲存 列式儲存 易擴充套件 高併發以及稀疏矩陣。hbase所能夠應用的場景包括物件儲存 使用者畫像推薦 聊天訊息實時流 索引 報表以及軌跡資料和監控資料等。日誌記錄 對於離線人臉識別而言,只需要將資料儲存在本地即可,不需要在雲端進...
筆記 特徵臉(PCA在人臉識別領域的應用)
什麼是特徵臉 特徵臉 eigenface 是指用於機器視覺領域中的人臉識別問題的一組特徵向量,該方法被認為是第一種有效的人臉識別方法。pca的具體實現思想見 筆記 主成分分析法pca的原理及計算 在notebook中 from sklearn.datasets import fetch lfw pe...