OnKey:听你唱歌就知道哪里跑调的开源 Mac 练歌软件
开源免费的 Mac 唱歌训练器:放 Spotify 或 Apple Music 跟唱,旋律学在本地,音高实时画在音符条上逐行打分,MIT 开源。
项目资料
GitHub Ecosystem- 许可证
- MIT
- 主语言
- Rust
- 星标
- 335
- 核查时间
- 2026-10-27
以上快照资料以核查当日为准,可能随版本或运营策略变化。

跟着原唱唱歌,自己听着还行,录下来一放才发现好几句都跑了调,又说不准是哪个音没唱准——市面上的练歌应用多数要你用它们的曲库,或者塞满翻唱。开发者 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)。


核心功能
- 放原唱跟着唱:不自带曲库也不下载音乐,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 则是把「跟原唱练歌」这件事做到了本机离线。