tft每日頭條

 > 生活

 > 語音信号處理和自然語言處理

語音信号處理和自然語言處理

生活 更新时间:2024-07-29 19:13:46
内容提要

1.數字信号處理基礎

  • 基礎知識
  • 傅裡葉分析

2.常用特征提取

  • 特征提取流程
  • Fbank
  • MfCC
1.數字信号處理基礎1.1模拟信号到數字信号的轉化(ADC)—— 采樣和量化
  • 以正弦波為例(圖a)

語音信号處理和自然語言處理(語音信号處理以及特征提取)1

    • 對于一個正弦波

語音信号處理和自然語言處理(語音信号處理以及特征提取)2

    • 其中f_0是信号本身的頻率,單位是HZ,即一秒内的周期數
    • 如果我們對此正弦波進行采樣,每隔t_s秒進行一次采樣,并使用一定範圍的離散數值表示采樣值,則可以得到采樣後的離散信号

語音信号處理和自然語言處理(語音信号處理以及特征提取)3

    • 公式(2)即為離散信号的定義
      • 其中,t_s為采樣周期
      • f_s = 1/t_s,為采樣頻率,或者采樣密度,表示一秒之内采樣的點數,t_s為采樣周期
      • n = 0,1,......為離散整數序列
    • 對圖(a)進行采樣得到圖(b)

語音信号處理和自然語言處理(語音信号處理以及特征提取)4

  • Q1:那麼給定一個正弦波采樣後的序列,如圖(b),如何恢複出一個連續的正弦波?
1.2頻率混疊現象
  • 首先,給出如下的離散序列如圖(a),要求畫出其對應的連續正弦波

語音信号處理和自然語言處理(語音信号處理以及特征提取)5

  • 對于該離散序列,可給出如圖(b)不同的正弦波,也就是說,不同頻率的正弦波,經過采樣後出現了完全相同的離散信号,\textcolor{red}{why?}

語音信号處理和自然語言處理(語音信号處理以及特征提取)6

  • 可作如下解釋,對于離散信号的定義可做變形,其中m為任意整數

語音信号處理和自然語言處理(語音信号處理以及特征提取)7

  • 再做如下替換,令 m = kn,所以 m/(nt_s) = k/t_s = kf_s,其中f_s = 1/t_s,k為整數,因為n也為整數,所以m必為整數,

語音信号處理和自然語言處理(語音信号處理以及特征提取)8

  • 對比公式(2)和(4),發現初始頻率為f_0的正弦波和初始頻率為f_0 kf_s的正弦波,在經過采樣周期為t_s的采樣後,兩者的離散信号相同

Q2:為什麼會出現頻率混疊這種現象呢?

答:肯定存在一個正弦波采樣不滿足奈奎斯特定理

1.3奈奎斯特定理
  • 采樣頻率大于信号最大頻率的兩倍

語音信号處理和自然語言處理(語音信号處理以及特征提取)9

  • 即,在原始信号的一個周期内,至少要采樣兩個點,才能有效地杜絕頻率混疊問題

頻率混疊中的圖(b)顯然不滿足奈奎斯特定理,故産生了頻率混疊

1.4離散傅裡葉變換(DFT)
  • 為什麼要進行DFT?
  • DFT将時域信号變換到頻域,分析信号中的頻率成分
  • 理解:對于剛剛的正弦波,很明顯隻有一種頻率,而對于語音而言,通常是各種頻率的正弦波相互疊加,這時候如果橫軸還是為 t 的話就不好分析這個信号,而将橫軸變換為頻率 f 後,這些疊加的正弦波就會在 f = f_0,f_1,...,f_n上顯示出n個峰值,即代表一共有n種不同的頻率,橫看成嶺側成峰,如下圖

語音信号處理和自然語言處理(語音信号處理以及特征提取)10

  • 什麼信号可以進行DFT?
  • 時域離散且周期的信号
  • 非周期離散信号可以進行DFT嗎?
  • 需要進行周期延拓【也就是将當前信号作為整個信号的一個周期,然後使用這一個周期的信号去進行DFT】
  • 傅裡葉家族

語音信号處理和自然語言處理(語音信号處理以及特征提取)11

1.4.1DFT的定義

給定一個長度為N的時域離散信号x(n),對應的離散頻域序列為X(m)為:

語音信号處理和自然語言處理(語音信号處理以及特征提取)12

  • 其中,j = \sqrt{-1}
  • e為自然對數底
  • m = 0,1,2,...,N-1,頻率索引
  • X(m)為DFT的第m個輸出
  • 根據歐拉公式,DFT的公式還可以變換為:

