【使用机器学习和深度学习对城市声音进行分类】基于两种技术(ML和DL)对音频数据(城市声音)进行分类(Matlab代码实现)

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

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

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

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

目录

💥1 概述

📚2 运行结果

2.1 算例1

2.2 算例2

2.3 算例3

2.4 算例4

2.5 算例5

2.6 算例6

🎉3 参考文献

🌈4 Matlab代码实现


💥1 概述

使用机器学习和深度学习对城市声音进行分类是一个有趣的研究课题。下面是一种基本的方法,结合了机器学习(ML)和深度学习(DL)技术:

1. 数据收集和预处理:收集大量城市声音的音频数据集。可以使用麦克风或其他录音设备在不同城市环境下进行采集。确保采集到的音频数据有足够的多样性和代表性。对音频数据进行预处理,如音频剪辑、采样率调整、去噪等。

2. 特征提取:从音频数据中提取有代表性的特征向量。可以使用机器学习常见的音频特征提取方法,如Mel频谱系数(MFCC)、音频能量、过零率等。这些特征可以帮助机器学习和深度学习模型发现城市声音的区别和模式。

3. 机器学习分类:使用机器学习算法对提取的音频特征进行分类。选择适合音频分类的机器学习算法,如支持向量机(SVM)、随机森林(Random Forest)或K最近邻(K-Nearest Neighbors)等。使用预处理的音频数据和特征向量训练机器学习模型,并对其进行评估和优化。

4. 深度学习分类:构建深度学习模型进行城市声音分类。使用深度学习算法,如卷积神经网络(CNN)或循环神经网络(RNN)构建分类模型。使用音频数据的原始波形或经过预处理的特征作为输入,训练深度学习模型并进行模型优化。

5. 模型评估和比较:使用预留的测试集评估机器学习和深度学习模型的性能。比较两种技术在城市声音分类任务上的准确率、召回率、精确率等指标。根据评估结果选择更有效的模型。

6. 可解释性分析:对分类结果进行可解释性分析。了解哪些特征对城市声音的分类起到重要作用,或者使用可解释性方法(如Grad-CAM)来查看深度学习模型对城市声音的决策过程。

7. 模型优化和改进:根据分析结果和实际需求,对机器学习和深度学习模型进行优化和改进。可以尝试使用更复杂的模型架构、调整超参数或增加数据样本等来提高模型的性能。

通过上述方法,可以使用机器学习和深度学习技术对城市声音进行分类。机器学习方法适用于特征提取和分类,而深度学习方法可以直接处理原始音频数据,从而更好地捕捉城市声音的特征和模式。结合两种技术可以提高分类的准确性和效果,对于城市环境监测、噪音控制等方面具有实际应用价值。

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

空调
汽车喇叭
儿童玩耍
狗吠
钻井
引擎 怠速
枪射击
手提钻
警笛
街头音乐

随附的元数据包含每个声音摘录的唯一 ID 及其给定的类名。随附的 git 存储库中包含此数据集的示例,可以从此处下载完整数据集。

此示例中有 7 个算例:

算例 1:示例简介,探索和可视化数据

算例 2:使用诊断应用程序设计器对数据
进行预处理和提取功能(信号时域特征和频谱特征)
算例 3:模型训练和评估
算例 4:模型部署
算例 5:使用 MFCC 提取特征来训练机器学习模型
算例 6:使用小波分析和深度学习对城市声音进行分类

亮点 :
为音频数据存储
准备现实数据 标准化和规范化数字信号数据(采样率、位深度、通道数) 使用不同的方法提取特征(时域信号特征和频谱特征,MFCC,离散小波变换,Haar 1D小波变换)

📚2 运行结果

2.1 算例1

