2019年12月7日 星期六

Praat 語音分析筆記 (六) : 共振峰分析

本篇其實是頻譜分析的一部份, 但是因為共振峰是區別母音的最重要聲學特徵, 且 Praat 的 SoundEditor 視窗中有單獨的 Formant 選單, 故將其獨立為一篇. 本系列前面的文章參考 :

Praat 語音分析筆記 (一) : 簡介與軟體下載
Praat 語音分析筆記 (二) : 錄音與存檔匯入
Praat 語音分析筆記 (三) : SoundEditor 操作
Praat 語音分析筆記 (四) : 音高分析
Praat 語音分析筆記 (五) : 頻譜分析


六. 共振峰分析 

Formant (共振峰) 是語音氣流通過發音腔 (vocal tract) 時, 音源 (聲帶) 的頻譜成分與發音腔的自然頻率產生共振, 使得聲波的振幅在這些頻率點增強 (源波與反射波因為相位一樣而形成疊加效應), 這在聲譜圖 (spectrogram) 上便呈現強度峰值 (peak), 特別是母音的共振效應特別明顯. 這些共振峰點峰峰相連成一長條帶, 頻帶由低到高有 F1, F2, F3,與 F4 等.

共振峰的位置反映了語者個人發音腔的動態物理結構與音源信號之間的時變交互作用. 特別是第一共振峰頻率 F1 及第二共振峰頻率F2 與母音發音位置有顯著之關聯. F1 反映了舌位高低 (舌位越高, F1 也越低); 而 F2 則反映了舌位前後 (舌位越前, F2 越高).

共振峰的成因可以從音源濾波器理論來說明, 欲理解此理論只要有上一篇頻譜分析中的頻域觀念即可, 不需要太多數學.


6.1 音源濾波器理論 

使用 Praat 觀察母音與有聲子音之聲譜圖都可看到明顯的共振峰現象, 其成因可用音源濾波器理論 (source-filter theory) 來解釋, 此理論從頻域角度來看信號, 聲帶做為語音的主動信號源, 為近似三角形之頻譜 X(w); 發音腔的模型為一多重帶通濾波器的轉移函數 T(w); 在不考慮唇部氣流發散的高頻增強效應下, 簡化的模型是兩者相乘即為輸出語音之頻譜 Y(w) :

Y(w)=X(w)*T(w)

其中 w 為角頻率=2*圓周率*頻率





共振峰主要是發音腔共振點所致, 發音腔就像一個動態變化的共振器, 發不同的母音時舌頭之動作與咽喉之形狀均不同, 所形塑之共振點不同, 因此不同母音所產生的共振峰也就不一樣, 這使得共振峰成為區別不同母音的最重要聲學特徵. 注意, 共振峰與基本頻率 fo 本質上的不同在於, 共振峰是被動 (passive) 形成的, 而 fo 則是聲帶音源主動 (active) 生成的.


6.2 使用 SoundEditor 擷取共振峰數據 

SoundEditor 視窗有一個 Formants 選單可用來擷取共振峰數據. 以前面從 this_is_a_book.wav 切音出來的 this.wav 的音節為例, 在 Object 視窗按 Open 選單點選 "Read from file" 將 this.wav 匯入物件視窗後, 點選此物件按右方 "Edit & View" 鈕開啟 SoundEditor 視窗, 然後按 Formant 選單點選 "Formant settings" 開啟共振峰設定視窗 :





需要設定的是上面三個欄位 :
  • Maximum formant : 共振峰之頻率上限 (Hz)
    女性語者此欄宜設為 5500, 男性語者, 宜設為 5000, 兒童則設為 8000.
  • Number of formants : 共振峰數目
    預設 5 表示計算 5 個共振峰 F1~F5. 
  • Window length : 分析窗寬度 (秒)
    頻譜分析之分析窗 (切片) 寬度, 寬頻頻譜設為 0.005 秒, 窄頻頻譜設為 0.03 秒, 計算共振峰通常使用寬頻頻譜, 故應設為 0.005 秒. 
另外還要做顯示 formants 之設定, 按 View 選單點選 "Show analyses", 在彈出的視窗中勾選 Show formants 與 Show spectrogram 兩項 :





這樣 SoundEditor 就只顯示聲譜與共振峰分析結果之圖形, 圖中縱向的紅點即為每一個分析窗切片經過演算法計算出來的共振峰, 位置都在頻譜分析的最高峰 (即顏色最暗, 能量最高之頂峰), 由下往上依序為 F1~F5, 沿著時間軸形成橫向的共振峰帶  :




在 SoundEditor 有共振峰出現的地方點一下 (設定游標), 按 Formants 選單點選 "Get first formant" 可取得該時間點第一共振峰 F1 頻率, 可見此 this.wav 在 0.132141 秒處之 F1 為 264 Hz :





其他的共振峰頻率可選取選單上之 second (F2), third (F3), fourth (F4) 等功能項取得, 雖然在共振峰設定中預設計算 5 個共振峰, 但 Formants 選單只提供 F1~F4 的功能項而已.

每一個共振峰都有其頻寬 (band width),  按 Formants 選單點選 "Get first bandwith" 可取得該時間點第一共振峰 F1 的頻寬, 可見此 this.wav 在 0.132141 秒處之 F1 頻寬為 56 Hz :   :





頻寬 (band width) 在信號處理上是指一個帶通濾波器 (band pass filter) 在中心頻率 (center frequency, fc) 左右往下 3dB 點的 fh 與 fl 之間的頻帶, 此頻帶內之功率是全部信號功率的一半, 故左右下 3dB 點又稱為半功率點 :




