- 🔬 深度学习模型: 使用CNN-LSTM混合架构进行多标签分类
- 🏷️ 8种声乐标签: 真声、混声、假声、气声、咽音、颤音、滑音、说话
- 📊 实时可视化: 波形显示和置信度图表
- ⚡ GPU加速: 支持CUDA加速推理
- 🎛️ 阈值调节: 可自定义分类结果过滤阈值
- 🎭 Demucs引擎: 基于最先进的音源分离技术
- 🎸 多轨道分离: 人声、贝斯、鼓点、其他乐器分离
- 🎛️ 多种模型: mdx_extra_q、htdemucs等多种预训练模型
- 📁 批量处理: 支持多文件同时处理
- 🎧 高质量输出: 保持原始音频质量
- 🌙 深色主题: 现代化的深色界面设计
- 📱 响应式布局: 适配不同屏幕尺寸
- 🎯 直观操作: 简洁易用的用户界面
- ⚡ 流畅动画: 平滑的过渡和交互效果
- 📝 歌词识别: 集成Whisper语音识别
- 🎵 歌词对齐: 精确的歌词与音频时间轴对齐
- 🔍 声乐技术分析: 专业的声乐技术评估
- 📊 多维度评估: 音高、节奏、情感等多维度分析
# 克隆仓库
git clone https://github.com/yourusername/ZhiYin.git
cd ZhiYin
# 安装依赖
pip install -r requirements.txt
# 启动应用
python main.py| 组件 | 最低版本 | 推荐版本 |
|---|---|---|
| Python | 3.8 | 3.9+ |
| PyTorch | 1.12.0 | 2.0+ |
| CUDA | 11.0 | 11.7+ |
| RAM | 4GB | 8GB+ |
| GPU | - | NVIDIA GTX 1060+ |
# 创建虚拟环境
python -m venv zhiyin_env
# 激活虚拟环境
# Windows
zhiyin_env\Scripts\activate
# Linux/Mac
source zhiyin_env/bin/activate# 安装PyTorch (根据你的CUDA版本选择)
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu117
# 安装其他依赖
pip install -r requirements.txt# 检查PyTorch和CUDA
python -c "import torch; print(f'PyTorch: {torch.__version__}'); print(f'CUDA: {torch.cuda.is_available()}')"graph TD
A[选择音频文件] --> B[模型加载]
B --> C[特征提取]
C --> D[分类推理]
D --> E[结果可视化]
E --> F[阈值调节]
F --> G[导出结果]
- 🎵 选择音频: 点击"打开音频文件"选择要分析的音频
- ⏳ 等待处理: 系统自动加载模型并进行分析
- 📊 查看结果: 分类结果以标签和置信度显示
- 🎛️ 调节阈值: 使用滑块过滤低置信度结果
- 🎧 音频播放: 内置播放器支持音频预览
- 📈 波形显示: 实时显示音频波形和频谱
graph TD
A[选择音频文件] --> B[选择分离模型]
B --> C[设置输出路径]
C --> D[开始分离]
D --> E[进度显示]
E --> F[结果预览]
F --> G[导出分离文件]
- 🎵 选择音频: 支持多种音频格式 (MP3, WAV, FLAC等)
- 🤖 选择模型: 根据需要选择合适的分离模型
- 📁 设置输出: 自定义输出目录和文件名
▶️ 开始分离: 点击按钮开始处理- 📊 监控进度: 实时显示处理进度和状态
- 🎧 结果预览: 分离完成后可预览各轨道
ZhiYin/
├── 📁 main.py # 应用程序入口
├── 📁 config/ # 配置文件
│ ├── 📄 __init__.py
│ ├── 📄 settings.py # 全局配置
│ ├── 📄 config_manager.py # 配置管理器
│ └── 📄 label_mapping.json # 标签映射
├── 📁 core/ # 核心模块
│ ├── 📄 __init__.py
│ ├── 📄 app.py # 主应用程序类
│ └── 📄 base_window.py # 基础窗口类
├── 📁 ui/ # 用户界面
│ ├── 📄 __init__.py
│ ├── 📄 main_window.py # 主界面
│ ├── 📁 components/ # UI组件
│ │ ├── 📄 __init__.py
│ │ └── 📄 navigation.py # 导航组件
│ └── 📁 styles/ # 样式主题
│ ├── 📄 __init__.py
│ └── 📄 dark_theme.py # 深色主题样式
├── 📁 features/ # 功能模块
│ ├── 📄 __init__.py
│ ├── 📁 audio_classifier/ # 音频分类
│ │ ├── 📄 __init__.py
│ │ ├── 📄 classifier_window.py
│ │ ├── 📄 waveform_widget.py
│ │ ├── 📄 model.py
│ │ ├── 📄 audio_processor.py
│ │ ├── 📄 multi_audio_processor.py
│ │ ├── 📄 lyrics_recognizer.py
│ │ ├── 📄 lyrics_tag_aligner.py
│ │ └── 📄 progress_dialog.py
│ ├── 📁 source_separation/ # 音源分离
│ │ ├── 📄 __init__.py
│ │ ├── 📄 demucs_window.py
│ │ └── 📄 demucs_processor.py
│ └── 📁 ai_analysis/ # AI分析
│ ├── 📄 __init__.py
│ └── 📄 ai_analysis_window.py
├── 📁 utils/ # 工具函数
│ ├── 📄 __init__.py
│ ├── 📄 audio_utils.py # 音频处理工具
│ └── 📄 model_utils.py # 模型工具
├── 📁 resources/ # 资源文件
│ ├── 📁 icons/ # 图标资源
│ │ └── 🖼️ 知音LOGO.png
│ └── 📁 models/ # 预训练模型
└── 📁 best_new_models/ # 最新训练模型
├── 🧠 final_multilabel_cnn_lstm_model_m8.pth
├── 📋 label_to_idx_m8.json
└── 📊 m8_0.9375.txt
我们的音频分类模型采用CNN-LSTM混合架构,结合了卷积神经网络的特征提取能力和长短期记忆网络的序列建模能力。
graph TD
A[音频输入] --> B[预处理]
B --> C[1D卷积层]
C --> D[深度可分离卷积]
D --> E[点卷积]
E --> F[LSTM层]
F --> G[全连接层]
G --> H[Sigmoid激活]
H --> I[多标签输出]
| 层类型 | 参数 | 输出维度 | 激活函数 |
|---|---|---|---|
| Conv1D | kernel=5, filters=32 | (32, T) | ReLU |
| DepthwiseConv | kernel=3, groups=32 | (32, T) | - |
| PointwiseConv | filters=64 | (64, T) | ReLU |
| LSTM | hidden=128 | (T, 128) | - |
| Dense | units=256 | 256 | ReLU |
| Output | units=8 | 8 | Sigmoid |
| 指标 | 值 |
|---|---|
| 准确率 | 93.75% |
| 精确率 | 92.3% |
| 召回率 | 91.8% |
| F1分数 | 92.0% |
| 模型大小 | 15.2MB |
# ui/styles/custom_theme.py
DARK_THEME = {
"background": "#1e1e1e",
"foreground": "#ffffff",
"accent": "#0078d4",
"button": "#404040",
"button_hover": "#505050",
# ... 更多样式定义
}| 音频长度 | CPU处理时间 | GPU处理时间 | 加速比 |
|---|---|---|---|
| 30秒 | 2.3秒 | 0.8秒 | 2.9x |
| 1分钟 | 4.1秒 | 1.4秒 | 2.9x |
| 5分钟 | 18.2秒 | 6.3秒 | 2.9x |
| 组件 | 内存占用 |
|---|---|
| 基础应用 | 120MB |
| 音频分类模型 | 380MB |
| 音源分离模型 | 1.2GB |
| 总计 | ~1.7GB |
我们欢迎所有形式的贡献!请查看我们的贡献指南了解详情。
- 🍴 Fork 本仓库
- 🌿 创建你的功能分支 (
git checkout -b feature/AmazingFeature) - 💾 提交你的更改 (
git commit -m 'Add some AmazingFeature') - 📤 推送到分支 (
git push origin feature/AmazingFeature) - 🎯 打开一个 Pull Request
- 🐍 使用 PEP 8 or Black Python 代码规范
- 💬 添加适当的注释和文档字符串
- 🧪 为新功能添加单元测试
- 🎨 保持代码风格一致
- 🧠 新增AI分析功能模块
- 📝 集成Whisper语音识别
- 🎵 实现歌词与音频精确对齐
- 🔍 添加声乐技术分析
- 📊 多维度音频评估
- ⚡ 优化模型加载速度
- 🎛️ 改进用户界面交互
- 📈 增强可视化效果
- 🔧 修复已知问题
- 🐛 修复音频分类阈值调节问题
- 🐛 解决音源分离进度显示异常
- 🐛 修复深色主题样式问题
- 🎤 新增多音频处理器
- 📊 改进波形显示
- ⚡ 优化性能
- 🎨 深色主题界面
- 📱 响应式布局
- 🔧 配置管理
- 🎼 音频分类功能
- 🎤 音源分离功能
- 🎛️ 基础UI界面
- 🎉 初始版本发布
- 📦 基础架构搭建
本项目采用 Apache 2.0 许可证 - 查看 LICENSE 文件了解详情。