【使用深度学习的城市声音分类】使用从提取音频特征(频谱图)中提取的深度学习进行声音分类研究(Matlab代码实现)

news2024/11/29 10:45:51

 💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现


💥1 概述

使用深度学习进行城市声音分类是一种常见的研究方向。下面是一个基本的步骤,通过从音频特征(频谱图)中提取特征,应用深度学习进行声音分类:

1. 数据收集和准备:收集包含城市环境下不同声音的音频数据集。可以通过麦克风或其他录音设备在不同城市环境中进行采集,确保数据集中包含各种声音类别,如车辆噪音、人声、自然声等。将音频数据进行预处理,如剪辑、采样率调整、去噪等。

2. 音频特征提取:使用音频处理技术从音频数据中提取有代表性的特征。常用的方法是将音频数据转化为频谱图,如使用短时傅里叶变换(STFT)生成音频的时频谱图。其他特征提取方法还包括Mel频谱系数(MFCC),音频能量等。这些特征将作为深度学习模型的输入。

3. 构建深度学习模型:选择适合音频分类的深度学习模型,例如卷积神经网络(CNN)、长短时记忆网络(LSTM)或变换器网络(Transformer)。通过建立模型架构,将频谱图等音频特征输入模型,并输出对应的声音类别概率分布。

4. 数据集划分和训练:将数据集划分为训练集和测试集。使用预处理的音频特征作为输入,利用训练集对深度学习模型进行训练。通过反向传播和优化算法,调整模型参数以提高分类准确率。使用验证集进行模型的调参和选择最佳模型。

5. 模型评估和改进:使用测试集对训练好的深度学习模型进行评估。计算准确率、召回率、F1分数等指标,评估模型的性能。如果模型性能不理想,可以尝试调整超参数、修改模型架构或增加更多的训练数据。

6. 模型应用和部署:使用训练好的深度学习模型进行城市声音的实时或离线分类。将音频数据转化为频谱图或其他特征,并将其输入到训练好的模型中,得到对应的声音类别。

通过上述步骤,你可以使用从音频特征中提取的深度学习模型进行城市声音分类的研究。这种方法在城市环境监测、噪音控制等领域具有潜在的应用价值。

该数据集包含来自 8732 个类的 4 个城市声音摘录 (<=10s),它们是:

  • 空调
  • 汽车喇叭
  • 儿童玩耍
  • 狗吠
  • 钻探
  • 发动机怠速
  • 枪声
  • 手提钻
  • 警笛
  • 街头音乐

随附的元数据包含每个声音摘录的唯一 ID 及其给定的类名。

此数据集的示例包含在随附的 git 存储库中,可以从 https://urbansounddataset.weebly.com/urbansound8k.html 下载完整的数据集。

音频示例文件数据概述

这些声音摘录是.wav格式的数字音频文件。

声波通过以称为采样率的离散间隔采样来数字化(CD质量音频通常为44.1kHz,这意味着每秒采集44,100次样本)。

每个样本是特定时间间隔的波的振幅,其中位深度决定了样本的详细程度,也称为信号的动态范围(通常为 16 位,这意味着样本的范围可以是 65,536 个振幅值)。

深度学习工作流程

访问数据 -> 预处理 -> 提取信号特征(频谱图) -> 训练神经网络 -> 部署(可选)。

📚2 运行结果

预处理音频数据并提取频谱图特征。

将音频信号转换为频谱图,采样时间为fs,并将频谱图保存为原始音频文件目录。

从已提取的频谱图数据中,我们将创建用于训练和分类的简单神经网络。图像存储在频谱图文件夹中。每个类的数据在子文件夹中分开,由文件夹名称标记。

拆分数据,使 80% 的图像用于训练,10% 用于验证,其余用于测试。在我有限的时间内,我只使用了整个数据集的 25% 进行训练。

训练准确率为:92%,如下图所示:

测试的准确率为:91%,混淆矩阵如下:

🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。

[1]陈蕴博,李海军.卷积神经网络在城市声音分类中的应用研究[J].德州学院学报,2022,38(04):25-28.

[2]陈波,俞轶颖.基于深度神经网络的城市声音分类模型研究[J].浙江工业大学学报,2019,47(02):199-203.

