音视频#音乐播放器

OnKey:听你唱歌就知道哪里跑调的开源 Mac 练歌软件

开源免费的 Mac 唱歌训练器:放 Spotify 或 Apple Music 跟唱,旋律学在本地,音高实时画在音符条上逐行打分,MIT 开源。

项目资料

GitHub Ecosystem
仓库地址github.com/dsmurrell/onkey
许可证
MIT
主语言
Rust
星标
335
核查时间
2026-10-27

以上快照资料以核查当日为准,可能随版本或运营策略变化。

OnKey 的官网首页:深紫底色上是应用图标和一句宣传语,右侧是应用窗口截图,紫色音符条滚向播放头,绿色与红色的音高线叠在其上

跟着原唱唱歌,自己听着还行,录下来一放才发现好几句都跑了调,又说不准是哪个音没唱准——市面上的练歌应用多数要你用它们的曲库,或者塞满翻唱。开发者 dsmurrell 在 Show HN 里说自己就是「唱歌难听的人」,因为常用的练歌应用曲库里塞满非原唱而自己动手做了一个:OnKey 是一款开源(MIT)免费的 Mac 唱歌训练器,你在 Spotify、Apple Music 或浏览器的 YouTube 里放歌跟唱,它第一次会先给歌词,歌放完就在本机把原唱的旋律学下来;之后再放同一首,音符条向你滚来,你的音高实时画在音符条上面,唱准了是绿色,跑了调看得清清楚楚,唱完还有逐行报告和总分。仓库 2026 年 10 月 18 日建库,10 月 22 日发布 v0.1.0 并登上 Hacker News 首页(235 分、28 条评论,截至 2026-10-27 有 335 Star)。

OnKey 的官网首页:深紫底色上是应用图标和一句宣传语,右侧是应用窗口截图,紫色音符条滚向播放头,绿色与红色的音高线叠在其上

OnKey 的练歌界面:音符条滚向播放头,演唱者的音高实时叠加绘制,在音准上时显示绿色

核心功能

  • 放原唱跟着唱:不自带曲库也不下载音乐,Spotify、Apple Music、YouTube 都能当音源;首次播放先抓歌词,歌曲播完 OnKey 自动学习原唱旋律,无需人工标注。
  • 设备端学旋律:模型在 Mac 本地把人声从伴奏里分离,CREPE 算法逐帧追踪歌手音高,再由音符模型整理成每个音节一根的音符条;学好的歌存在本机,下次播放时靠音频本身对位。
  • 实时音高叠加:唱的时候你的音高画在音符条上,绿了才叫唱准;低八度也算数,稍微晚一点不扣分,评分规则公开在官网 Scoring 页。
  • 逐行报告与分享:唱完给每行的准度报告;分享出去的短视频只含你的声音和音高线,不带伴奏音乐。
  • 隐私边界写得清楚:录音与学到的歌不离开 Mac,无账号无埋点;联网请求仅限 Shazam 识曲、LRCLIB 歌词、iTunes 元数据和 GitHub 更新检查,设置里可逐项关闭。

典型使用场景

  • 自己在家练歌:想知道自己到底哪里跑调的人,用它对着原唱逐句纠偏,比对着 App 自带翻唱练更有参照。
  • 不想被曲库绑住的人:歌单在 Spotify 里,就在 Spotify 里练;这首歌 App 没有,就用你自己的音源。
  • Apple Silicon 的 Mac 用户:M1 以上、macOS 14.2 以上,DMG 下载拖进 Applications 即用。

快速上手

从 releases 页下载 OnKey.dmg(v0.1.0,2026-10-22 发布),拖进 Applications。首次设置要授权麦克风(听你唱)和系统音频(听音乐应用);问你是否允许跟随 Spotify / Apple Music 时选 Listen only,它就改用纯音频识别曲目。仓库是 Rust 项目,想自己构建就:

git clone https://github.com/dsmurrell/onkey.git
cd onkey

打开后选一首歌放着跟唱,第一次播完它会显示「learned」,再放一次就能看到你的音高线爬上音符条。

小结

OnKey 适合「想唱准但不想被订阅和曲库绑住」的 Mac 用户:MIT 开源、免费、机制透明(学旋律、打分的原理全写在官网),隐私边界在同类里罕见地列到了每一项网络请求。限制也要说清:只支持 Apple Silicon 的 Mac,没有 Windows 和手机版;v0.1.0 刚发布,冷门歌学习失败、对位漂移这类问题要去 Discord 反馈;README 的「公平使用」一节明确要求别把学到的旋律转录分享出去、商用场合请用授权卡拉OK服务。想在 Mac 上折腾音频的还可以看 Spotifast 这个无浏览器内核的 Spotify 客户端,或 YuE2——那个是往另一头走,先写乐谱再生成带人声的歌;OnKey 则是把「跟原唱练歌」这件事做到了本机离线。