SongRec 支持哪些歌曲识别方式?
更新时间
SongRec 支持四种识别路径:从任意音频文件识别、从麦克风实时识别、在兼容的 PulseAudio 环境下从扬声器输出识别,以及从麦克风持续检测歌曲。它是一款用 Rust 编写的非官方开源 Shazam 客户端,面向 Linux 桌面,同时提供 Windows x64 版本。选择哪种方式取决于你手头有什么:已有录音文件就用文件识别;想识别正在播放的音乐,优先尝试扬声器识别;临时听到一段音乐则用麦克风识别。
四种识别方式及适用条件
| 识别方式 | 输入来源 | 适用场景 | 前提或限制 |
|---|---|---|---|
| 音频文件识别 | 任意音频文件 | 手头有录音、视频提取的音频、下载的音乐片段 | 支持 GUI 和命令行两种操作方式 |
| 麦克风实时识别 | 麦克风 | 现场听到的音乐,如房间外放、现场演出 | 可选择输入设备 |
| 扬声器输出识别 | 系统音频输出 | 电脑上正在播放的音乐,无需外部拾音 | 需要兼容的 PulseAudio 环境 |
| 麦克风持续检测 | 麦克风 | 长时间守候识别,自动记录听到的歌曲 | 持续运行,识别结果进入历史记录 |
从任意音频文件识别
这是最可控的方式。你提供一个音频文件,SongRec 返回识别结果。由于文件识别同时支持 GUI 和命令行,批量处理或脚本化场景可以用命令行完成,日常使用则用 GUI 更直观。适合处理录下的广播片段、会议中听到的背景音乐,或从视频中提取的音轨。
从麦克风实时识别
直接采集麦克风声音进行识别,适合识别外部音源,比如手机外放、房间里的音响。SongRec 允许选择输入设备,当系统有多个麦克风(内置、USB、耳机)时,可以指定实际能拾取到音乐的那个,避免选错设备导致识别失败。
从扬声器输出识别
在兼容的 PulseAudio 环境下,SongRec 可以直接捕获系统播放的音频,而不是通过麦克风“听”一遍。这种方式不受环境噪音影响,识别电脑上正在播放的歌曲更干净。注意这是有条件的:不兼容的音频架构下此方式不可用,此时应退回麦克风识别。
持续歌曲检测
针对麦克风的持续检测模式会一直监听并自动识别,适合长时间开着电脑听歌或电台的场景。识别出的歌曲会进入 GUI 的历史记录,并可导出为 CSV,方便事后整理。
识别结果如何留存
GUI 提供已识别歌曲的历史记录,并支持导出 CSV。如果你需要记录一段时间的收听内容,持续检测加 CSV 导出是完整的工作流;单次文件识别或临时麦克风识别则更适合即用即走。
获取与安装入口
SongRec 提供多个分发渠道,按你的系统选择:
- Flathub:适用于 Ubuntu、Fedora、Arch、Manjaro 等大多数 Linux 发行版
- Launchpad PPA:适用于 Ubuntu 24.04 及以上
- Arch Linux 官方 extra 仓库
- Snap Store:适用于 Ubuntu
- Windows x64:提供安装程序和独立 EXE 两种形式
- 也可以自行从源码编译
功能细节和实现原理可查阅其 GitHub readme;问题反馈通过 GitHub issues 提交,另有 Matrix 频道作为补充沟通渠道。
怎么选
已有音频文件,选文件识别;识别电脑自身播放的音乐,先确认 PulseAudio 兼容性再选扬声器识别;识别外部环境声音,选麦克风识别并指定正确输入设备;需要长期自动记录,选持续检测并配合 CSV 导出。四种方式可以按场景组合使用,历史记录会统一沉淀在 GUI 中。