《基于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等。

相关推荐
珐恩AI-人工智能2 分钟前
大模型隐性权重衰减机制剖析:详解GEO长效维稳如何避免优质
大数据·人工智能·深度学习·机器学习·geo优化
通问AI4 分钟前
人形机器人从实验室到量产:宇树科技IPO背后的技术逻辑
人工智能·科技·机器人
Eloudy7 分钟前
GXF 3.2.0 to 4.0 CUDA 12 路径 API 与数据结构增量分析
人工智能
雷焰财经16 分钟前
中国经济进入“科技驱动”新阶段:出口、高技术产业与内需如何形成合力
人工智能·科技
火山引擎开发者社区6 小时前
火山 PostgreSQL Serverless × 飞书妙搭:把 AI 装进数据库,一句话唤醒数据智能
人工智能
必须会一定会8 小时前
Agent Plugins 1.0实战:plugin.json、skills、mcp.json目录结构与迁移
开发语言·人工智能·ai编程
CTA量化套保8 小时前
近期零基础量化学习:先分阶段,再用 AI 检查缺口
人工智能·python
Justin3go9 小时前
AI 引荐流量报告:哪些独立产品正在从 ChatGPT 获客?
人工智能·seo
风流 少年9 小时前
Spring AI 2.0:SSE
java·人工智能·spring
深小乐9 小时前
AI 项目上线:折腾 Cloudflare,真香也藏不少坑
人工智能