Presentation is loading. Please wait.

Presentation is loading. Please wait.

32位元處理器之定點數MFCC演算法的改進與探討 Improvement and Discussion of MFCC Algorithm on 32-bit Fixed-point Processors 學生:陳奕宏 指導教授:張智星.

Similar presentations


Presentation on theme: "32位元處理器之定點數MFCC演算法的改進與探討 Improvement and Discussion of MFCC Algorithm on 32-bit Fixed-point Processors 學生:陳奕宏 指導教授:張智星."— Presentation transcript:

1 32位元處理器之定點數MFCC演算法的改進與探討 Improvement and Discussion of MFCC Algorithm on 32-bit Fixed-point Processors 學生:陳奕宏 指導教授:張智星

2 Outline 研究簡介 參考資料與相關研究 基礎理論 方法改進 實驗數據與分析 結論及未來工作

3 研究簡介 嵌入式語音之應用: 手機上聲控撥號系統 嵌入式語音學習軟體 Smart Phone 與PDA 上的語音辨識
PMP (Portable Multi-media Player) 上的語音辨識與控制

4 研究簡介 實作上的困難 嵌入式系統上的記憶體容量相對於PC來的小 嵌入式系統上的處理器 (CPU) 運算時脈較低
嵌入式系統上並未搭載浮點運算器 (FPU) 演算法由浮點資料型態更改為整數型態時,所造成的誤差

5 參考資料與相關研究 Jia-Ching Wang, Jhing-Fa Wang, Yu-Sheng Weng, “Chip design of MFCC Extraction for Speech Recognition”, INTEGRATION, the VLSI journal 32 (2002) 111–131 Soontorn Oraintara, Ying-Jui Chen, Trunong Q. Nguyen, “Integer Fast Fourier Transformation”, IEEE Transactions on Signal Processing, Vol. 50, NO.3, March 2002 Po-Chien Hsueh, Jyh-Shing Roger Jang, “Embedded Speech Recognition”, Master Thesis, July 2004 Chin-Lung Hart Su, Jyh-Shing Roger Jang “Speech Recognition on 32-bit Fixed-point Processors: Implementation & Discussions”, Master Thesis, July 2005

6 基礎理論:語音特徵參數擷取 常見的語音特徵參數擷取的方法: 線性預測編碼 (Linear Predictive Coding)
梅爾倒頻譜係數 (Mel-Scale Frequency Cepstral Coefficients) 線性預測編碼 梅爾倒頻譜係數 運算量 運算量較低 運算量較高 強韌度 雜音大時,辨識率降低 雜音大時,仍能維持一定的辨識率

7 基礎理論:MFCC 流程 語音訊號 三角帶通濾波器 Logarithm DCT 音框化 與 計算能量 1st order
Regression 2nd order 預強調 Pre-emphasis 漢明窗 快速傅立葉轉換 39 dimensions MFCC

8 基礎理論:MFCC-音框化與取能量 音框化 計算能量 人類的語音訊號在20ms~30ms會呈現半穩態
取音框大小320個訊號點,重疊範圍160個訊號點,作為一個語音特徵之觀測單位 計算能量 計算每一個音框的能量,作為MFCC第13個參數 取能量數學式:

9 基礎理論:MFCC-預強調 消除並補償聲帶與嘴唇所產生壓抑高頻的效應 凸顯高頻的共振峰 預強調數學式:

10 基礎理論:MFCC-漢明窗 增加音框與音框間的左右連續性 避免往後作快速傅立葉轉換 (FFT)產生較多的訊號,導致分析上的誤差及錯誤產生
漢明窗數學式:

11 基礎理論:MFCC-快速傅立葉轉換 將在時域上的訊號轉換成頻率域,使得我們較容易從能量的分佈來觀測語音訊號的特性
離散傅立葉轉換(DFT)數學式: 快速傅立葉轉換,則運用DFT中有複數對偶之特性,來加速運算

12 基礎理論: MFCC-三角帶通濾波器與計算對數能量
梅爾頻率數學式: 將FFT後所得的能量頻譜,乘上一組M個的三角帶通濾波器來降低資料維度 將所得M個頻帶能量計算ln,取得對數能量

13 基礎理論:MFCC-離散餘弦轉換 離散餘弦數學式: 26維的資料由頻率域轉成時域上12維的資料 運算量較IDFT低

14 基礎理論:MFCC-差量倒頻譜 差量倒頻譜數學式: 運用兩次差量計算出Delta與Acceleration參數,來表示MFCC對於時間的變化

15 方法改進:觀測語料資訊 TCC300與TIMIT語料資訊 TCC300 Corpus TIMIT Corpus Speaker
150 males and 150 females 483 males and 192 females Sampling rate 16 kHz Bits per sample 16 bits Total files 8913 6300 Total Time 26.34 hours 5.38 hours

