調音器內部原理
線上吉他調音器如何工作?
審閱並更新於 2026-08-15
瞭解瀏覽器如何把麥克風音訊轉换為頻率、找到最近的音符,並顯示琴弦偏低還是偏高。
線上調音器並不像人一樣“聽見”音符。它接收快速變化的聲波,估算聲波每秒重複多少次,再把得到的頻率與音樂音符表進行比較。
1. 瀏覽器獲取麥克風聲音
您授予權限後,Web Audio API 會創建即時音訊流。Guitar-Tuner.org 在本地分析這個音訊流;估算音高不需要上傳或儲存錄音。
音訊由一系列採樣值組成。調音器不會一次處理無限長的音訊流,而是處理短小的資料塊。本網站使用 4096 個採樣的區塊:它足夠長,可以呈現低音吉他聲波的重複週期,又足夠短,可以快速響應。
2. 音高識別寻找重複週期
穩定的樂音會以近似週期性的方式重複。如果一個週期每秒重複 110 次,基頻就是 110 Hz,也就是 A2 的目標頻率。真實琴弦還會產生基頻整數倍的泛音。泛音構成音色,也讓識別更具挑戰。
Guitar-Tuner.org 使用 Aubio。系統會忽略太安靜、超出樂器音域,或在連續窗口中不穩定的讀數,從而減少室內噪聲和撥弦初始尖銳瞬態造成的跳動。
示例:識別空弦 A
三個穩定窗口可能分別估算為 109.7、109.9 和 109.8 Hz。由於這些數值很接近,調音器會接受該訊號,並把約 109.8 Hz 與目標音符比較。最接近的結果是 110 Hz 的 A2。
3. 頻率轉换為音符
十二平均律中的音符按對數規律排列。每升高一個半音,頻率都會乘以 2 的十二次方根。以 A4 = 440 Hz 為基準,最近的音符可按以下方式計算:
音符距離 = 12 × log₂(測得頻率 ÷ 440)
四捨五入到最近的整數半音即可得到音符,剩餘的小數部分就是調音誤差。
4. 音分描述剩餘誤差
僅有最近的音名還不夠。109.8 Hz 和 111 Hz 都可能顯示為 A2,但前者偏低,後者偏高:
音分 = 1200 × log₂(測得頻率 ÷ 目標頻率)
| A2 測量值 | 差值 | 操作提示 |
|---|---|---|
| 109.0 Hz | 約 −16 音分 | 擰緊琴弦 |
| 110.0 Hz | 0 音分 | 音準正確 |
| 111.0 Hz | 約 +16 音分 | 放鬆琴弦 |
為什麼顯示有時會跳動?
- 撥弦過猛:用力撥弦會暫時拉伸琴弦。
- 泛音過強:識別器可能短暫鎖定到更高的泛音。
- 聲音重疊:其他琴弦或室內噪聲會形成競爭訊號。
- 訊號太弱:麥克風距離過遠時,音符難以從噪聲中分離。
- 音符正在衰減:聲音變小時,估算會變得不穩定。
如何獲得清晰的訊號?
- 用手制止當前不需要調的琴弦振動。
- 讓樂器與麥克風保持合理距離。
- 用適中的力度撥弦一次,讓音符自然延續。
- 稍等片刻,讓撥弦開始時的瞬態穩定下來。
- 小幅調整弦鈕並重新撥弦,不要連續不停地旋轉。
麥克風模式與憑聽覺調音
麥克風模式測量音高,並快速給出客觀目標。聽覺模式播放參考音,但需要您自己進行比較。聽覺訓練有助於培養音高感知能力;自動模式則更適合精確檢查音準。
常見問題
調音器會把麥克風音訊發送到伺服器嗎?
不會。分析在瀏覽器內部完成。麥克風權限由瀏覽器管理,您可以隨時在網站設置中撤銷權限。
為什麼顯示瞭錯誤的琴弦?
琴弦可能離目標太遠,或識別器正在跟蹤較強的泛音。請手動選擇琴弦、讓其他弦靜音,並將八度和頻率與預期目標進行比較。