語音信号處理和自然語言處理(語音信号處理以及特征提取)13

  • DFT本質上是一個線性變換

語音信号處理和自然語言處理(語音信号處理以及特征提取)14

1.4.2DFT的性質
  • 性質一:對稱性,對于實數信号,有

語音信号處理和自然語言處理(語音信号處理以及特征提取)15

語音信号處理和自然語言處理(語音信号處理以及特征提取)16

  • 如上圖所示,DFT之後的離散頻率序列的幅度具有對稱性,因此在進行N點的DFT特征提取後,隻需要保留N/2 1個點。語音信号特征提取時,一般使用512點DFT,由于對稱性,我們隻需要保留257個有效點。
  • 性質2:X(m)實際上表示的是“譜密度”,如果對一個幅度為A實正弦波進行N點DFT,則DFT之後,對應頻率上的幅度M和A之間的關系為:

語音信号處理和自然語言處理(語音信号處理以及特征提取)17

  • DFT之後的頻域序列X(m)的幅值實際上是一個“密度”的概念,通俗講,即單位帶寬上有多少信号存在

語音信号處理和自然語言處理(語音信号處理以及特征提取)18

  • 性質3:DFT的線性
  • 如果x_{sum}(n) = x_1(n) x_2(n),則對應的頻域上有:X_{sum}(n) = X_1(n) X_2(n)
  • 性質4:時移性

對x(n)左移k個采樣點,得到x_{shift}(n) =x(n-k),對x_{shift}(n)進行DFT,有

語音信号處理和自然語言處理(語音信号處理以及特征提取)19

1.4.3DFT的頻率軸
  • 頻率分辨率:f_s/N,表示最小的頻率間隔。N越大,頻率分辨率越高,在頻域上,第m個點所表示的分析頻率(原始頻率)為:

語音信号處理和自然語言處理(語音信号處理以及特征提取)20

  • 從這個角度也可以理解X(m)的幅值,體現了原信号中頻率為\frac{m}{N}f_s的信号強度

語音信号處理和自然語言處理(語音信号處理以及特征提取)21

  • 對于上圖 m = 1時,1/8* f_s = 1000,m = 2 時間,2/8* f_s = 2000

為了提高DFT頻率軸的分辨率,而不會影響原始信号的頻率成分。我們可以将時域長度為N的信号x(n) 補0,增加信号的長度,從而提高頻率軸分辨率。對信号進行補0的操作,不會影響DFT的結果,這在FFT(快速傅裡葉變換)中和語音信号分析中非常常見。比如,在語音特征提取階段,對于16k采樣率的信号,一幀語音信号長度為400個采樣點,為了進行512點的FFT,通常将400個點補0,得到512個采樣點,最後隻需要前257個點。

2.Fbank和MFCC特征提取

語音信号處理和自然語言處理(語音信号處理以及特征提取)22

Inverse Fourier transform of logarithm of spectrum 對數譜的逆傅裡葉變換

2.1 Step1 預加重
  • 為什麼需要預加重?
  • 提高信号高頻部分的能量,高頻信号在傳遞過程中,衰減較快,但是高頻部分又蘊含很多對語音識别有利的特征,因此,在特征提取部分,需要提高高頻部分能量
  • 預加重濾波器就是一個一階高通濾波器,給定時域輸入信号x[n],預加重之後的信号為

語音信号處理和自然語言處理(語音信号處理以及特征提取)23

  • 公式解讀:直觀解釋: 預加重是一個高通濾波器,因此,低頻信号(即時域上信号變換慢的信号)将被抑制;從公式(13)中,我們知道
    • 如果信号x是低頻信号(變化較慢),那麼x[n] 和 x[n-1] 的值應該很接近,當在接近1的時候,[]−[−1] 接近于0,此信号的幅度将被大大抑制;
    • 如果x是高頻信号(變化很快),那麼x[n] 和x[n-1] 的值将相差很大,[]−[−1] 的值不會趨近0,此信号的幅度還能保持,可以通過此濾波器
2.2 Step2 加窗分幀
  • 為什麼需要加窗?
    • 語音信号為非平穩信号,其統計屬性是随着時間變化的,以漢語為例,一句話中包含很多聲母和韻母,不同的拼音,發音的特點很明顯是不一樣的;
    • 但是!語音信号又具有短時平穩的屬性,比如漢語裡一個聲母或者韻母,往往隻會持續幾十到幾百毫秒,在這一個發音單元裡,語音信号表現出明顯的穩定性,規律性,也就是在很短的時間裡呈現出穩定性
    • 在進行語音識别的時候,對于一句話,識别的過程也是以較小的發音單元(音素、字、字節)為單位進行識别,因此用滑動窗來提取短時片段,
  • 幀長、幀移、窗函數的概念,對于采樣率為16kHz的信号,幀長、幀移一般為25ms、10ms,即400和160個采樣點
  • 分幀的過程,在時域上,即用一個窗函數和原始信号函數進行相乘:

