1. 程式人生 > >語音筆記:時域分析

語音筆記:時域分析

分段 間距 ron 比較 毫秒 一句話 彌補 font 完成

  語音信號處理要達到的一個目標,就是弄清楚語音中各個頻率成分的分布。做這件事情的數學工具是傅裏葉變換,但傅裏葉變換要求輸入信號是平穩的,而語音在宏觀上來看是不平穩的(波形很不均勻)。語音信號特征是隨時間變化而變化的,是一個非平穩的隨機過程。但從微觀上看,雖然語音信號具有時變特征,但在一個短時間內其特征基本保持不變(肌肉運動有慣性,從一個狀態到到另一個狀態的轉變不可能瞬間完成),我們稱之為語音的“短時平穩性”。所有對語音的分析和處理必須建立在“短時”的基礎上,即對語音信號采用分段處理,每一段成為一幀。通常語音在10~30ms之內是保持相對平穩的,所以幀長一般取為10~30ms,截取後的每一幀信號,便可以做傅裏葉變換了。

  下圖中這段語音的前三分之一和後三分之二明顯不一樣,所以整體來看語音信號不平穩。紅框框出的部分是一幀,在這一幀內部的信號可以看成平穩的。

技術分享圖片

  

  取出來的一幀信號,在做傅裏葉變換之前,要先進行“加窗”的操作,即與一個“窗函數”相乘,如下圖所示:

技術分享圖片

  加窗的目的是讓一幀信號的幅度在兩端漸變到 0。漸變對傅裏葉變換有好處,可以提高變換結果(即頻譜)的分辨率。加窗的代價是一幀信號兩端的部分被削弱了,沒有像中央的部分那樣得到重視。彌補的辦法是,幀不要背靠背地截取,而是相互重疊一部分。相鄰兩幀的起始位置的時間差叫做幀移,常見的取法是取為幀長的一半,或者固定取為 10 毫秒。

  對一幀信號做傅裏葉變換,得到的結果叫頻譜,它就是下圖中的藍線:

技術分享圖片

  

  圖中的橫軸是頻率,縱軸是幅度。頻譜上就能看出這幀語音在 480 和 580 赫茲附近的能量比較強。語音的頻譜,常常呈現出“精細結構”和“包絡”兩種模式。“精細結構”就是藍線上的一個個小峰,它們在橫軸上的間距就是基頻,它體現了語音的音高——峰越稀疏,基頻越高,音高也越高。“包絡”則是連接這些小峰峰頂的平滑曲線(紅線),它代表了口型,即發的是哪個音。包絡上的峰叫共振峰,圖中能看出四個,分別在 500、1700、2450、3800 赫茲附近。有經驗的人,根據共振峰的位置,就能看出發的是什麽音。

對每一幀信號都做這樣的傅裏葉變換,就可以知道音高和口型隨時間的變化情況,也就能識別出一句話說的是什麽了。


參考: 《語音與信號處理》 第三版 哈爾濱工業大學出版社 知乎 王赟 Maigo

語音筆記:時域分析