关于音高检测器

我们在阅读了数百条 Reddit 帖子后构建了这个工具,歌手们在其中抱怨八度识别错误、高音区读数不稳定以及实时检测与实际录音之间的差距。我们的目标是打造一个歌手真正有意义的音高检测器——而不仅仅是工程师眼中的那种。

我们要解决的问题

音高检测问题听起来很简单:听音频,报告音符。但歌手们几十年来都知道,现有工具会在一些具体而令人沮丧的方面让他们失望。我们遇到的最常见的三个抱怨是:

我们的方法

我们围绕三个直接解决这些问题的原则构建了这个音高检测器:

  1. 声部频率先验。

    在音高估计运行之前,算法将搜索空间约束到所选声部的频率范围内。男低音被限制在 E2-E4。女高音被限制在 F3-G5。范围之外的次谐波候选被丢弃。这消除了全部六种声部的八度错误。
  2. 明确的置信度报告。

    YIN 音高估计器在产生频率估计的同时已经产生一个置信度值。我们以彩色置信度条的形式直接将这个值展示给用户。歌手始终知道当前读数是否值得信任。
  3. 双轨音高曲线显示。

    我们将录制的音高曲线与实时曲线分开存储,并在同一画布上同时显示两者。歌手现在可以一眼看出多次演唱之间的音准一致性 — 这以前只在专业 DAW 插件中才有。

技术栈

音高检测基于 YIN 算法(de Cheveigné & Kawahara, 2002),使用 TypeScript 实现,并通过 Web Audio API 完全在浏览器中运行。任何音频数据都不会传输到服务器。该应用使用 Next.js 构建,部署在 Cloudflare Workers 上,实现快速全球响应,无冷启动延迟。

所有工具页面 — 音高检测器、人声音高分析器、歌唱音符检测器、音域测试、吉他调音器、电吉他调音器、贝斯调音器、尤克里里调音器、小提琴调音器、半音阶调音器、调性查找器、节拍器、音调发生器和声音测试 — 都在构建时静态生成,意味着它们从 Cloudflare 边缘缓存即时加载,每次访问无需服务器端处理。

隐私承诺

我们不收集任何个人数据。没有账号、没有追踪 cookie、没有音频上传。麦克风流在浏览器标签页内内存中处理,在你关闭或离开页面时即被丢弃。页面发出的唯一外部请求是加载帮助维持服务免费的 Google AdSense 广告。广告网络的行为受其各自隐私政策的约束。

相关免费音乐工具