16 方法改進:MFCC-計算能量 計算能量的數學式: 避免資料溢位,我們將上述數學式子改寫為:

17 方法改進:MFCC-計算能量-TCC300 sv 以e0, e2, …e8, 代入運算,得到TCC300語料發生資料溢位的機率

18 方法改進:MFCC-計算能量-TIMIT
sv 以e0, e2, …e8, 代入運算,得到TIMIT語料發生資料溢位的機率

19 方法改進:MFCC-計算能量 TCC300計算能量: TIMIT計算能量:

20 方法改進:MFCC-預強調 預強調數學式: 將a放大214倍: 預強調數學式改寫成:

21 方法改進:MFCC-漢明窗 乘上漢明窗後訊後數學式: 建立整數漢明窗表:

22 方法改進:MFCC-漢明窗 漢明窗放大不同的倍率圖

23 方法改進:MFCC-漢明窗 不同的放大倍率,資料鑑別度的差異

24 方法改進:MFCC-漢明窗 避免資料溢位與兼顧資料離散鑑別度,因此取放大係數 為214 數學式改寫成:

25 方法改進:MFCC-SIN表的建立 建立整數的SIN表,運用查表的方式來代替原本運用泰勒展開式原理,來運算的浮點數SIN函式
Weight Cepstrum 快速傅立葉轉換 (FFT)

26 方法改進:MFCC-SIN表的建立- Weight Cepstrum
總共有12個值需要做SIN運算,因此我們將經過SIN運算後之值放大214倍,並存入SIN表內 ftemp = PI / cepLifter; lby2 = cepLifter / 2.0f; FOR cepNumCounter = 1 TO numCepCoef DO cepWin[cepNumCounter] = 1.0f + lby2*sin(cepNumCounter * ftemp); END DO Cepstrum Lifter:22 Number of Cepstrum coefficent:12 需經 SIN 運算之值

27 方法改進:MFCC-SIN表的建立 -快速傅立葉轉換
FFT 及 FFT 副函式之虛擬碼: TPI = 需經sin 運算之值 sub-routine of fft n為 fft所要計算的點數 需經sin 運算之值 function of fft

28 方法改進:MFCC-SIN表的建立 -快速傅立葉轉換
FFT副函式中需經SIN運算的值: FFT函式中需經SIN運算之值: Index 2 Index 1 Round 8 Round 7 Round 6 Round 5 Round 4 Round 3 Round 2 Round 1 Round 1 Index 2 Index 1

29 方法改進:MFCC-SIN表的建立 建立包含30個元素大小,並放大214倍的整數SIN表 表的結構: Weight Cepstrum
12個整數資料 FFT 副函式 所需計算的SIN值 16個整數資料 FFT 函式 所需計算的SIN值 2個整數資料

30 方法改進:MFCC-三角帶通濾波器 三角帶通濾波器數學式:

31 方法改進:MFCC-三角帶通濾波器 建立一個可包含256個元素,整數 表 ,其中爲避免資料溢位,我們將之改寫為: 實部 虛部 能量

32 方法改進:MFCC-三角帶通濾波器 TCC300語料 的最大值與不同放大倍率之 表相乘後發生資料溢位的機率圖

33 方法改進:MFCC-三角帶通濾波器 TIMIT語料 的最大值與不同放大倍率之 表 相乘後發生資料溢位的機率圖

34 方法改進:MFCC-三角帶通濾波器 的值放大211倍,並存入整數 表內 將三角帶通濾波器的數學式改寫成:

35 方法改進:MFCC-COS表的建立 建立整數的COS表,運用查表的方式來代替原本運用泰勒展開式原理來作運算的浮點數COS函式
MFCC中使用到COS運算處有離散餘弦轉換 (DCT) ,數學式:

36 方法改進:MFCC-COS表的建立 DCT 虛擬碼:
Cepstrum 參數數目:12 需經COS運算之值 三角濾通器個數:26 總共有312個值需要做COS運算,因此我們將經過COS運算後之值放大214倍,存入COS表內

37 方法改進:MFCC-對數表的建立 避免直接使用內建浮點數之對數函式 建立相對應的整數對數表,提高運算速度
建立適當大小的整數對數表,降低對數表所佔的記憶體空間 保持一定的精準度

38 方法改進:MFCC-對數表的建立 自然對數函式特性:

39 方法改進:MFCC-對數表的建立 將y軸切割成等距離,計算出x軸相對應之值,將之存入對應表

40 方法改進:MFCC-對數表的建立 利用Binary Search找出所要查表的值,相對應的Index即是查表完後的對數值 10 25 53
ln(X) = 3 X = 64 10 25 53 98 182 401 Index 1 Index 2 Index 3 Index 4 Index 5 Index 6

