【AudioClassificationModelZoo-Pytorch】基于Pytorch的声音事件检测分类系统
源码:https://github.com/Shybert-AI/AudioClassificationModelZoo-Pytorch







模型测试表
| 模型网络结构 | batch_size | FLOPs(G) | Params(M) | 特征提取方式 | 数据集 | 类别数量 | 模型验证集性能 |
|---|---|---|---|---|---|---|---|
| EcapaTdnn | 128 | 0.48 | 6.1 | mel | UrbanSound8K | 10 | accuracy=0.974, precision=0.972 recall=0.967, F1-score=0.967 |
| PANNS(CNN6) | 128 | 0.98 | 4.57 | mel | UrbanSound8K | 10 | accuracy=0.971, precision=0.963 recall=0.954, F1-score=0.955 |
| TDNN | 128 | 0.21 | 2.60 | mel | UrbanSound8K | 10 | accuracy=0.968, precision=0.964 recall=0.959, F1-score=0.958 |
| PANNS(CNN14) | 128 | 1.98 | 79.7 | mel | UrbanSound8K | 10 | accuracy=0.966, precision=0.956 recall=0.957, F1-score=0.952 |
| PANNS(CNN10) | 128 | 1.29 | 4.96 | mel | UrbanSound8K | 10 | accuracy=0.964, precision=0.955 recall=0.955, F1-score=0.95 |
| DTFAT(MaxAST) | 16 | 8.32 | 68.32 | mel | UrbanSound8K | 10 | accuracy=0.963, precision=0.939 recall=0.935, F1-score=0.933 |
| EAT-M-Transformer | 128 | 0.16 | 1.59 | mel | UrbanSound8K | 10 | accuracy=0.935, precision=0.905 recall=0.907, F1-score=0.9 |
| AST | 16 | 5.28 | 85.26 | mel | UrbanSound8K | 10 | accuracy=0.932, precision=0.893 recall=0.887, F1-score=0.884 |
| TDNN_GRU_SE | 256 | 0.26 | 3.02 | mel | UrbanSound8K | 10 | accuracy=0.929, precision=0.916 recall=0.907, F1-score=0.904 |
| mn10_as | 128 | 0.03 | 4.21 | mel | UrbanSound8K | 10 | accuracy=0.912, precision=0.88 recall=0.894, F1-score=0.878 |
| dymn10_as | 128 | 0.01 | 4.76 | mel | UrbanSound8K | 10 | accuracy=0.904, precision=0.886 recall=0.883, F1-score=0.872 |
| ERes2NetV2 | 128 | 0.87 | 5.07 | mel | UrbanSound8K | 10 | accuracy=0.874, precision=0.828 recall=0.832, F1-score=0.818 |
| ResNetSE_GRU | 128 | 1.84 | 10.31 | mel | UrbanSound8K | 10 | accuracy=0.865, precision=0.824 recall=0.827, F1-score=0.813 |
| ResNetSE | 128 | 1.51 | 7.15 | mel | UrbanSound8K | 10 | accuracy=0.859, precision=0.82 recall=0.819, F1-score=0.807 |
| CAMPPlus | 128 | 0.47 | 7.30 | mel | UrbanSound8K | 10 | accuracy=0.842, precision=0.793 recall=0.788, F1-score=0.778 |
| HTS-AT | 16 | 5.70 | 27.59 | mel | UrbanSound8K | 10 | accuracy=0.84, precision=0.802 recall=0.796, F1-score=0.795 |
| EffilecentNet_B2 | 128 | – | 7.73 | mel | UrbanSound8K | 10 | accuracy=0.779, precision=0.718 recall=0.741, F1-score=0.712 |
| ERes2Net | 128 | 1.39 | 6.22 | mel | UrbanSound8K | 10 | accuracy=0.778, precision=0.808 recall=0.787, F1-score=0.779 |
| Res2Net | 128 | 0.04 | 5.09 | mel | UrbanSound8K | 10 | accuracy=0.723, precision=0.669 recall=0.672, F1-score=0.648 |
| MobileNetV4 | 128 | 0.03 | 2.51 | mel | UrbanSound8K | 10 | accuracy=0.608, precision=0.553 recall=0.549, F1-score=0.523 |
说明:
使用的测试集为从数据集中每10条音频取一条,共874条。
5.准备数据
生成数据集的list,label_list.txt,train_list.txt,test_list.txt
执行create_data.py即可生成数据列表,里面提供了生成多种数据集列表方式,具体看代码。
python create_data.py
生成的列表是长这样的,前面是音频的路径,后面是该音频对应的标签,从0开始,路径和标签之间用\t隔开。
dataset/UrbanSound8K/audio/fold2/104817-4-0-2.wav 4
dataset/UrbanSound8K/audio/fold9/105029-7-2-5.wav 7
dataset/UrbanSound8K/audio/fold3/107228-5-0-0.wav 5
dataset/UrbanSound8K/audio/fold4/109711-3-2-4.wav 3
5.特征提取(可选,如果进行特征提取,训练耗时提升36倍),已提取的特征文件和已训练的模型文件下载。模型放到model目录下,特征放到features目录下。
链接: https://pan.baidu.com/s/15ziJovO3t41Nqgqtmovuew 提取码: 8a59
python extract_feature.py
6.训练,可以通过指定–model_type的参数来指定模型,进行模型训练。
如:EcapaTdnn、PANNS(CNN6)、TDNN、PANNS(CNN14)、PANNS(CNN10)、DTFAT(MaxAST)、EAT-M-Transformer、AST、TDNN_GRU_SE、mn10_as、dymn10_as、ERes2NetV2、ResNetSE_GRU、ResNetSE、CAMPPlus、HTS-AT、EffilecentNet_B2、ERes2Net、Res2Net、MobileNetV4
python train.py --model_type EAT-M-Transformer
在线提取特征训练的日志为:
Epoch: 10
Train: 100%|██████████| 62/62 [07:28<00:00, 7.23s/it, BCELoss=0.931, accuracy=0.502, precision=0.563, recall=0.508, F1-score=0.505]
Valid: 100%|██████████| 14/14 [00:53<00:00, 3.82s/it, BCELoss=1.19, accuracy=0.425, precision=0.43, recall=0.393, F1-score=0.362]Epoch: 11
Train: 100%|██████████| 62/62 [07:23<00:00, 7.16s/it, BCELoss=2.17, accuracy=0.377, precision=0.472, recall=0.386, F1-score=0.375]
Valid: 100%|██████████| 14/14 [00:48<00:00, 3.47s/it, BCELoss=2.7, accuracy=0.362, precision=0.341, recall=0.328, F1-score=0.295]Epoch: 12
Train: 100%|██████████| 62/62 [07:20<00:00, 7.11s/it, BCELoss=1.8, accuracy=0.297, precision=0.375, recall=0.308, F1-score=0.274]
Valid: 100%|██████████| 14/14 [00:48<00:00, 3.47s/it, BCELoss=1.08, accuracy=0.287, precision=0.317, recall=0.285, F1-score=0.234]
离线提取特征训练的日志为:
Epoch: 1
Train: 100%|██████████| 62/62 [00:12<00:00, 4.77it/s, BCELoss=8.25, accuracy=0.0935, precision=0.0982, recall=0.0878, F1-score=0.0741]
Valid: 100%|██████████| 14/14 [00:00<00:00, 29.53it/s, BCELoss=5.98, accuracy=0.142, precision=0.108, recall=0.129, F1-score=0.0909]
Model saved in the folder : model
Model name is : SAR_Pesudo_ResNetSE_s0_BCELossEpoch: 2
Train: 100%|██████████| 62/62 [00:12<00:00, 4.93it/s, BCELoss=7.71, accuracy=0.117, precision=0.144, recall=0.113, F1-score=0.0995]
Valid: 100%|██████████| 14/14 [00:00<00:00, 34.54it/s, BCELoss=8.15, accuracy=0.141, precision=0.0811, recall=0.133, F1-score=0.0785]
7.测试
测试采用流式测试的方式,即每次送入模型2秒的音频数据,将音频数据转为[1,1,64,100]维度的张量数据,然后送入到模型中进行推理,每次都很得到推理的结构,可以根据阈值来判断该事件是否发生。
python model_test.py --model_type EAT-M-Transformer
相关文章:
【AudioClassificationModelZoo-Pytorch】基于Pytorch的声音事件检测分类系统
源码:https://github.com/Shybert-AI/AudioClassificationModelZoo-Pytorch 模型测试表 模型网络结构batch_sizeFLOPs(G)Params(M)特征提取方式数据集类别数量模型验证集性能EcapaTdnn1280.486.1melUrbanSound8K10accuracy0.974, precision0.972 recall0.967, F1-s…...
一文讲解Java中的ArrayList和LinkedList
ArrayList和LinkedList有什么区别? ArrayList 是基于数组实现的,LinkedList 是基于链表实现的。 二者用途有什么不同? 多数情况下,ArrayList更利于查找,LinkedList更利于增删 由于 ArrayList 是基于数组实现的&#…...
CNN的各种知识点(五):平均精度均值(mean Average Precision, mAP)
平均精度均值(mean Average Precision, mAP) 1. 平均精度均值(mean Average Precision, mAP)概念:计算步骤:具体例子:重要说明:典型值范围: 总结: 1. 平均精度…...
【优先算法】专题——前缀和
目录 一、【模版】前缀和 参考代码: 二、【模版】 二维前缀和 参考代码: 三、寻找数组的中心下标 参考代码: 四、除自身以外数组的乘积 参考代码: 五、和为K的子数组 参考代码: 六、和可被K整除的子数组 参…...
gitea - fatal: Authentication failed
文章目录 gitea - fatal: Authentication failed概述run_gitea_on_my_pkm.bat 笔记删除windows凭证管理器中对应的url认证凭证启动gitea服务端的命令行正常用 TortoiseGit 提交代码备注END gitea - fatal: Authentication failed 概述 本地的git归档服务端使用gitea. 原来的用…...
基于Spring Security 6的OAuth2 系列之八 - 授权服务器--Spring Authrization Server的基本原理
之所以想写这一系列,是因为之前工作过程中使用Spring Security OAuth2搭建了网关和授权服务器,但当时基于spring-boot 2.3.x,其默认的Spring Security是5.3.x。之后新项目升级到了spring-boot 3.3.0,结果一看Spring Security也升级…...
蓝桥与力扣刷题(234 回文链表)
题目:给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。 示例 1: 输入:head [1,2,2,1] 输出:true示例 2: 输入&…...
Google C++ Style / 谷歌C++开源风格
文章目录 前言1. 头文件1.1 自给自足的头文件1.2 #define 防护符1.3 导入你的依赖1.4 前向声明1.5 内联函数1.6 #include 的路径及顺序 2. 作用域2.1 命名空间2.2 内部链接2.3 非成员函数、静态成员函数和全局函数2.4 局部变量2.5 静态和全局变量2.6 thread_local 变量 3. 类3.…...
Windows图形界面(GUI)-QT-C/C++ - QT Tab Widget
公开视频 -> 链接点击跳转公开课程博客首页 -> 链接点击跳转博客主页 目录 一、概述 1.1 什么是 QTabWidget? 1.2 使用场景 二、常见样式 2.1 选项卡式界面 2.2 动态添加和删除选项卡 2.3 自定义选项卡标题和图标 三、属性设置 3.1 添加页面&…...
【大数据技术】教程05:本机DataGrip远程连接虚拟机MySQL/Hive
本机DataGrip远程连接虚拟机MySQL/Hive datagrip-2024.3.4VMware Workstation Pro 16CentOS-Stream-10-latest-x86_64-dvd1.iso写在前面 本文主要介绍如何使用本机的DataGrip连接虚拟机的MySQL数据库和Hive数据库,提高编程效率。 安装DataGrip 请按照以下步骤安装DataGrip软…...
C++:结构体和类
在之前的博客中已经讲过了C语言中的结构体概念了,重复的内容在这儿就不赘述了。C中的结构体在C语言的基础上还有些补充,在这里说明一下,顺便简单地讲一下类的概念。 一、成员函数 结构体类型声明的关键字是 struct ,在C中结构体…...
MATLAB的数据类型和各类数据类型转化示例
一、MATLAB的数据类型 在MATLAB中 ,数据类型是非常重要的概念,因为它们决定了如何存储和操作数据。MATLAB支持数值型、字符型、字符串型、逻辑型、结构体、单元数组、数组和矩阵等多种数据类型。MATLAB 是一种动态类型语言,这意味着变量的数…...
UE求职Demo开发日志#19 给物品找图标,实现装备增加属性,背包栏UI显示装备
1 将用到的图标找好,放一起 DataTable里对应好图标 测试一下能正确获取: 2 装备增强属性思路 给FMyItemInfo添加一个枚举变量记录类型(物品,道具,装备,饰品,武器)--> 扩展DataT…...
C++泛型编程指南09 类模板实现和使用友元
文章目录 第2章 类模板 Stack 的实现2.1 类模板 Stack 的实现 (Implementation of Class Template Stack)2.1.1 声明类模板 (Declaration of Class Templates)2.1.2 成员函数实现 (Implementation of Member Functions) 2.2 使用类模板 Stack脚注改进后的叙述总结脚注2.3 类模板…...
使用MATLAB进行雷达数据采集可视化
本文使用轮趣科技N10雷达,需要源码可在后台私信或者资源自取 1. 项目概述 本项目旨在通过 MATLAB 读取 N10 激光雷达 的数据,并进行 实时 3D 点云可视化。数据通过 串口 传输,并经过解析后转换为 三维坐标点,最终使用 pcplayer 进…...
【Elasticsearch】allow_no_indices
- **allow_no_indices 参数的作用**: 该参数用于控制当请求的目标索引(通过通配符、别名或 _all 指定)不存在或已关闭时,Elasticsearch 的行为。 - **默认行为**: 如果未显式设置该参数,默认值为 …...
54【ip+端口+根目录通信】
上节课讲到,根目录起到定位作用,比如我们搭建一个php网站后,注册系统是由根目录的register.php文件执行,那么我们给这个根目录绑定域名https://127.0.0.1,当我们浏览器访问https://127.0.0.1/register.php时࿰…...
python算法和数据结构刷题[3]:哈希表、滑动窗口、双指针、回溯算法、贪心算法
回溯算法 「所有可能的结果」,而不是「结果的个数」,一般情况下,我们就知道需要暴力搜索所有的可行解了,可以用「回溯法」。 回溯算法关键在于:不合适就退回上一步。在回溯算法中,递归用于深入到所有可能的分支&…...
DeepSeek横空出世,AI格局或将改写?
引言 这几天,国产AI大模型DeepSeek R1,一飞冲天,在全球AI圈持续引爆热度,DeepSeek R1 已经是世界上最先进的 AI 模型之一,可与 OpenAI 的新 o1 和 Meta 的 Llama AI 模型相媲美。 DeepSeek-V3模型发布后,在…...
聚簇索引、哈希索引、覆盖索引、索引分类、最左前缀原则、判断索引使用情况、索引失效条件、优化查询性能
聚簇索引 聚簇索引像一本按目录排版的书,用空间换时间,适合读多写少的场景。设计数据库时,主键的选择(如自增ID vs 随机UUID)会直接影响聚簇索引的性能。 什么是聚簇索引? 数据即索引:聚簇索引…...
Xshell远程连接Kali(默认 | 私钥)Note版
前言:xshell远程连接,私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...
蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练
前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...
基于Uniapp开发HarmonyOS 5.0旅游应用技术实践
一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架,支持"一次开发,多端部署",可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务,为旅游应用带来…...
ip子接口配置及删除
配置永久生效的子接口,2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...
学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”
2025年#高考 将在近日拉开帷幕,#AI 监考一度冲上热搜。当AI深度融入高考,#时间同步 不再是辅助功能,而是决定AI监考系统成败的“生命线”。 AI亮相2025高考,40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕,江西、…...
向量几何的二元性:叉乘模长与内积投影的深层联系
在数学与物理的空间世界中,向量运算构成了理解几何结构的基石。叉乘(外积)与点积(内积)作为向量代数的两大支柱,表面上呈现出截然不同的几何意义与代数形式,却在深层次上揭示了向量间相互作用的…...
CTF show 数学不及格
拿到题目先查一下壳,看一下信息 发现是一个ELF文件,64位的 用IDA Pro 64 打开这个文件 然后点击F5进行伪代码转换 可以看到有五个if判断,第一个argc ! 5这个判断并没有起太大作用,主要是下面四个if判断 根据题目…...
FTXUI::Dom 模块
DOM 模块定义了分层的 FTXUI::Element 树,可用于构建复杂的终端界面,支持响应终端尺寸变化。 namespace ftxui {...// 定义文档 定义布局盒子 Element document vbox({// 设置文本 设置加粗 设置文本颜色text("The window") | bold | color(…...
ubuntu 20.04挂载固态硬盘
我们有个工控机,其操作系统是ubuntu 20.04。可以接入一个固态硬盘。将固态硬盘插好后,就要进行挂载。在AI的指导下,过程并不顺利。记录如下: 1、检查硬盘是否被识别 安装好硬盘后,运行以下命令来检查Linux系统是否…...
如何通过外网访问内网服务器?怎么让互联网上连接本地局域网的网址
服务器作为一个数据终端,是很多企事业单位不可获缺的重要设备,多数公司本地都会有部署服务器供测试或部署一些网络项目使用。有人说服务器就是计算机,其实这种说法不是很准确。准确的说服务器算是计算机的一种,它的作用是管理计算…...
