波形、頻譜和語譜


1.聲音最直接的表示方式是波形,英文叫waveform,就是你貼的左邊那張圖。另外兩種表示方式(頻譜和語譜圖)下文再說。波形的橫軸是時間(所以波形也叫聲音的時域表示),縱軸的含義並不重要,可以理解成位移(聲帶或者耳機膜的位置)或者壓強。

當橫軸的分辨率不高的時候,語音的波形看起來就是像你貼的圖中一樣,呈現一個個的三角形。這些三角形的輪廓叫作波形的包絡envelope)。包絡的大小代表了聲音的響度。一般來說,每一個音節會對應着一個三角形,因為一般地每個音節含有一個元音,而元音比輔音聽起來響亮。但例外也是有的,比如:1) 像/s/這樣的音,持續時間比較長,也會形成一個三角形;2) 爆破音(尤其是送氣爆破音,如/p/)可能會在瞬時聚集大量能量,在波形的包絡上就體現為一個脈沖。

下面這張圖中上方的子圖,是我自己讀單詞pass /pæs/的錄音。它的橫坐標已經被我拉開了一些,但其實這個波形是由兩個“三角形”組成的。0.05秒處那個小突起是爆破音/p/,0.05秒到0.3秒是元音/æ/,0.3到0.58秒是輔音/s/。


如果你把橫軸的分辨率調高,比如只觀察0.02s秒甚至更短時間內的波形,你就可以看到波形的精細結構fine structure),像上圖的下面兩個子圖。波形的精細結構可能呈現兩種情況:一種是有周期性的,比如左邊那段波形(圖中顯示了兩個周期多一點),這種波形一般是元音或者輔音中的鼻音、濁擦音以及/l/、/r/等;另一種是亂的,比如右邊那段波形,這種波形一般是輔音中的清擦音。輔音中的爆破音,則往往表現為一小段靜音加一個脈沖(如pass開頭的/p/)。

2. 看完了聲音的時域表示,我們再來看它的頻域表示——頻譜spectrum)。它是由一小段波形做傅里葉變換(Fourier transform)之后取模得到的。注意,必須是一小段波形,太長了弄出來的東西(比如你貼的右邊的圖)就沒意義了!這樣的一小段波形(通常在0.02~0.05s這樣的數量級)稱為一frame)。下面是我讀的pass的波形中,以0.17s和0.4s為中心截取0.04s波形經傅里葉變換得到的頻譜。頻譜的橫軸是頻率;我錄音的采樣率用的是16000 Hz,頻譜的頻率范圍也是0 ~ 16000 Hz。但由於0 ~ 8000 Hz和8000 ~ 16000 Hz的頻譜是對稱的,所以一般只畫0 ~ 8000 Hz的部分。

頻譜跟波形一樣,也有包絡和精細結構。你把橫軸壓縮,看到的就是包絡;把橫軸拉開,看到的就是精細結構。我上面這兩張圖使得二者都能看到。

第一個頻譜是元音/æ/的頻譜,可以看到它的精細結構是有周期性的,每隔108 Hz出現一個峰。從這兒也可以看出來,語音不是一個單獨的頻率,而是由許多頻率的簡諧振動疊加而成的。第一個峰叫基音,其余的峰叫泛音。第一個峰的頻率(也是相鄰峰的間隔)叫作基頻fundamental frequency),也叫音高pitch),常記作f_0。有時說“一個音的頻率”,就是特指基頻。基頻的倒數叫基音周期。你再看看上面元音/æ/的波形的周期,大約是0.009 s,跟基頻108 Hz吻合。頻譜上每個峰的高度是不一樣的,這些峰的高度之比決定了音色timbre)。不過對於語音來說,一般沒有必要精確地描寫每個峰的高度,而是用“共振峰”(formant)來描述音色。共振峰指的是包絡的峰。在我這個圖中,忽略精細結構,可以看到0~1000 Hz形成一個比較寬的峰,1800 Hz附近形成一個比較窄的峰。共振峰的頻率一般用f_1f_2等等來表示。上圖中,f_1是多少很難精確地讀出來,但f_2 \approx 1800 \text{Hz}。當然,在2800 Hz、3800 Hz、5000 Hz處還有第三、四、五共振峰,但它們與第一、二共振峰相比就弱了許多。除了元音以外,輔音中的鼻音、濁擦音以及/l/、/r/等也具有這種頻譜,可以討論基頻和共振峰頻率(不過濁擦音一般不討論共振峰頻率)。

第二個頻譜是輔音/s/的頻譜。可以看出它的精細結構是沒有周期性的,所以就無所謂基頻。一般也不提這種頻譜的共振峰。清擦音的頻譜一般都是這樣。

2.5 在回答你的第三個問題之前,我們先來看一下聲音的第三種表示方式——語譜圖spectrogram)。上面說過,頻譜只能表示一小段聲音。那么,如果我想觀察一整段語音信號的頻域特性,要怎么辦呢?我們可以把一整段語音信號截成許多幀,把它們各自的頻譜“豎”起來(即用縱軸表示頻率),用顏色的深淺來代替頻譜強度,再把所有幀的頻譜橫向並排起來(即用橫軸表示時間),就得到了語譜圖,它可以稱為聲音的時頻域表示。下面我就偷懶,不用Matlab自己畫語譜圖,而用Cool Edit繪制上面“pass”的語譜圖,如下:

注意橫軸是時間,縱軸是頻率,顏色越亮代表強度越大。可以觀察一下0.17s和0.4s處,是不是跟我上面畫的頻譜相似?然后再試着從這張語譜圖上讀出元音/æ/的第二共振峰頻率。

語譜圖的好處是可以直觀地看出共振峰頻率的變化。我上面讀的“pass”中只有一個單元音,如果有雙元音就會非常明顯了。比如下面這張我讀的“eye” /aɪ/,可以非常明顯地看出在元音從/a/向/ɪ/過渡的階段(0.2 ~ 0.25s),f_1在降低,而f_2在升高。

3. 元音與共振峰的關系已經研究得比較透徹了,簡單地說:
1) 開口度越大,f_1越高;
2) 舌位越靠前,f_2越高;
3) 不圓唇元音的f_3比圓唇元音高。
例如,/ɑ/是開、后、不圓唇元音,所以f_1高,f_2低,f_3高;/y/(即漢語拼音的ü)是閉、前、圓唇元音,所以f_1低,f_2高,f_3低。
也許題主見過下圖那樣的元音圖(vowel chart),我把f_1f_2的變化方向標了上去。

f_3最明顯的體現其實是在英語的輔音/r/中,例如下面我讀的erase /ɪ'reɪz/的語譜圖,可以看到輔音/r/處(0.19s左右)f_3明顯低,把f_2也壓下去了。

清擦音可以根據能量集中的頻段來分辨。下面是我讀的/f/, /θ/, /s/, /ʃ/的語譜圖。濁擦音會在清擦音的基礎上有周期性的精細結構。

爆破音的爆破時間很短,在語譜圖上一般較難分辨。

題主問的“兩個音之間的音是什么樣子”,就要分情況討論了。
1) 如果是兩個元音,那么可以在元音圖上找到兩個元音,取它們連線的中點。這對應着把f_1f_2分別取平均。
2) 如果是兩個清擦音,那么可以把它們的頻譜取平均,這樣聽起來應該是個四不像(后來我做了實驗,結果見這里:Mixture of Unvoiced Fricatives)。
3) 樓主提到的/t/和/ʃ/屬於不同類型的輔音,很難定義它們“之間”是什么東西。
 
 
鏈接:https://www.zhihu.com/question/27126800/answer/35376174


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM