《基于Pytorch实现的声音分类 :网页解读》

《基于Pytorch实现的声音分类 :网页解读》

解读这个网页 https://blog.csdn.net/qq_33200967/article/details/119830756

该网页是一篇关于基于PyTorch实现声音分类项目的技术博客,详细介绍了项目的相关信息、使用方法及技术细节,以下是具体解读:

一、项目概述

  • 项目目标:实现对各种环境声音、动物叫声和语种的识别。
  • 支持内容:提供了多种声音分类模型,如EcapaTdnn、PANNS、ResNetSE等;还提供了常用的Urbansound8K数据集测试报告和一些方言数据集的下载及使用例子。
  • 应用场景:可用于室外环境监测、野生动物保护、语音识别等领域,同时鼓励用户探索更多场景。
  • 源码地址:AudioClassification-Pytorch。

二、使用准备

  • 所需环境:Anaconda 3、Python 3.11、Pytorch 2.0.1,支持Windows 11或Ubuntu 22.04系统。

三、项目特性

  • 支持模型:包括EcapaTdnn、PANNS、TDNN、Res2Net、ResNetSE、CAMPPlus、ERes2Net等。
  • 支持池化层:有AttentiveStatsPool(ASP)、SelfAttentivePooling(SAP)、TemporalStatisticsPooling(TSP)、TemporalAveragePooling(TAP)。
  • 支持预处理方法:MelSpectrogram、Spectrogram、MFCC、Fbank。
  • 模型论文:每个模型都对应有相关的论文,如EcapaTdnn对应《ECAPA-TDNN: Emphasized Channel Attention, Propagation and Aggregation in TDNN Based Speaker Verification》等。

四、模型测试情况

在UrbanSound8K数据集(包含10个类别)上,使用Flank预处理方法时,各模型的参数(Params(M))和准确率如下:

模型 Params(M) 准确率
ResNetSE 7.8 0.98863
CAMPPlus 7.1 0.97727
ERes2Net 6.6 0.96590
PANNS(CNN10) 5.2 0.96590
Res2Net 5.0 0.94318
TDNN 2.6 0.92045
EcapaTdnn 6.1 0.91876

五、安装与使用步骤

  1. 安装环境
    • 安装Pytorch的GPU版本(若已安装可跳过),命令为conda install pytorch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 pytorch-cuda=11.7 -c pytorch -c nvidia
    • 安装macls库,可使用pip安装(python -m pip install macls -U -i https://pypi.tuna.tsinghua.edu.cn/simple)或源码安装(先克隆仓库,再进入目录执行python setup.py install)。
  2. 准备数据
    • 将音频数据集存放在dataset/audio目录下,每个文件夹存放一个类别的音频数据,每条音频数据长度在3秒以上。
    • 执行create_data.py生成数据列表,格式为"音频路径\t音频对应的类别标签"。以Urbansound8K为例,需下载并解压到dataset目录下,再修改生成数据列表的代码。
  3. 修改预处理方法(可选):在配置文件中修改,默认使用Fbank,可根据需求选择其他方法,并设置相关参数。
  4. 提取特征(可选) :执行extract_features.py提取特征并保存,然后修改配置文件中数据列表的路径,以加快训练速度。
  5. 训练:根据实际情况调整配置文件中的分类大小、批次大小等参数,然后执行单卡或多卡训练命令。
  6. 训练可视化 :在项目根目录执行visualdl --logdir=log --host=0.0.0.0,并通过网页访问查看。
  7. 评估 :执行python eval.py --configs=configs/bi_lstm.yml,输出准确率并保存混淆矩阵图片。注意中文类别标签在Ubuntu系统需安装字体。
  8. 预测 :使用训练得到的模型参数文件,执行python infer.py --audio_path=音频路径进行预测。

六、其他功能

  • 提供录音程序record_audio.py,用于录制采样率16000、单通道、16bit的音频。
  • infer_record.py可不断进行录音识别,实现实时录音识别功能,可应用于如识别鸟叫并触发拍照等场景。

七、参考资料

列出了多个相关的GitHub仓库,如PaddleSpeech、PaddlePaddle-MobileFaceNets等。

相关推荐
william_yangshun3 小时前
【AI Agent 实战】agent-vision-toolkit 中文版:给纯文本模型(DeepSeek)装上视觉能力
人工智能·多模态
智能体与具身智能4 小时前
TVA具身智能的概念、架构与应用(19)
人工智能·python·具身智能
AI智能体工作室4 小时前
生产级 RAG 检索增强架构实战:向量数据库、混合检索(Hybrid Search)、RRF 融合与重排(Rerank)全链路
人工智能
geinvse_seg4 小时前
我做了个 AI 架构审查员,把整个微服务项目通读了一遍,还顺手做成了 Skill
人工智能
李帅朋4 小时前
微分基本定义笔记
人工智能·笔记·深度学习·神经网络
醍醐实验室4 小时前
下一代端到端全模态(Omni)模型解密:离散音频 Token 化与极速双工流式交互架构
人工智能
米小虾4 小时前
你的 Agent 有 1000 万上下文,为什么第 50 轮就开始失忆?
人工智能·agent
东风破_4 小时前
Text2SQL :用自然语言操作 SQLite 数据库
人工智能·后端
吴佳浩 Alben4 小时前
Agent 怎么做自动化评测?构建端到端的 Agent Evaluation 体系
人工智能·语言模型·架构·自动化·ai编程
G***技4 小时前
告别“云端依赖”:LH707 如何重构 AI 视频监控的底层逻辑?
人工智能·嵌入式硬件