全功能音乐文件管理工具集,覆盖标签写入、歌词搜索、AI 语音识别、歌手分隔符统一、FLAC 压缩修复、合辑标记等场景。
musictools/
├── musictools.py # 主程序(CLI + GUI)
├── musictools_gui.py # GUI 启动器(双击直接进图形界面)
├── zimu_lrc.py # 独立 zimu 语音识别 → LRC 生成
├── tools/
│ ├── fix_artists.py # 歌手分隔符统一工具
│ ├── generate_comments.py # 网易云评论爬取生成器
│ ├── sync_subsonic_stars.py # Subsonic 全量收藏同步
│ └── daoliyu_subsonic_bridge.py # 道理鱼 → Subsonic 桥接
└── docs/
└── 音乐库接入指南.md # 用户端接入教程
# 基本用法
musictools.exe <命令> <目录路径>
python musictools.py <命令> <目录路径>
# 示例
musictools.exe tag "G:\音乐\我的音乐"
musictools.exe lyrics "G:\音乐\我的音乐"按文件名中提取的信息自动填充 FLAC/MP3 的标题、艺术家、专辑、曲目号等标签。
文件名匹配规则: 支持 01.歌名.flac、01 - 艺术家 - 歌名.flac、01.歌名-艺术家.flac 等格式。
musictools.exe tag "G:\音乐\专辑目录"输出示例:
[周杰伦] 01.以父之名.flac <- {'TITLE': '以父之名', 'TRACKNUMBER': '1'}
[周杰伦] 02.懦夫.flac <- {'TITLE': '懦夫', 'TRACKNUMBER': '2'}
修复 FLAC 文件中 PICTURE 元数据块的 MIME 类型缺失或尺寸信息为 0 的问题。封面图片本身不损。
musictools.exe fix "G:\音乐\有问题的音乐目录"[FIXED] 01.歌名.flac
修复: 2 个
扫描目录下所有音频文件的标签、歌词、封面完整性,输出问题列表和控制台报告,并在程序目录下生成完整报告文件。
musictools.exe check "G:\音乐\我的音乐"输出示例:
总计: 172 个文件
缺标题: 0 缺艺术家: 1 缺歌词: 155
─ 缺艺术家: 01.无标题.flac
─ 缺歌词: 01.Lo.mp3, 02.En.flac ... 等 155 个
完整报告已保存: 检测报告_20260523_193000.txt
对目录下的所有歌曲,依次输出搜索结果(网易云 + QQ 音乐),用户可通过交互菜单选择处理方式:
选择说明:
1-6 = 在线搜索结果(序号)
l = LRCMaker(需要先启动 LRCMaker 后端)
z = zimu 语音识别(需要先启动 zimu-agent)
s = 跳过
q = 退出
musictools.exe lyrics "G:\音乐\我的音乐"musictools.exe --gui # 启动图形界面
musictools-gui.exe # 双击直接进图形界面GUI 采用三标签页布局(批量标签/单曲歌词/批量歌词)+ 三个扩展功能标签页:
选择目录 → 选择功能(tag/fix/check)→ 点击执行。支持批量递归处理。
- 选择文件所在目录 → 点击扫描
- 下拉选择待处理的单文件
- 在线搜索:搜索网易云/QQ 音乐,结果列表双击即可下载保存
- LRCMaker:粘贴歌词文本 → 开始对齐
- zimu 识别:一键启动语音识别,自动生成逐字 LRC
全目录扫描,TreeView 表格列出所有歌曲,支持:
- 勾选/全选/全不选
- 每行可单独设置处理方式(自动 / 手动 / zimu / LRCMaker / 跳过)
- 批量设置按钮快速修改选中行
- 自动模式:自动匹配在线结果(score ≥ 0.5),低分跳过
- 手动模式:先点「预搜(手动)」→ 逐首弹窗选择搜索结果
- 进度条 + 实时日志
- zimu 识别包含后端健康检测和自动断连恢复
针对 192kHz/24bit 的高码率 FLAC 降采样:
- 自动扫描目录下的 192kHz+ FLAC
- 选择目标采样率(96000 / 48000 / 44100 Hz)和位深(16 / 24bit)
- 显示预计压缩大小
- 保留源文件的所有元数据和封面
- 输出文件名
原文件名_compressed_96000Hz.flac
深度扫描 FLAC 文件的完整性和封面元数据:
- 检测采样率、位深、时长、封面 MIME/尺寸
- 在 4 个时间点(25%/50%/75%/95%)试读,精确定位损坏位置
- 修复 PICTURE:一键补齐缺失的 MIME 类型和尺寸信息
- 截取修复:提取损坏点之前的所有有效帧,重建 FLAC
- 批量修复损坏:全自动处理所有损坏文件
- 输出统计报告
检测同一专辑有多位歌手的合辑,写入统一标签:
- COMPILATION=1(FLAC 的 Vorbis Comment 或 MP3 的 ID3 TXXX)
- ALBUMARTIST(批量设置为 "Various Artists" 或自定义值)
- 双栏界面:左侧合辑列表 → 右侧文件详情
- 每张合辑显示艺人列表、已标记数/待标记数
# CLI 版(带控制台窗口)
pyinstaller --onefile --console --name musictools musictools.py
# 纯 GUI 版(无控制台,双击即启动图形界面)
pyinstaller --onefile --noconsole --name musictools-gui musictools_gui.py歌词搜索功能依赖两个本地 AI 后端:zimu-agent(语音识别)和 LRCMaker(文本对齐)。以下为完整部署教程。
下载与安装:
# 1. 从 https://www.supergeti.com/zimu/index.html 下载 Windows 版
# 解压到 zimu-agent-windows-v1.2.1/
# 2. 安装三个模型(从魔搭社区 ModelScope 下载)
pip install modelscope
# 型号 ① FireRedASR2-AED
modelscope download --model xukaituo/FireRedASR2-AED
# 型号 ② Qwen3-ASR-1.7B
modelscope download --model Qwen/Qwen3-ASR-1.7B
# 型号 ③ Qwen3-ForcedAligner-0.6B
modelscope download --model Qwen/Qwen3-ForcedAligner-0.6B下载完成后将三个模型移入 zimu-agent 的 model/ 目录:
zimu-agent-windows-v1.2.1/
└── model/
├── FireRedASR2-AED/
├── Qwen3-ASR-1.7B/
└── Qwen3-ForcedAligner-0.6B/
启动: 按顺序运行目录下的批处理文件:
1. 自动安装组件.bat # 首次运行,安装依赖
3. 启动服务.bat # 启动 zimu-agent 后端(默认端口 5003)
从 GitHub 仓库 Flare-Sky/LRCMaker-AI-Backend 下载 Windows 版后直接运行即可。默认启动在端口 8000。
同时支持网页插件:在 lrc-maker.github.io 页面上可调用本地后端进行歌词对齐。
CLI 模式下选择 lyrics → 检测到后端后可选 z(zimu)或 l(LRCMaker)。GUI 下对应「单曲歌词」和「批量歌词」两个标签页。
调用本地 zimu-agent 将音频文件识别为逐字 LRC 歌词(支持中日双语)。内部完整复刻网页前端 app.js 的处理流程。
将 ARTIST / ALBUMARTIST 字段中的 , ; & 、 feat. 等分隔符统一替换为 /。
python3 fix_artists.py /path/to/music # 交互模式
python3 fix_artists.py /path/to/music --yes # 自动模式(cron)
python3 fix_artists.py /path/to/music --backup # 仅备份扫描本地音乐库 → 调用网易云增强 API 搜索匹配 → 获取热门评论 → 生成 comments_data.json。
python3 generate_comments.py "/path/to/music" comments_data.json --full遍历 Subsonic API 所有歌曲 → 逐首 Star,确保 Subsonic 客户端能看到全量曲库。
python3 sync_subsonic_stars.py https://subsonic.xxx.com user pass --dry-run直接读取道理鱼的数据库,对外暴露标准 Subsonic REST API。零外部依赖(只用 Python 内置 sqlite3),自动检测表结构/音乐路径。
python3 daoliyu_subsonic_bridge.py --host 0.0.0.0 --port 4040| 依赖 | 用途 | 必需 |
|---|---|---|
| Python 3.9+ | 所有脚本 | ✅ |
| mutagen | MP3 标签读写 | 可选 |
| PyInstaller | 编译 EXE | 可选 |
| scipy / soundfile / numpy | FLAC 压缩(Tab 4) | 可选 |
dist/ 目录下:
musictools.exe(~58MB) — CLI 版(带控制台)musictools-gui.exe(~58MB) — 纯 GUI 版(无控制台,双击直接进)