W10/聲音實驗室
多媒體系統・MS-115 日間部・Week 10

聽見數字,看見聲音

聲音進到電腦後,就是一串按時間排列的數字。前半段(W10-0 先修)用耳朵確認取樣率和位元深度不夠時會怎樣;後半段(W10)用三種視角看同一段聲音。每個實驗都有播放鍵,先戴上耳機,音量調小一點。

波形 Waveform聲音什麼時候發生?
頻譜 FFT整段有哪些頻率?
頻譜圖 STFT哪些頻率在什麼時候出現?
W10-0 先修聲音怎麼變成數字
先修 1・10-0.2

正弦波:頻率和振幅

頻率是每秒振動幾次(Hz),決定音高;振幅是振動多大。下圖畫出前 10 毫秒。

動手:頻率加倍(440 → 880),圖上的波峰數量和聽到的音高怎麼變?
一個週期(毫秒)
10 毫秒內的週期數
先修 2・10-0.3–10-0.4

取樣率不夠:聽見混疊

取樣率要大於最高頻率的兩倍(Nyquist)。不夠時,取樣點會連成另一條比較慢的波,電腦就把頻率認錯了。

取樣率
動手:440 Hz 配 500 Hz 取樣,聽起來變成幾 Hz?把訊號調到 480 Hz 再聽一次,結果和你算的一樣嗎?

灰線:原本的訊號 橘點:取樣點 橘線:取樣點連成的波

需要的最低取樣率(2 × 頻率)
取樣後聽到的頻率

先修 3・10-0.5

位元深度不夠:聲音變髒

每個 Sample 只能存成 2 的 bit 次方種數值。層級越少,波形變成越粗的階梯,多出來的誤差聽起來像沙沙聲。取樣率維持 22,050 Hz 不變。

Bit Depth
動手:從 16 bit 一路切到 2 bit,音高有變嗎?什麼時候開始聽得出雜音?
可用的數值層級
平均誤差(RMS)
先修 4・10-0.7

複雜的聲音=正弦波疊加

把 440 Hz 和它的 2、3、4 倍(諧波)疊在一起,音高不變,聲音變厚。右下的頻譜就是第十章 FFT 的預告:把聲音拆回各個頻率。

上:波形(前 5 毫秒) 下:頻譜(0–2000 Hz)

先修 5・10-0.8

聲音檔有多大?

未壓縮的 WAV:取樣率 × 位元深度 ÷ 8 × 聲道數 × 秒數。

取樣率
位元深度
聲道
檔案大小
位元率

W10聲音的取樣、波形與頻譜
實驗 1・10.6–10.18

同一段聲音,三種視角

選一段聲音,同時看波形、FFT 頻譜和頻譜圖。注意每一種圖能回答什麼、不能回答什麼。

動手:比較「三個音依序」和「三個音同時」:FFT 頻譜幾乎一樣,哪一張圖看得出差別?

波形:時間 × 振幅

FFT 頻譜:頻率 × 強度(0–4000 Hz)

頻譜圖:時間 × 頻率(0–4000 Hz),顏色=強度,0 dB = 這張圖最強的位置

實驗 2・10.7–10.9

Peak、RMS 與 dB

一段小聲的音,中間有一聲拍手。Peak 是最大的一瞬間,RMS 是整段的平均強度。振幅乘 2,大約加 6 dB。

動手:增益從 1 調到 2,Peak 的 dB 變多少?拿掉拍手,Peak 和 RMS 哪一個變比較多?
Peak(dBFS)
RMS(dBFS)

實驗 3・10.19–10.22

視窗要切多長?

測試聲音:400 Hz + 520 Hz 持續,中間有一個短促的「喀」。視窗長,兩條線分得開;視窗短,「喀」的時間抓得準。沒有一組參數同時最好。

Window Length(n_fft)
Hop Length
動手:n_fft 從 4096 切到 256:兩條橫線還分得開嗎?中間的「喀」變清楚還是變模糊?

頻譜圖(0–1200 Hz),取樣率 22,050 Hz

Δf = sr ÷ n_fft
一個視窗的長度
Δt = hop ÷ sr
實驗 4・10.25

讀頻譜圖:聽聲音,配圖

先播放每個聲音,再替每張頻譜圖選出對應的聲音。提示:水平線、平行線、斜線、短直條。

實驗 5・選做

分析你自己的錄音

用手機錄一段 3–10 秒的聲音(說話、拍手、吹口哨),存成 WAV 或 MP3 上傳。檔案只在你的瀏覽器裡分析,不會上傳到任何地方。

n_fft

上:波形 下:頻譜圖(0–8000 Hz)。還沒上傳時,顯示的是一段示範聲音。