語音信号處理和自然語言處理(語音信号處理以及特征提取)24

  • w[n]稱為窗函數,常用的窗函數有:
  • 矩形窗:

語音信号處理和自然語言處理(語音信号處理以及特征提取)25

  • 漢明(Hamming)窗:

語音信号處理和自然語言處理(語音信号處理以及特征提取)26

  • 為什麼不直接使用矩形窗?
  • 加窗的過程,實際上是在時域上将信号截斷,窗函數與信号在時域相乘,就等于對應的頻域示進行卷積(*),矩形窗主瓣窄,但是旁瓣較大(紅色部分),将其與原信号的頻域表示進行卷積,就會導緻頻率洩露。

語音信号處理和自然語言處理(語音信号處理以及特征提取)27

2.3 Step3 DFT

在經過上一步的加窗分幀後,會将原語音信号分割成很多個小段的語音信号,但這個小段語音信号并不是在時域上離散周期的,因此需要周期延拓,把這400個采樣點認為是某個語音信号的一個周期來進行DFT

  • DFT的作用:将上一步分幀之後的語音幀,由時域變換到頻域,取DFT系數的模,得到譜特征

語音信号處理和自然語言處理(語音信号處理以及特征提取)28

  • 上圖展示了語譜圖的生成過程:
    • 加窗分幀
    • 将每一幀信号進行DFT(FFT),如第t幀信号,DFT系數為X_t(m),m = 0,1,...N
    • 将每一幀DFT系數按照時間順序排列起來,得到一個矩陣Y \epsilon C^{T*N},且Y[t,m] = X_t(m)
    • 語譜圖是一個三維圖,橫軸表示時間(t),縱軸表示頻率,顔色的深淺表示當前時頻點上幅度的大小|Y[t,m]|
2.4Step4 梅爾濾波器組和對數操作
  • DFT得到了每個頻帶上信号的能量,但是人耳對于頻率的感知不是等間隔的,而是近似于對數的
  • 将線性頻率轉換為梅爾頻率,梅爾頻率與線性頻率的轉換公式為:

語音信号處理和自然語言處理(語音信号處理以及特征提取)29

  • 梅爾三角濾波器組:根據起始頻率、中間頻率和截止頻率,确定各濾波器的系數

語音信号處理和自然語言處理(語音信号處理以及特征提取)30

  • 梅爾濾波器組設計
    • 确定濾波器組數目P
    • 根據采樣頻率f_s,DFT點數N,濾波器個數P,在梅爾域上等間隔的産生每個濾波器的起始頻率、中間頻率和截至頻率,注意:上一個濾波器的中間頻率是下一個濾波器的起始頻率
    • 将梅爾域上每個三角濾波器的起始、中間和截止頻率轉換線性頻率域,并對DFT之後的譜特征進行濾波,得到P個濾波器組能量,進行log 操作,得到Fbank特征
  • MFCC在Fbank特征基礎上繼續進行IDFT變換等操作

語音信号處理和自然語言處理(語音信号處理以及特征提取)31

上圖中,左邊的倒譜明顯是有兩種正弦波複合而成,紅線所示的正弦波與比較尖銳的正弦波(即高頻和低頻),低頻的稱為譜包絡,高頻的稱之為譜細節,而譜包絡的峰值稱為共振峰,頻域信号可以分解成譜包絡(Envelope)和譜細節的乘積,不同音素的譜包絡和共振峰具有區分性,為了提取譜包絡,進行對數操作,即右邊的變換

對X[m] = H[m]E[m]進行對數操作後,可變換為log|X[m]| = log|H[m]| log|E[m]|,此時譜包絡和譜細節都将被提取到

Step5 IDFT

語音信号處理和自然語言處理(語音信号處理以及特征提取)32

語音信号處理和自然語言處理(語音信号處理以及特征提取)33

Step6 動态特征計算
  • 一階差分(Delta,Δ),類比于速度,簡單計算方法

語音信号處理和自然語言處理(語音信号處理以及特征提取)34

  • 二階差分(Delta delta,ΔΔ),類比加速度,簡單計算方法

語音信号處理和自然語言處理(語音信号處理以及特征提取)35

Step7 能量計算

語音信号處理和自然語言處理(語音信号處理以及特征提取)36

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved