一个基于AI模型的本地音频分离桌面应用程序,支持将音频文件分离成多个独立轨道(人声、乐器等)。
- 🎵 多轨分离: 支持2、4、6轨分离模式
- 🤖 AI模型: 使用Demucs模型进行高质量音轨分离
- 🇨🇳 中文界面: 完全本地化的中文桌面GUI
- 👁️ 实时预览: 音频波形可视化和处理动画
- 🔒 本地处理: 所有处理都在本地进行,保护隐私
- 🎨 主题切换: 支持深色和浅色主题界面
- 📁 格式支持: MP3、WAV、FLAC、M4A、OGG、AAC、WMA等主流音频格式
- ⚡ 性能优化: 支持GPU加速处理,大幅提升分离速度
- 💾 批量处理: 支持多文件批量分离处理
- 📊 处理进度: 实时显示分离进度和状态信息
- 📝 日志记录: 完善的日志系统,便于问题排查
- ⚙️ 配置持久化: 用户设置自动保存到JSON配置文件
- 🔍 文件验证: 音频文件预处理验证,防止处理损坏文件
- 🧹 自动清理: 智能清理临时文件,释放磁盘空间
- 🎯 进度回调: 音频处理进度实时反馈
- 🧠 内存优化: GPU内存自动清理,防止内存泄漏
- 操作系统: Windows 10/11 (64位)
- Python: 3.8+ (推荐3.11)
- 内存: 8GB+ RAM (推荐16GB+)
- 显卡: GPU支持 (可选,用于加速处理)
- 存储: 至少5GB可用空间(用于模型和输出文件)
git clone https://github.com/Eruditi/music_separator_app.git
cd music_separator_apppython -m venv venv
# Windows
venv\Scripts\activate
# Linux/Mac
source venv/bin/activatepip install -r requirements.txt或手动安装核心依赖:
pip install torch torchaudio demucs spleeter tensorflow PyQt5 numpy librosa psutil首次运行时,应用程序会自动下载所需的AI模型,这可能需要一些时间(取决于网络速度)。
python main.py-
启动应用程序
python main.py
-
选择音频文件
- 点击"选择文件"按钮
- 或直接将音频文件拖拽到应用程序窗口
-
选择分离模式
- 2轨:人声 + 伴奏
- 4轨:人声 + 鼓 + 贝斯 + 其他
- 6轨:人声 + 鼓 + 贝斯 + 钢琴 + 吉他 + 其他
-
设置输出目录
- 选择分离后文件的保存位置
- 默认保存在原文件同目录下的"separated"子目录
-
开始分离
- 点击"开始分离"按钮
- 观察处理进度和状态信息
-
查看结果
- 分离完成后,可在输出目录中找到分离后的各个轨道文件
- 模型选择: 在设置中选择使用Demucs或Spleeter模型
- GPU加速: 在设置中启用GPU加速(需要CUDA支持)
- 批量处理: 选择多个文件进行批量分离
- 格式转换: 在设置中选择输出音频格式
- 预设方案: 提供音质优先、速度优先、平衡模式、人声专用等预设
music_separator_app/
├── main.py # 主应用程序和GUI界面
├── models.py # 音频分离模型实现
├── config.py # 配置常量和UI样式
├── utils.py # 工具函数和日志配置
├── settings_manager.py # 用户配置持久化管理
├── requirements.txt # 项目依赖列表
├── README.md # 项目说明文档
├── .gitignore # Git忽略文件配置
├── ffmpeg/ # FFmpeg二进制文件
│ └── bin/
├── pretrained_models/ # AI模型存储目录
├── logs/ # 应用程序日志目录
└── __pycache__/ # Python缓存文件
- 2轨: 人声 + 伴奏
- 4轨: 人声 + 鼓 + 贝斯 + 其他
- 6轨: 人声 + 鼓 + 贝斯 + 钢琴 + 吉他 + 其他
- Python 3.x: 主要编程语言
- PyQt5: 桌面GUI框架
- PyTorch: 深度学习框架
- Demucs: Facebook的音乐源分离模型
- Spleeter: Deezer的分离模型
- FFmpeg: 音频格式转换和处理
- NumPy: 数值计算
- Librosa: 音频分析库
- 使用GPU: 如果有NVIDIA GPU,安装CUDA版本PyTorch可大幅提升处理速度
- 内存充足: 确保有足够的RAM,大文件处理需要更多内存
- SSD存储: 使用SSD可加快文件读写速度
- 关闭其他应用: 处理大型音频文件时关闭其他内存密集型应用
A: 首次启动时需要下载AI模型文件,请耐心等待。模型文件较大(几GB),下载完成后后续启动会很快。
A: 可以尝试不同的模型(Demucs通常质量更高)或不同的分离模式。另外,原始音频质量也会影响分离效果。
A: 支持MP3、WAV、FLAC、M4A、OGG、AAC、WMA等主流格式。如果遇到不支持的格式,可使用音频转换软件先转换为WAV格式。
A: 使用GPU加速、增加RAM、使用SSD存储都可以提高处理速度。
A: 日志文件保存在 logs/ 目录下,文件名格式为 music_separator_YYYYMMDD.log。
- Bug修复: 修复
main.py中SettingsDialog类定义缺失的问题,该问题导致设置对话框方法被错误地放在AudioWaveformWidget类内部 - Bug修复: 合并
main.py中重复的closeEvent方法,统一窗口关闭时的状态保存和线程清理逻辑 - 代码优化: 为
models.py添加完整的类型注解(Type Hints),提升代码可读性和IDE智能提示 - 依赖更新: 在
requirements.txt中添加typing-extensions以确保类型注解兼容性 - 文档完善: 更新模块文档字符串,统一代码注释风格
- 添加
.gitignore文件,优化仓库管理 - 优化日志系统,支持日志轮转(RotatingFileHandler,10MB×5备份)
- 为
settings_manager.py添加完整的类型注解(Type Hints) - 完善文档字符串,提升代码可维护性
- 更新构建日期和版本号
- 优化音频分离处理流程,添加5步骤进度报告
- 重构轨道保存逻辑,提取独立方法
- 添加GPU内存自动清理,防止内存泄漏
- 集成设置管理器到主程序
- 增强音频文件预处理验证
- 改进错误处理和异常捕获
- 添加用户配置文件持久化支持(settings.json)
- 新增音频文件验证功能,防止处理损坏文件
- 添加系统信息获取和内存监控
- 优化内存使用和性能配置
- 添加临时文件自动清理功能
- 改进错误处理和日志记录
- 优化代码结构,改进异常处理
- 添加日志文件记录功能
- 支持更多音频格式(AAC、WMA)
- 改进模型加载机制
- 优化UI组件和主题管理
- 修复已知bug
- 初始版本发布
- 支持多种AI模型和分离模式
- 实现中文GUI界面
- 添加深色/浅色主题切换
- 优化UI布局和交互体验
欢迎提交Issue和Pull Request来改进这个项目!
- 请详细描述问题或建议
- 提供系统环境信息
- 附上错误日志(如果有)
- Fork项目
- 创建功能分支
- 提交更改
- 创建Pull Request
本项目仅供学习和研究使用。使用的AI模型请遵循其各自的许可证条款。
如有问题或建议,请通过以下方式联系:
- 提交GitHub Issue
- 发送邮件至:[[email protected]]
- Facebook AI Research的Demucs模型
- PyQt5社区
- 所有为开源音频处理做出贡献的开发者们
