调音器内部原理

在线吉他调音器如何工作?

审核并更新于 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 Hz0 音分音准正确
111.0 Hz约 +16 音分放松琴弦

为什么显示有时会跳动?

  • 拨弦过猛:用力拨弦会暂时拉伸琴弦。
  • 泛音过强:识别器可能短暂锁定到更高的泛音。
  • 声音重叠:其他琴弦或室内噪声会形成竞争信号。
  • 信号太弱:麦克风距离过远时,音符难以从噪声中分离。
  • 音符正在衰减:声音变小时,估算会变得不稳定。

如何获得清晰的信号?

  1. 用手制止当前不需要调的琴弦振动。
  2. 让乐器与麦克风保持合理距离。
  3. 用适中的力度拨弦一次,让音符自然延续。
  4. 稍等片刻,让拨弦开始时的瞬态稳定下来。
  5. 小幅调整弦钮并重新拨弦,不要连续不停地旋转。

麦克风模式与凭听觉调音

麦克风模式测量音高,并快速给出客观目标。听觉模式播放参考音,但需要您自己进行比较。听觉训练有助于培养音高感知能力;自动模式则更适合精确检查音准。

常见问题

调音器会把麦克风音频发送到服务器吗?

不会。分析在浏览器内部完成。麦克风权限由浏览器管理,您可以随时在网站设置中撤销权限。

为什么显示了错误的琴弦?

琴弦可能离目标太远,或识别器正在跟踪较强的泛音。请手动选择琴弦、让其他弦静音,并将八度和频率与预期目标进行比较。