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

相关推荐
catchadmin几秒前
Laravel AI SDK 在 Laracon India 2026 首次亮相
人工智能·php·laravel
love530love几秒前
Windows 11 配置 CUDA 版 llama.cpp 并实现系统全局调用(GGUF 模型本地快速聊天)
人工智能·windows·大模型·llama·llama.cpp·gguf·cuda 加速
一招定胜负1 分钟前
从RNN到LSTM:循环神经网络的进化之路
人工智能·rnn·深度学习
阿杰学AI2 分钟前
AI核心知识81——大语言模型之MaaS(简洁且通俗易懂版)
人工智能·ai·语言模型·自然语言处理·aigc·maas·模型即服务
CodeCaptain4 分钟前
【一】dify的知识库上传过相关的文件作为待引用的文档,这样已经与[原始语料 → 按“一文档一份 PDF”存 ObjectStore]同样的概念吗
人工智能·pdf·dify
苏渡苇9 分钟前
用 Spring Boot 项目给工厂装“遥控器”:一行 API 控制现场设备!
java·人工智能·spring boot·后端·网络协议·边缘计算
沫儿笙10 分钟前
安川机器人气保焊省气方案
人工智能·机器人
xiamin10 分钟前
(第57册)人工智能通识教程 夏敏捷、张书钦、周雪燕
人工智能
程途拾光15814 分钟前
算法公平性:消除偏见与歧视的技术探索
大数据·人工智能·算法
Yaozh、14 分钟前
【人工智能中的“智能”是如何实现的】从逻辑回归到神经网络(自用笔记整理)
人工智能·笔记·深度学习·神经网络·机器学习·逻辑回归