dsmurrell/onkey
多媒体与设计一款 Mac 练唱打分应用,用你自己的音乐 App 播放歌曲,实时显示音高并逐句评分。
如果你在 Apple Silicon Mac 上跟着 Spotify、Apple Music 或 YouTube 唱歌,并且想立刻看到自己哪一句跑调,OnKey 值得一试。它是一款绑定单一平台的练习工具,不是跨设备的卡拉 OK 服务,硬件和法律边界也决定了它适合谁。
解决什么问题
想练一首歌的人通常要录下自己再对照原唱回放,或者买一份未必对应你所爱版本的伴奏。OnKey 换了一种做法:在平时的音乐 App 里播放歌曲并跟着唱,应用会从这次播放中学习主唱旋律。之后再次播放时,音符条会向播放头滚动,你的实时音高叠在上面,每句还能得到报告。音乐始终来自你自己的 App,OnKey 不提供、不串流也不下载歌曲。
有什么不同
核心机制是在本机分析它听到的系统声音。首次播放结束后,人声分离模型和 CREPE 音高跟踪提取歌手旋律,GAME 音符模型把旋律转成每个音节一条音符。这样它就能配合你本来就在听的歌,而不是一个固定的曲库,转录内容只留在本机。README 说明学过的歌和录音保存在本机,应用不会保存它听到的音乐。
代价也来自这个设计。首次播放必须先学歌:没法直接给一首没听过的歌打分,因为旋律是在歌曲结束时建立的。评分对低八度演唱和稍微延迟比较宽容,适合业余练习,但不是严格试唱评委。分享也有边界:分享的是一段只有你的声音和音高线、不含音乐的短视频。“合理使用 OnKey”一节还要求用户不对外发布转录出的旋律、不修改应用去保存音乐、在酒吧或活动等公开场合使用有授权的卡拉 OK。这些是作者的要求和法律立场,不是技术保证。
谁值得试
适合已经在用 Spotify、Apple Music 或 YouTube 的 Apple Silicon Mac(M1 或更新,macOS 14.2 或更新)用户,想练歌时看到自己哪里跑调。官方入门文档会要求麦克风和系统声音录制权限,并提供“Listen only”模式,仅凭声音跟随 Spotify 和 Apple Music。老师或伴奏者也可以把逐句报告当作参考。
不适合想在 Windows、Linux、Intel Mac 或手机上练习的人,README 没有给出其他平台路径。也不适合乐队、酒吧或活动场景:那里需要公开播放音乐,或者你想在网上分享完整演唱,而分享会去掉音乐,README 也建议这类场景使用有授权的卡拉 OK。想要一套会随水平提高逐步撤掉视觉辅助的正规教学体系的人,也不在它的设计目标内;Show HN 讨论中有评论者提出过这一顾虑,作者回应说可以开启 mini 模式,在看不到音高线的情况下练唱。
使用条件与边界
硬性门槛是 Apple Silicon Mac 和 macOS 14.2 或更新,Intel Mac 和非 Mac 用户被排除在外。应用需要麦克风和系统声音录制两项权限,有些用户可能不愿授予。当音乐 App 没有报告正在播放什么时,它还会通过 Shazam 识别歌曲;README 说可以在设置里关闭 Shazam、歌词和更新检查。从源码构建可以避免信任分发的二进制文件,但需要 Xcode 命令行工具、Rust、Node、Python 3,并下载模型;即便如此,源码构建也无法用 Shazam 识别新歌,因为这需要作者的 Apple 签名。这个限制只影响 YouTube 和“Listen only”模式,因为 Spotify 和 Apple Music 会自己报告曲目。日常维护还包括模型下载、每天检查更新,以及 LRCLIB 社区歌词的准确性,README 并未说明这些歌词获准用于公开表演。
HotRepo 点评
HotRepo 在 2026-10-25 首次记录这个仓库,当时总星数 285,在 Rust 新项目榜(不是总榜或日榜)排第 17;提供的样本只覆盖 2026-10-24 到 2026-10-25,因此还无法判断热度能否持续。Show HN 帖子获得 228 分和 91 条评论,这只能说明讨论量,不代表长期价值。对潜在用户来说,实际该确认的是 FAQ 是否解决了你的音乐 App 和权限设置问题,再决定是否依赖首次播放学歌。
Hacker News 讨论
本文由 AI 根据项目 README 生成,更新于 2026年10月25日,以项目官方文档为准。