[3]孙陈影,沈希忠.LSTM和GRU在城市声音分类中的应用[J].应用技术学报,2020,20(02):158-164.

🌈4 Matlab代码实现

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/763506.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

java正则表达式大全(常用)

一、校验数字的表达式 数字&#xff1a;^[0-9]*$ n位的数字&#xff1a;^\d{n}$ 至少n位的数字&#xff1a;^\d{n,}$ m-n位的数字&#xff1a;^\d{m,n}$ 零和非零开头的数字&#xff1a;^(0|[1-9][0-9]*)$ 非零开头的最多带两位小数的数字&#xff1a;^([1-9][0-9]*)(.[0…

一分钟教会你五种CycleGAN的优质创新思路(附代码)

专栏导读 &#x1f525;&#x1f525;本文已收录于专栏&#xff1a;《风格迁移之从入门到成功魔改》&#xff0c;欢迎免费订阅​此专栏用于带你从零基础学会什么是风格迁移&#xff0c;风格迁移有什么作用&#xff0c;传统做法和Cyclegan的原理&#xff0c;及其优缺点&#xf…

领域驱动中的Android开发

领域驱动的Android开发 构建有意义的模型 在Android开发世界中&#xff0c;最佳架构的竞争一直存在。MVC、MVP、MVVM、MVI是互联网上许多文章讨论的热门话题。 我们知道View不应包含任何复杂逻辑。我们知道Controller、Presenter和ViewModel之间的区别。但是&#xff0c;我们…

数据结构复习(一)到循环队列

第一章 数据结构绪论 数据结构&#xff1a;是相互之间存在一种或多种特定关系的数据元素的集合。 第2章 算法 算法&#xff1a;解决特定问题求解步骤的描述&#xff0c;在计算机中表现为指令的有限序列&#xff0c;并且每条指令表示为一个或多个操作。 算法具有五个基本特性…

2023.7.17-用*来画一个直角在左(右)下方的等腰直角三角形

功能&#xff1a;如题&#xff0c;直角边长度为5。 代码&#xff1a; #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> int main() {int a, b, i,j;printf("直角边的长度为&#xff1a;");scanf("%d",&a);for (i 1; i < a;i){for (j…

JMeter和Postman:哪一个更适合性能测试?

Postman 和 JMeter 都可以用来做 API 测试&#xff0c;但是它们之间有一些区别。 测试类型 Postman 主要用于功能测试和集成测试&#xff0c;而 JMeter 主要用于性能测试和负载测试&#xff0c;例如压力测试和并发测试。因此&#xff0c;如果你需要测试应用程序的性能和可伸缩…

​python接口自动化(四十一)- 发xml格式参数的post请求(超详解)​

简介 最近在工作中&#xff0c;遇到一种奇葩的接口&#xff0c;它的参数数据是通过xml&#xff0c;进行传递的&#xff0c;不要大惊小怪的&#xff0c;林子大了什么鸟都有&#xff0c;每个人的思路想法不一样&#xff0c;开发的接口也是各式各样的&#xff0c;如果想要统一的话…

2023年NOC决赛-加码未来编程赛项决赛模拟题-Python模拟题--卷3

第一题、是古罗马恺撒大帝用来对军事情报进行加解密的算法&#xff0c;它采用了替换方法对信息中的每一个英文字符循环替换为字母表序列中该字符后面的第三个字符&#xff0c;即&#xff0c;字母表的对应关系如下&#xff1a; 原文&#xff1a;A B C D E F G H I J K L M N O …

(转载)BP 神经网络的数据分类(matlab实现)

1案例背景 1.1 BP神经网络概述 BP神经网络是一种多层前馈神经网络,该网络的主要特点是信号前向传递,误差反向传播。在前向传递中,输入信号从输人层经隐含层逐层处理,直至输出层。每一层的神经元状态只影响下一层神经元状态。如果输出层得不到期望输出,则转入反向传播,根据预测…

微服务负载均衡器RibbonLoadBalancer实战

1.负载均衡介绍 负载均衡&#xff08;Load Balance&#xff09;&#xff0c;其含义就是指将负载&#xff08;工作任务&#xff09;进行平衡、分摊到多个操作单元上进行运行&#xff0c;例如FTP服务器、Web服务器、企业核心应用服务器和其它主要任务服务器等&#xff0c;从而协同…

