项目简介
本项目是基于PyTorch框架开发的音频分类系统,专为DCASE2023任务1打造。它覆盖了从数据处理、模型训练到模型评估的完整流程,支持多种音频特征提取方法与深度学习模型,旨在实现高效、精准的音频分类,适用于城市声学场景的识别任务。
项目的主要特性和功能
- 数据处理:可进行音频文件拼接、频谱特征提取、数据增强(如Mixup和MixStyle),还能制作和读取数据集。
- 模型架构:支持ACDNet、CP_ResNet、MobileViT和PaSST等多种深度学习模型,并提供模型复杂度计算工具。
- 训练过程:定义普通训练和知识蒸馏训练过程,支持自定义优化器和学习率调度器。
- 模型压缩:提供模型压缩策略,如量化(施工中)。
- 预训练模型:提供预训练模型参数,支持在特定数据集上微调。
安装使用步骤
1. 环境配置
确保安装所有必要的Python包,使用以下命令安装:
bash
pip install -r requirements.txt
此外,需安装hear21passt
库。
2. 数据准备
2.1 制作数据集
使用dataset
目录下的files_reassembled.ipynb
和meta_csv_reassembled.ipynb
制作reassembled数据集,完成后在configs/dataconfig.py
中修改数据集路径。
2.2 制作h5格式的数据集
根据需求选择原版或reassembled版数据集,修改configs/dataconfig.py
中的配置,运行datagenerator.py
生成h5格式的数据集。
3. 模型训练
3.1 获取模型
从model_src
目录导入所需模型,如ACDNet、CP_ResNet等,并加载到设备上。
python
from model_src.acdnet import GetACDNetModel
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
acdnet = GetACDNetModel(mixstyle_conf=mixstyle_config, input_len=32000, nclass=10, sr=32000).to(device)
3.2 训练模型
修改configs
目录下的配置文件,指定数据集、模型、优化器和学习率调度器等参数,运行run/run.py
开始训练。
bash
python run/run.py
4. 模型评估
训练完成后,模型参数保存在model_weights
目录,训练日志保存在logs
目录,训练图表保存在figure
目录。使用测试脚本run/testscript.py
进行模型评估。
5. 自定义扩展
- 新增数据集:在
dataset/datagenerator.py
中添加新的数据集类,并修改configs/dataconfig.py
。 - 新增数据增强:在
dataset/augmentation.py
中添加新的数据增强策略。 - 新增模型:在
model_src
目录下添加新的模型实现,并将使用的模块放到model_src/module
目录下。 - 新增优化器:在
optim
目录下添加新的优化器或学习率调度器。 - 新增训练行为:在
train
目录下添加新的训练行为,如对抗训练或知识蒸馏。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】