figure()
datafolder = "UrbanSound8K/structure1";
currentfolder = pwd;
cd(datafolder);
listdir=dir;  
for i=3:1:length(listdir)
    cd(listdir(i).name)
    inside=dir;
    subplot(3,4,i-2);
    [y,fs]=audioread(inside(4).name);
    plot(y(:,:)); 
    soundsc(y(:,:),fs);
    grid on;
    title(listdir(i).name)
    drawnow;
    pause(2)
    cd(strcat(currentfolder,'\',datafolder));
end

2.2 算例2

figure()
datafolder = "UrbanSound8K/structure";
currentfolder = pwd;
cd(datafolder);
listdir=dir;  
for i=3:1:length(listdir)
    cd(listdir(i).name)
    inside=dir;
    subplot(3,4,i-2);
    [y,fs]=audioread(inside(randi([4,100])).name);
    plot(y(:,:)); 
    soundsc(y(:,:),fs);
    grid on;
    title(listdir(i).name)
    drawnow;
    pause(2)
    cd(strcat(currentfolder,'\',datafolder));
end

2.3 算例3

 

2.4 算例4

2.5 算例5

figure()
datafolder = "UrbanSound8K/structure";
currentfolder = pwd;
cd(datafolder);
listdir=dir;  
for i=3:1:length(listdir)
    cd(listdir(i).name)
    inside=dir;
    subplot(3,4,i-2);
    [y,fs]=audioread(inside(4).name);
    plot(y(:,:)); 
    soundsc(y(:,:),fs);
    grid on;
    title(listdir(i).name)
    drawnow;
    pause(5)
    cd(strcat(currentfolder,'\',datafolder));
end

 

2.6 算例6

🎉3 参考文献

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

[1]HP ProLiant ML和DL服务器选用QLogic的第三代CNA产品[J].计算机与网络,2011,37(Z1):127.

[2]Kevin Chng (2023). Classify Urban Sound using Machine Learning & Deep Learning

[3]崔琳. 音频标记深度神经网络模型研究[D].燕山大学,2020.DOI:10.27440/d.cnki.gysdu.2020.001881.

🌈4 Matlab代码实现

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

图片速览 DCN K-means-friendly Spaces: Simultaneous Deep Learning and Clustering

本文使用了一种交替更新网络参数和聚类中心的方法。在网络更新完成之后&#xff0c;对于固定的网络参数和 M&#xff0c;再更新当前样本的分配向量。然后根据新的分配结果如式子3.8更新聚类中心&#xff1a; 注&#xff1a;文中还有问题是否能进行凸优化的部分 CG https…

IDEA使用GIT提交代码中文日志(commit message)乱码

最近换了新的开发环境&#xff0c;导致提交gti中文注释乱码&#xff0c;遂记录一下解决方案 idea中查看git提交信息显示中文是正常的 gitee上显示乱码 本地显示也是乱码 一、命令修改编码格式 git 安装目录下执行 git config --global i18n.commitencoding utf-8git config …

SpringMvc配置静态资源访问路径

文章目录 1. 整体流程2. registry.addResourceHandler()2.1 函数分析2.2 结果演示 3. ResourceHandlerRegistration.addResourceLocations()3.1 函数分析3.2 结果演示 1. 整体流程 1. 写一个配置类继承WebMvcConfigurationSupport 2. 利用 registry.addResourceHandler("…

vscode 配置ssh 免密登录 多台服务器

0、下载vscode Visual Studio Code - Code Editing. Redefined 之前一直用pycharm 但是好像社区免费版本不能连接服务器&#xff0c;还要本地同步代码&#xff0c;比较繁琐&#xff0c;因此改用vscode。 1、添加ssh 添加后可以尝试登录&#xff0c;确认下账号密码&#xff0…

浅谈性能测试策略之银行测试

一、性能测试的四个方面 在一般的性能测试讨论中大家通常只围绕三个方面进行提问和总结&#xff1a;测试脚本如何编写&#xff0c;被测系统如何监控&#xff0c;性能瓶颈如何调优。大部分刚刚接触性能测试的人会纠结于脚本的编写&#xff0c;如何设置参数化、如何设置关联、何时…

结合ChatGPT制作PPT

今天看到圈友的一个AI分享&#xff0c;然后自己本身需要做一个分享的PPT。刚好那着帖子实战一下。先说下整体感受。 优点&#xff1a;制作成本确实会比较低&#xff0c;很熟练的话大概就是1分钟一个都有可能。整体流程是先找个第三方PPT制作网站&#xff0c;看下支不支持文本转…

C# 属性

文章目录 实例属性静态属性只读属性&#xff1a;内部只读属性&#xff1a;动态计算值的属性方式一&#xff1a;主动计算方式二&#xff1a;被动计算 快速生成属性的方法&#xff1a;输入propfull&#xff0c;按两下tab键&#xff0c;然后再按tab键一次修改有底纹的字段&#xf…

Spring后置处理器BeanFactoryPostProcessor与BeanPostProcessor源码解析

文章目录 一、简介1、BeanFactoryPostProcessor2、BeanPostProcessor 二、BeanFactoryPostProcessor 源码解析1、BeanDefinitionRegistryPostProcessor 接口实现类的处理流程2、BeanFactoryPostProcessor 接口实现类的处理流程3、总结 三、BeanPostProcessor 源码解析 一、简介…

6.7Jmeter5.1,非GUI模式,通过命令行传递线程数

原创文章&#xff0c;谢绝转载。 一、前提 本次做性能测试&#xff0c;需求是需要在Linux下的非GUI模式下执行。但用命令行执行时&#xff0c;线程数需要改变&#xff0c;为了执行方便&#xff0c;不需要每次都在脚本中修改线程数&#xff0c;那么线程数都需要通过参数传递&…

使用docker的常见bug

BUG1&#xff1a;磁盘被占满导致docker无法使用 docker ps 【查看docker能否正常使用】 正常的话会打印下图信息: 不正常的话打印如下图信息&#xff1a; journalctl -u docker 【查看docker无法正常使用的原因】&#xff0c;本次测试中遇到下图bug&#xff0c;意思是/var/l…

Bard:一个可以描述图像的人工智能

Bard 是一个大型语言模型&#xff0c;可以对各种提示和问题进行交流和生成类似人类的文本。它接受了大量的文字和代码训练&#xff0c;可以生成文本、翻译语言、编写不同类型的创意内容&#xff0c;并以信息丰富的方式回答你的问题。 Bard 还可以识别图像。它可以识别图像中的…

libvirt 热迁移流程及参数介绍

01 热迁移基本原理 1.1 热迁移概念 热迁移也叫在线迁移&#xff0c;是指虚拟机在开机状态下&#xff0c;且不影响虚拟机内部业务正常运行的情况下&#xff0c;从一台宿主机迁移到另外一台宿主机上的过程。 1.2 虚拟机数据传输预拷贝和后拷贝 预拷贝(pre-copy)&#xff1a; …

星火认知大模型,让我感受到了国产AI的崛起

文章目录 一、申请和测试代码二、实测GPT4.0和星火认知大模型的对比2.1 测试网站2.2 经典问题提问对比2.3 代码问题提问对比2.4 论文问题对比2.5 评价 一、申请和测试代码 在我之前的一篇文章中&#xff0c;我分享了如何申请星火认知大模型的内测&#xff0c;并提供了一份可以…

python opencv 级联Haar多目标检测

一、基于OpenCV的haar分类器实现笑脸检测 1、Haar分类器介绍 &#x1f680;Haar分类器是一种基于机器学习的目标检测算法&#xff0c;它使用Haar特征描述图像中的目标。Haar特征是基于图像亮度的局部差异计算得出的&#xff0c;可以用来描述目标的边缘、角落和线条等特征。 使用…

大模型开发(七):LLM提示工程(Prompt)与思维链(CoT)

全文共6500余字&#xff0c;预计阅读时间约13~20分钟 | 满满干货(附案例)&#xff0c;建议收藏&#xff01; 一、LLM模型的涌现能力 在GPT没有爆火之前&#xff0c;一直以来的共识都是&#xff1a;模型的规模越大&#xff0c;模型在下游任务上的能力越多、越强。 LLM原始训…

QT_Creator格式化工具使用

QT_Creator代码格式化工具使用 为了确保代码格式整齐统一&#xff0c;使用代码格式化工具会将写的代码自动格式化以保证格式统一 Astyle&#xff1a; A Free, Fast, and Small Automatic Formatter for C, C, C/CLI, Objective-C, C#, and Java Source Code 一、C和C代码格式化…

Ceph 服务的运用

目录 一、资源池 pool 管理 1.创建一个 Pool 资源池 2.查看集群 Pool 信息 3.查看资源池副本的数量 4.查看 PG 和 PGP 数量 5.修改 pg_num 和 pgp_num 的数量为 128 6.修改 Pool 副本数量为 2 7.修改默认副本数为 2 8.删除 Pool 资源池 8.1修改配置文件 8.2推送 ceph…

【半监督医学图像分割 2023 CVPR】PatchCL

文章目录 【半监督医学图像分割 2023 CVPR】PatchCL摘要1. 简介2. 相关工作2.1 半监督学习2.2 对比学习 3. 方法3.1 类感知补丁采样3.2 伪标记引导对比损失3.3 总体学习目标3.4 伪标号生成与求精 4. 实验5. 结果 【半监督医学图像分割 2023 CVPR】PatchCL 论文题目&#xff1a;…

MySQL操作库

MySQL操作库 一.创建数据库1. 创建数据库的方式2. 创建数据库时的编码问题3. 指定编码创建数据库4. 验证校验规则对数据库的影响 二.数据库与文件系统的关系三.操纵数据库1. 查看数据库2. 删除数据库3. 修改数据库 四.数据库的备份和恢复1.数据库的备份2.数据库的恢复 五.查看连…

OpenCV——总结《车牌识别》

1.图片中的hsv hsv提取蓝色部分 # hsv提取蓝色部分 def hsv_color_find(img):img_copy img.copy()cv2.imshow(img_copy, img_copy)"""提取图中的蓝色部分 hsv范围可以自行优化cv2.inRange()参数介绍&#xff1a;第一个参数&#xff1a;hsv指的是原图第二个参…