支付通道及系统设计

支付渠道&#xff0c;也可以叫支付通道&#xff0c;是指能够提供资金流转功能的通道&#xff0c;包括但不限于银行、第三方支付机构。我们常见的借记卡&#xff08;储蓄卡&#xff09;、贷记卡&#xff08;信用卡&#xff09;、微信、支付宝、云闪付等支付方式&#xff0c;都是…

re学习(18)[ACTF新生赛2020]rome1(Z3库+window远程调试)

参考视频: Jamiexu793的个人空间-Jamiexu793个人主页-哔哩哔哩视频 代码分析&#xff1a; 其主要内容在两个while循环中&#xff08;从定义中可知flag位16个字符&#xff09;。 看第二个循环&#xff0c;可知是比较result和经过第一个循环得到的v1比较&#xff08;就是flag…

VXLAN在Linux上的实践

在笔记本上使用VMWare安装两台Ubunutu 22.04虚拟机&#xff0c;这两台虚拟机都桥接在一个物理网卡上&#xff0c;IP地址分别为192.168.31.113和192.168.31.131。 HOST1上的VXLAN配置如下&#xff1a; # ip link add vxlan0 type vxlan id 42 dstport 4789 remote 192.168.31.1…

什么是核心层?汇聚层?接入层

什么是核心层?汇聚层?接入层-百度经验 核心层&#xff1a; 核心层的功能主要是实现骨干网络之间的优化传输&#xff0c;骨干层设计任务的重点通常是冗余能力、可靠性和高速的传输。核心层一直被认为是所有流量的最终承受者和汇聚者&#xff0c;所以对核心层的设计以及网络设备…

STM32(HAL库)驱动GY30光照传感器通过串口进行打印

目录 1、简介 2、CubeMX初始化配置 2.1 基础配置 2.1.1 SYS配置 2.1.2 RCC配置 2.2 软件IIC引脚配置 2.3 串口外设配置 2.4 项目生成 3、KEIL端程序整合 3.1 串口重映射 3.2 GY30驱动添加 3.3 主函数代 3.4 效果展示 1、简介 本文通过STM32F103C8T6单片机通过HAL库方…

gma 2.0.0a3 (2023.07.17) 更新日志

安装 gma 2.0.0a3 pip install gma2.0.0a3新增 1、为矢量要素&#xff08;Feature&#xff09;添加 【Difference】&#xff08;差集&#xff09;方法   取第一个矢量要素与第二个矢量要素的几何差集。  2、为矢量要素&#xff08;Feature&#xff09;添加几种几何形状测试…

springCloud通过两种方式配置热更新

该热更新实际就是通过改动nacos官网里面的配置管理的妹纸内容实现 定义一个config包&#xff0c;在该包下面复制该代码 package cn.itcast.user.config; import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; import org.spring…

如何实现以图搜图

一、前言 在许多搜索引擎中&#xff0c;都内置了以图搜图的功能。以图搜图功能&#xff0c;可以极大简化搜索工作。今天要做的就是实现一个以图搜图引擎。 我们先来讨论一下以图搜图的难点&#xff0c;首当其冲的就是如何对比图片的相似度&#xff1f;怎么样的图片才叫相似&a…

每天一道C语言编程:排队买票

题目描述 有M个小孩到公园玩&#xff0c;门票是1元。其中N个小孩带的钱为1元&#xff0c;K个小孩带的钱为2元。售票员没有零钱&#xff0c;问这些小孩共有多少种排队方法&#xff0c;使得售票员总能找得开零钱。注意&#xff1a;两个拿一元零钱的小孩&#xff0c;他们的位置互…

Windows 10快速启动怎么关闭?

有的用户电脑在开启快速启动后&#xff0c;发现电脑的开机速度确实变快了&#xff0c;但有的用户开启快速启动后开机速度反而变慢了&#xff0c;所以想关闭快速启动。那电脑快速启动怎么关闭&#xff1f; 快速启动与休眠 快速启动与电脑的休眠功能相似&#xff0c;但又有所不同…