41 方法改進:MFCC-開平方根表的建立 避免直接使用標準浮點數之開平方根函式 建立相對應的開平方根表,提高運算速度
建立適當大小的開平方根表,降低開平方根表所佔的記憶體空間 保持一定的精準度

42 方法改進:MFCC-開平方根表的建立 將y軸切割成等距離,計算出x軸相對應之值,將之存入對應表

43 方法改進:MFCC-表的資訊 元素個數 表的個數 所需記憶體大小 查詢時間 先前的對數表 283211 3 1.08MB 我們的對數表
15526 1 0.058MB 我們的開方根表 16384 0.06MB

44 實驗數據與分析:誤差公式 使用四種誤差:

45 實驗數據與分析:COS and SIN Table 誤差
最大誤差 最大相對誤差 平均誤差 平均相對誤差 先前的做法 2 (%) (%) 我們的做法 5.81E-05 100 (%) 2.43E-05 (%) SIN 表的誤差 SIN 表 最大誤差 最大相對誤差 平均誤差 平均相對誤差 先前的做法 9.7E-04 100 (%) 4.7E-04 (%) 我們的做法 5.64E-05 2.45E-05 (%)

46 實驗數據與分析:COS and SIN Table大小
Size of COS Table SIN Table 先前的方法 4KB 我們的方法 1.22KB 0.12KB 節省空間 (%) % 97.073%

47 實驗數據與分析:LOG及開方根表的誤差 LOG 表的誤差 開方根表的誤差 LOG 表 最大誤差 最大相對誤差 平均誤差 平均相對誤差
先前的做法 9.0011 100 (%) 7.7191 (%) 我們的做法 0.0167 (%) 開方根表 最大誤差 最大相對誤差 平均誤差 平均相對誤差 我們的做法 (%) 0.375 (%)

48 實驗數據與分析:TCC300-MFCC所有步驟之誤差表
先前方法的誤差: Maximum Average Absolute error Relative error Energy % % Pre-emphasis % % Windowing 100% % FFT % % Triangular filter % Logarithm % % DCT 5.3998 % % Weight Cepstrum % % Delta % Acceleration %

49 實驗數據與分析:TCC300-MFCC所有步驟之誤差表
我們方法的誤差: Maximum Average Absolute error Relative error Energy % % Pre-emphasis % % Windowing 100% % FFT % % Triangular filter % Logarithm % % DCT % 0.1166 % Weight Cepstrum % 0.907 % Delta 0.5213 % Acceleration % %

50 實驗數據與分析:TCC300-MFCC所有步驟之誤差表-平均相對誤差比較
比較圖:

51 實驗數據與分析:TIMIT-MFCC所有步驟之誤差表
先前方法的誤差: Maximum Average Absolute error Relative error Energy % % Pre-emphasis 100 % % Windowing % FFT % % Triangular filter % Logarithm 3.7583 % 0.1113 % DCT 4.9989 % 0.1751 % Weight Cepstrum % % Delta % % Acceleration % %

52 實驗數據與分析:TIMIT-MFCC所有步驟之誤差表
我們方法的誤差: Maximum Average Absolute error Relative error Energy % % Pre-emphasis 100 % % Windowing % FFT % % Triangular filter % Logarithm % % DCT % % Weight Cepstrum % % Delta % % Acceleration 0.2733 %

53 實驗數據與分析:TIMIT-MFCC所有步驟之誤差表-平均相對誤差比較
比較圖:

54 實驗數據與分析:辨識率比較 TCC300 測試語句: TIMIT:Free Phone Decoding Testing Data
Content Tang Poem Speaker 7 Males and 1 Female Sample Rate 16 kHz Bits Per Sample 16 bits Total 2331 Files = 3.2 hours

55 實驗數據與分析:辨識率比較 TCC300 TIMIT 先前的方法 我們的方法 辨識率 88.37% 89.45% 先前的方法 我們的方法
48.66% 47.41%

56 實驗數據與分析:錯誤分析 開方根表與標準開方根函數的誤差 LOG、SIN及COS表誤差均比先前的方法小,與開方根的誤差相互抵銷
先前的方法誤差雖然較大一些,但是MFCC的變化趨勢較接近浮點數MFCC的變化趨勢

57 結論及未來工作 結論: 未來工作: 我們的方法大幅度縮小表所佔的記憶體空間 MFCC一半以上的流程中,誤差值降低約4~12%
辨識率也維持在一定的水準 未來工作: 採用更低維度的特徵來訓練語料 採用自動化方式去計算MFCC各個流程中所需適當放大倍率的參數 採用更短的資料長度,如16-bits之資料長度來儲存資料,以便將ASR移植到16-bits micro processor

58 謝謝


Download ppt "32位元處理器之定點數MFCC演算法的改進與探討 Improvement and Discussion of MFCC Algorithm on 32-bit Fixed-point Processors 學生:陳奕宏 指導教授:張智星."

Similar presentations


Ads by Google