dsmurrell/onkey
Learn to sing the songs you love. A free, open-source singing trainer for Mac that listens to the music you play.
什么是 OnKey?
OnKey 是一款免费、开源的 Mac 唱歌训练器。它通过向你展示旋律并给出音准反馈,帮助你学习唱你喜欢的歌曲——就像一个倾听你的卡拉OK教练。
它不提供、流式传输或下载任何音乐。你自己的音乐应用(Spotify、Apple Music 或浏览器中的 YouTube)播放歌曲;OnKey 负责聆听并引导你。
体验过程
- 第一次播放:歌曲播放时,屏幕上会显示歌词。歌曲结束后,OnKey 会从这一次播放中学习歌手的旋律。
- 后续播放:音符像赛道一样向你滚动,你的实时音准会绘制在它们上面(唱准时显示为绿色),你会得到一个分数和逐行报告。
它如何学习和评分
歌曲结束后,OnKey 会在你的 Mac 上完全处理它:
- 一个模型将主唱人声从音乐中分离出来。
- 一个音高追踪器(CREPE)跟踪歌手的旋律。
- 一个音符模型(GAME)将其转换为每个音节一个小节。
在后续播放中,它通过聆听音乐本身来确定自己在歌曲中的位置,并实时跟踪你的声音。它很宽容:低八度演唱也算数,稍微延迟也不会受到惩罚。
系统要求
- Apple Silicon Mac(M1 或更高版本)
- macOS 14.2 或更高版本
- 从最新版本下载
OnKey.dmg,拖到应用程序文件夹
设置时会请求麦克风访问权限(用于听到你的声音)和系统音频录制权限(用于听到音乐应用)。你可以选择仅聆听模式,OnKey 仅通过声音来跟随歌曲,而不是读取 Spotify/Apple Music 的信息。
隐私
- OnKey 从不保存它听到的音乐——它只在内存中分析声音。
- 你的录音和学习到的歌曲都保留在你的 Mac 上。(通过扬声器演唱的片段可能包含部分音乐。)
- 没有账户,没有分析,没有崩溃报告。
它确实会发出的网络请求:
- Shazam(Apple):发送音乐应用声音的简短签名(不是音频,绝不是你的麦克风)来识别歌曲,当音乐应用没有报告正在播放的内容时。
- LRCLIB:发送艺术家、标题、专辑和时长来获取歌词。
- iTunes Search/Lookup(Apple):用于获取封面和歌曲时长。
- GitHub:启动一分钟后检查更新,每天一次。
所有这些都可以在设置中关闭。
合理使用
OnKey 用于在家中练习你有权播放的音乐。README 要求用户:
- 对其旋律转录保密(不要分享或发布)。
- 使用分享功能分享演唱片段——它会制作一个包含你的声音和音高线的短视频,不含音乐,你可以从 Instagram 的授权音乐库中添加歌曲。
- 在酒吧或活动中使用授权的卡拉OK服务(OnKey 的歌词来自免费的社区数据库)。
- 不要修改 OnKey 来保存音乐。
权利所有者可以通过 hello@singonkey.app 联系作者。
从源代码构建
如果你不信任官方构建,可以构建自己的副本。你需要一台装有 Xcode 命令行工具、Rust、Node 和 Python 3 的 Apple Silicon Mac。README 提供了确切的命令(克隆、安装依赖、使用 SHA-256 验证获取模型,然后运行 npx tauri build)。
一个限制:自建版本无法请求 Shazam 识别新歌(这需要作者的 Apple 签名)。Spotify 和 Apple Music 会自行报告正在播放的内容,因此这只会影响 YouTube 和仅聆听模式。
官方版本使用作者的 Apple Developer ID 签名,并由 Apple 公证。
许可证和致谢
- MIT 许可证(见 LICENSE)。
- 修改版本不能称为“OnKey”或使用其图标;感谢注明原作者。
- OnKey 使用 CREPE、GAME、wav2vec 2.0 和 UVR 的 MDX-Net Karaoke 2 进行音频处理。
- 由 Daniel Murrell 制作。
帮助
该应用有一个报告问题选项,它会保存一个包含数字和日志的 zip 文件(不含音频,不含你的录音),用于附加到 GitHub issue。还有一个 Discord 服务器、一个电子邮件地址和故障排除文档。
以上所有事实均直接取自项目的 README。
相关
- 项目
- 项目
- 项目
- 项目