OnKey 是一款面向 macOS 平台的免费开源唱歌训练软件。它允许用户在 Spotify、Apple Music 或浏览器中的 YouTube 播放歌曲时,同步进行跟唱练习。该软件不直接提供、流式传输或下载任何音乐文件,而是完全依赖用户本地的音乐应用进行播放。
- GitHub:https://github.com/dsmurrell/onkey
- 网盘:https://pan.quark.cn/s/a785a2dc4c12 提取码:mWQb

核心工作流与功能体验
OnKey 的练习流程分为两个阶段,旨在帮助用户逐步掌握歌曲的演唱技巧。
- 首次播放与学习:当用户播放一首新歌时,软件会提供同步歌词。在歌曲播放结束后,OnKey 会在后台自动学习并记录该歌曲歌手的旋律特征。
- 后续练习与反馈:在之后的播放中,界面会以滚动音符的形式展示旋律,并实时绘制用户的演唱音高。练习结束后,系统会生成整体分数以及逐行演唱的详细评估报告。
底层技术原理:本地音频分离与音高追踪
软件能够在不干扰原曲播放的情况下实现精准评分,依赖于其本地运行的音频处理模型。
- 声音分离:当一首歌播放结束时,OnKey 会在本地运行算法模型,将主唱人声与伴奏音乐进行有效分离。
- 音高与节拍提取:系统使用 CREPE 算法追踪歌手的音高轨迹,并结合 GAME 音符模型,将连续的音频流转化为精确到每个音节的乐谱小节。
- 实时跟踪与容错机制:在后续播放中,软件能从音乐流中自动定位当前进度并实时跟踪用户声音。系统具备合理的容错设计,允许低八度演唱,且对轻微的演唱延迟不予扣分。
隐私保护与网络请求边界
OnKey 在设计上严格遵循本地化与最小化数据收集原则,确保用户隐私安全。
- 本地化处理:软件不会保存其接收到的任何音乐数据,仅在播放期间于内存中进行实时分析。用户的录音文件及学习到的歌曲特征均严格保留在本地 Mac 设备中。
- 零数据收集:不要求注册账户,不收集使用分析数据,也不发送崩溃报告。
- 有限的网络请求:软件仅在必要时发起以下网络请求,且均可在设置中手动关闭:
- Shazam (Apple):仅在音乐应用未提供播放信息时,发送极短的音频签名(非完整音频,不调用麦克风)以识别未知歌曲。
- LRCLIB:发送歌曲的艺术家、标题、专辑和时长信息,用于从社区数据库获取歌词。
- iTunes Search and Lookup (Apple):发送艺术家和标题(或 Shazam 返回的 ID),用于获取专辑封面和歌曲时长。
- GitHub:启动后一分钟及之后每天进行一次新版本检查。
公平使用与版权合规规范
为了尊重音乐版权并确保软件的合法使用,OnKey 设定了明确的使用边界。
- 个人练习限定:软件设计用于家庭环境下的个人练习,请确保您拥有相关音乐的合法播放权限。
- 禁止分享转录数据:软件对每首歌曲生成的旋律转录数据仅供个人练习使用,请勿对外分享或公开发布。
- 合规的录音分享:如需分享练习成果,请使用软件页面内置的分享功能。该功能会生成一段仅包含用户声音和音高线的短视频(不含原曲音乐),用户可随后在 Instagram 等平台的授权音乐库中自行添加背景音乐。建议佩戴耳机演唱,以减少通过扬声器外放时混入的背景音乐。
- 禁止商业用途与破解:在酒吧或公共活动中,请使用获得合法授权的卡拉OK服务。严禁修改 OnKey 软件以尝试保存或提取受版权保护的音乐文件。


