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

相关推荐
dagouaofei19 小时前
AI生成个性化年终总结PPT
人工智能·python·powerpoint
机器之心19 小时前
登顶SuperCLUE DeepSearch,openPangu-R-72B深度搜索能力跃升
人工智能·openai
DMD16819 小时前
AI赋能旅游与酒店业:技术逻辑与开发实践解析
大数据·人工智能·信息可视化·重构·旅游·产业升级
TG:@yunlaoda360 云老大20 小时前
谷歌云AI 时代的算力革命:CPU、GPU 到 TPU 的架构与定位解析
人工智能·架构·googlecloud
AKAMAI20 小时前
加速采用安全的企业级 Kubernetes 环境
人工智能·云计算
Aspect of twilight20 小时前
深度学习各种优化器详解
人工智能·深度学习
徽44020 小时前
农田植被目标检测数据标注与模型训练总结2
人工智能·目标检测·目标跟踪
Elastic 中国社区官方博客20 小时前
Elasticsearch 中使用 NVIDIA cuVS 实现最高快 12 倍的向量索引速度:GPU 加速第 2 章
大数据·人工智能·elasticsearch·搜索引擎·ai·全文检索·数据库架构
jkyy201421 小时前
线上线下融合、跨场景协同—社区健康医疗小屋的智能升级
大数据·人工智能·物联网·健康医疗
苏州知芯传感21 小时前
当AI遇见MEMS:机器学习如何优化微振镜的控制与可靠性预测
人工智能·机器学习·3d·mems·微振镜