分幀加窗處理
預加重
爲了消除發聲過程中,聲帶和嘴脣造成的效應,來補償語音信號受到發音系統所壓抑的高頻部分。並且能突顯高頻的共振峯。
簡單理解就是在頻域上面都乘以一個係數,這個係數跟頻率成正相關,所以高頻的幅值會有所提升。
分幀(chunk)
傅里葉變換要求輸入的信號的平穩的。
語音信號在宏觀上是不平穩的,在微觀上是平穩的,具有短時平穩性(10---30ms內可以認爲語音信號近似不變),這個就可以把語音信號分爲一些短段來進行處理,每一個短段稱爲一幀(CHUNK)。
如果後續操作需要加窗,則在分幀的時候,不要背靠背地截取,而是相互重疊一部分。相鄰兩幀的起始位置的時間差叫做幀移(STRIDE)。
加窗
加窗即與一個窗函數相乘,加窗之後是爲了進行傅里葉展開.
- 使全局更加連續,避免出現吉布斯效應
- 加窗時候,原本沒有周期性的語音信號呈現出週期函數的部分特徵。
加窗的代價是一幀信號的兩端部分被削弱了,所以在分幀的時候,幀與幀之間需要有重疊。
傅里葉變換
對一幀信號做傅里葉變換得到的結果叫做頻譜
對語音信號處理主要的數學工具是傅里葉變換,而傅里葉變換是研究整個時間域和頻率域的關係。不過,當運用計算機實現工程測試信號處理時,不可能對無限長的信號進行測量和運算,而是取其有限的時間片段進行分析。
常見變量
CHUNK_DURATION_MS
一幀的時間長度,單位ms
CHUNK_SIZE_FRAMES = FRAME_RATE * (CHUNK_DURATION_MS / 1000)
一幀包含的frame個數
STRIDE_MS
窗口滑動的時間長度,單位ms
STRIDE_FRAMES = FRAME_RATE * (WINDOW_STRIDE_MS / 1000)
窗口滑動的frame個數
SPECTROGRAM_LENGTH=(N_FRAMES–CHUNK_SIZE_FRAMES)/ STRIDE_FRAMES+1
語譜圖寬度