頻寬在物理上代表一種阻尼 (damping) 作用, 這是對運動的抑制或減弱現象 (例如摩擦力). 在語音聲學中, 共振峰的頻寬與發音腔的能量損耗 (power dissipation) 有關, 例如咽喉, 鼻腔, 口腔的軟組織都會在氣流能量流動時形成阻尼, 造成能量耗損. 共振峰頻寬越大表示能量損失越大, 因此幅射至外部的該頻段能量就越小.

參考 :

https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4490178/
http://support.ircam.fr/docs/AudioSculpt/3.0/co/Formant%20Analysis.html
https://assta.org/proceedings/sst/sst2002/Papers/Millhouse070.pdf


如果要一次取出 F1~F4 全部共振峰, 則可在 Formant 選單點選 "Formant listing", 則該時間點之 F1~F4 會顯示於 Info 視窗中 :





輸出共振峰頻帶可點選 "Draw visible formant contour", 這會在 Picture 視窗中繪製共振峰分布圖 :





也可以點選 "Extract visible formant contour" 擷取共振峰曲線, 這樣會在 Object 視窗中產生一個共振峰物件, 點選此物件後可按右邊的 Querry 按鈕查詢共振峰數據 (頻率或頻寬), 或按 Draw 按鈕於 Picture 視窗繪圖 :





例如查詢與上面 SoundEditor 中時間點 0.132141 秒的 F1 得到一樣的 264 Hz 數據, 頻寬也是一樣 :





小數點後的誤差是因為時間點的小小差異, 頻率通常取整數即可.


6.3 從聲音物件直接產生共振峰物件 

上面關於共振峰的分析全部都是在 SoundEditor 視窗進行, 事實上也可以直接從聲音物件建立共振峰物件, 在 Object 視窗點選 this.wav 的聲音物件, 按右方 Analyse spectrum 鈕點選 "To formant(burg)" 功能項 :




在彈出視窗中同樣要設定三個參數, 其中 Max number of formants 用預設 5 即可, 但 Maximum formant 必須根據語者性別 (男 5000 Hz, 女 5500 Hz) 或年齡 (兒童 8000 Hz) 調整, 然後修改 Window length 為 0.005 秒以取得進行寬頻頻譜 :




這樣在 Object 視窗的物件列表中便出現了一個共振峰物件, 點選此 Formant 物件, 按右方的 Query 按鈕即可查詢共振峰頻率或頻寬等數據 :




也可按 Draw 鈕將共振峰圖形輸出到 Picture 視窗.


6.4 共振峰與母音的關係

前面曾提到共振峰是辨別母音的重要線索 (聲學特徵), 語音學者如 Fant, Peterson, 以及 Barney 等人利用語音合成方式操控共振峰進行母音辨識的研究時發現, 第一共振峰 F1 及第二共振峰 F2 與母音發音位置有顯著之關聯 :
  • F1 與舌位高低有關 (舌位越高 F1 越低)
  • F2 則與舌位前後有關 (舌位越前 F2 越高)
其關係如下圖所示 :




可見 F1 與 F2 的關係剛好與母音的舌位分布相當. 雖然共振峰頻率因人而異, 但不同語者的 F1 與 F2 關係呈現類似結果, 顯示共振峰確實是母音的區別性特徵. 另外, Peter Ladefoged 的研究則指出 F1 與 F2 的差距 F2-F1 更能看出舌位的前後位置 : F2-F1 越大表示母音位置越前面, 反之則越後面.

絕對值因人而異問題, 可以使用語音正規化 (normalization) 方法來消除, 這在語音感知研究中經常用到, 例如德國科學家 Eberhard Zwicker (1924~1990) 在其語音感知的心理學研究中所提出來的巴克量尺  (Bark scale), 用來量化人類聽覺感知中的類化現象.

巴克量尺類似信號理論中的信躁比概念 (SNR, signal noise ratio), 主要是探討人類聽覺系統在噪音的頻寬降低到一個臨界值時, 聽覺敏感度便提高到足以辨別語音, 這個噪音頻寬稱為臨界頻寬 (critical band width), 可用來解釋人耳內耳基底膜 (相當於多頻帶之帶通濾波器) 的聽覺感知功能.

Zwicker 提出一個計算臨界頻寬的公式, 其單位為 Bark :




其中 f 為信號頻率 (單位為 Hz), arctan 為數學上的反正切函數. 利用巴克量尺公式可將共振峰頻率代入 f  計算其巴克值來達成正規化. 根據 V.A. Kozhevnikov 與 L.A. Chistovich 於 1979 年的研究, 人耳區別母音差異的巴克臨界值為 3 巴克, 共振峰差異若低於 3 巴克時, 人耳聽覺將無法識別差異.

語音學家 A. K. Syrdal 與 H. S. Gopal 在 1986 年的研究中, 將美語的母音共振峰轉換成巴克值, 經過這個正規化程序, 發現 F1, F2, F3 與基本頻率 fo 的巴克差值可做為判別母音位置的指標 :




可見以巴克值為度量單位的話, 後母音可用 F3-F2 是否大於 3 巴克來判別;  而低母音則可用 F1-fo 是否大於 3 巴克來判別. 關於母音共振峰的田野調查聲學分析實例, 可參閱鍾榮富老師關於客家話母音的專題研究 :

台灣海陸家話的母音聲學研究

沒有留言 :