基于时频模糊算子的数据增强方法

关键词:时频模糊,数据增强,机器学习,音频预处理

    我们引入时频模糊算子,该算子将信号的短时傅里叶变换与指定的核进行卷积在SpeechCommands V2数据集上训练了一个使用ResNet-34架构的卷积神经网络(CNN)和一个使用TinyViT-11M架构的视觉变换器(ViT)使用不同增强设置的频谱图对音频信号进行分类,结果表明该算子可以显著提高测试性能,特别是在数据匮乏的情况下

1、基于短时傅里叶变换(STFT)的模糊算子与基于谱图的模糊算子对比

STFT模糊最纯粹的实现包括一个STFT、一个卷积操作和一个逆STFT。在代码中,我们可以将其实现为一个函数,该函数作用于信号的波形频谱图模糊,是通过首先计算频谱图,将其重缩放到对数分贝刻度,然后应用卷积来实现的广受欢迎的SpecAugment增强方法将频谱图乘以时频掩蔽。

  • 输入信号处理:STFT模糊算子直接在STFT域进行模糊处理,而谱图模糊算子则在谱图域进行模糊处理,即先计算信号的STFT,然后取其平方模值得到谱图,并在谱图上进行模糊处理。
  • 相位信息处理:STFT模糊算子保留了信号的相位信息,而谱图模糊算子会丢失信号的相位信息,只处理幅度信息。
  • 模糊效果:由于STFT模糊算子考虑了相位信息,因此其模糊效果与谱图模糊算子有所不同,特别是对于相位变化较大的信号。
  • 实现复杂度:STFT模糊算子的实现较为复杂,需要处理复数运算,而谱图模糊算子实现相对简单,只需进行实数运算。
  • 逆变换处理:由于谱图模糊算子丢失了相位信息,因此逆变换需要通过相位检索等复杂方法来近似恢复原始信号,而STFT模糊算子则可以直接逆变换得到原始信号的近似。
  • 适用场景:STFT模糊算子更适合需要精确恢复原始信号的增强场景,而谱图模糊算子更适用于对相位信息要求不高的场景。

2、参数设置

  • 模糊核函数:选择选择正则性好的核函数,如高斯核,以保证模糊运算的可逆性和稳定性;调整核函数的形状参数,如高斯核的标准差,标准差应该适中,过小会导致模糊效果不明显,过大则会严重破坏信号结构;在时域和频域的标准差应保持一致,以确保时频域的均匀模糊效果。
  • 窗函数:选择具有平滑边界及较低的旁瓣电平的窗函数,如汉明窗或汉宁窗,并确定窗函数的长度,较长的窗函数可以提供更好的时间分辨率,但也会降低频率分辨率;根据具体应用场景选择合适的窗函数,如语音信号处理中常用汉明窗,而音乐信号处理中常用汉宁窗。
  • 模糊程度:调整模糊程度参数,例如模糊核的强度或模糊核的方差,以平衡增强效果和噪声。增大模糊核的大小,即增加核的宽度或高度,可以增加模糊的程度。减小核的大小,则会减小模糊程度。尝试使用不同的模糊算法,如高斯模糊、中值模糊等,每种算法都具有不同的模糊效果。
  • 数据增强比例:指使用增强数据与原始数据之比控制增强样本在训练集中的比例,例如20%的增强样本,以避免过拟合。
  • 训练样本数量:当训练样本较少时,使用模糊增强效果更佳,但需权衡模型性能与训练效率。
  • 测试阶段处理:决定是否在测试阶段使用增强,如果使用,需要注意增强程度不要与训练阶段产生较大差异。

3、适用场景

  • 语音识别:通过时频模糊算子对语音信号进行增强,可以提高语音识别系统的鲁棒性,特别是在噪声环境下。实验证明,这种方法能够显著提升模型在语音命令识别任务中的性能。
  • 音乐分类:通过对音乐信号的时频表示进行模糊处理,可以提高模型对音乐风格、乐器等分类任务的分类准确率,进而提升音乐信息检索的效率。
  • 音频事件检测:在增强后的时频表示上训练模型,可以使其对音频事件(如拍掌、喊叫等)更加敏感,从而提升音频事件检测的准确率。
  • 机器学习中的数据增强:作为一种数据增强手段,时频模糊算子可以帮助生成更多的训练样本,以提高模型的泛化能力,适用于机器学习中的多种信号分类任务。
  • 语音增强:通过在时频域模糊处理含噪声语音的STFT,可以去除噪声,并恢复语音信号,是一种有效的语音增强方法。
  • 声学场景分类:通过对训练样本的时频表示进行模糊处理,可以增加样本的多样性,有助于模型学习区分不同的声学场景。
  • 关键词检测:模糊处理关键词语音的时频表示,可以模拟关键词在噪声环境下的变化,提高关键词检测系统的鲁棒性。
  • 噪声抑制:在噪声抑制任务中,通过模糊含噪语音的时频表示,可以消除噪声,并恢复干净的语音信号。

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

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

相关文章

vscode C++调试设置

cmakelist需要改成set(CMAKE_BUILD_TYPE "Debug") 如果有set(CMAKE_CXX_FLAGS "-O0 -g3 -stdliblibstdc -no-pie -pthread -Wall -D_GLIBCXX_USE_NANOSLEEP -DLINUX")//"-O0优化项目改成0,否者-O2/3部分编译优化后打不了断点 然后创建la…

freertos的信号量和互斥锁学习笔记

freertos的信号量和互斥锁有两个比较形象的例子可以解释两者的主要用途。 第一个是信号量: 使用信号量的最初目的是为了给共享 资源建立一个标志,该标志表示该共享资源被占用情况。这样,当一个任务在访问共享资源之前,可以先对这…

【MySQL精通之路】InnoDB(6)-磁盘结构(4)-双写缓冲区

主博客: 【MySQL精通之路】InnoDB(6)-磁盘上的InnoDB结构-CSDN博客 上一篇: 【MySQL精通之路】磁盘上的InnoDB结构-表空间-CSDN博客 下一篇: 【MySQL精通之路】InnoDB(6)-磁盘上的InnoDB结构-Redolog-CSDN博客 目录 1.介绍 1.1 配置变量…

报名开启!2024 开源之夏丨Serverless Devs 课题已上线!

Serverless 是近年来云计算领域热门话题,凭借极致弹性、按量付费、降本提效等众多优势受到很多人的追捧,各云厂商也在不断地布局 Serverless 领域。 Serverless Devs 是一个由阿里巴巴发起的 Serverless 领域的开源项目,其目的是要和开发者们…

leetcode以及牛客网单链表相关的题、移除链表元素、链表的中间节点、合并两个有序链表、反转链表、链表分割、倒数第k个节点等的介绍

文章目录 前言一、移除链表元素二、链表的中间节点三、合并两个有序链表四、反转链表五、链表分割六、倒数第k个节点总结 前言 leetcode以及牛客网单链表相关的题、移除链表元素、链表的中间节点、合并两个有序链表、反转链表、链表分割、倒数第k个节点等的介绍 一、移除链表元…

最近最少使用缓存

题目:请设计实现一个最近最少使用缓存,要求如下两个操作的时间复杂度都是O(1)。 get(key):如果缓存中存在键key,则返回它对应的值;否则返回-1.put(key,value):如果缓存中之前包含键key,则它的值…

扫盲:如何提升医学图像分割性能-to do list

导读:本文主要讨论了如何改进图像分割项目中的分割性能,包括一般性和具体性的问题解决方案,以及如何通过调整模型参数、改善数据集质量、优化模型架构、调整超参数、增加训练时长、改善图像分辨率和后处理技术等方法来提高分割效果。 图像分…

【MySQL精通之路】MySQL的使用(9)-设置环境变量

可以在命令提示符下设置环境变量,以影响命令处理器的当前调用,也可以永久设置环境变量以影响未来的调用。 要永久设置变量,可以在启动文件中进行设置,也可以使用系统为此提供的接口进行设置。 有关具体细节,请参阅命…

拼多多暂时超越阿里成为电商第一

关注卢松松,会经常给你分享一些我的经验和观点。 拼多多的财报又炸裂了: 拼多多发布了第一季度财报,营收868亿,增长了131%,净利润279亿,增长了246%,营销服务收入424亿,也就是商家的…

小林coding笔记

MySQL执行流程 MySQL 的架构共分为两层:Server 层和存储引擎层。Server 层负责建立连接、分析和执行 SQL。存储引擎层负责数据的存储和提取。 Mysql执行 启动Mysql net start mysql登陆 mysql -u root -p输入密码

SwiftUI中的动画.animation和withAnimation

动画是通过改变视图的状态来给视图添加平滑视图变化的能力。SwiftUI中有两种类型的动画:隐式动画和显式动画。 不管是哪种动画,我们都需要一个被State包装的状态属性值,通过这个值的改变来促使与之相关的UI刷新,继而执行动画。 隐式动画.ani…

mariadb10.5.8版本主从搭建

主从服务安装我们先略过了,网上的安装教程一大把,直接开始讲配置 主服务配置 [mysqld] ...server-id1 #开启二进制日志 log-binmysql-bin #中继日志的前缀名称 relay-logmysql-relay-bin #控制binlog的写入频率。每执行多少次事务写入一次 sync_binlog…

正点原子[第二期]Linux之ARM(MX6U)裸机篇学习笔记-19讲 串口实验UART

前言: 本文是根据哔哩哔哩网站上“正点原子[第二期]Linux之ARM(MX6U)裸机篇”视频的学习笔记,在这里会记录下正点原子 I.MX6ULL 开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了正点原子教学视频和链接中的内容。…

水平垂直居中的六种方法

1. 使用 Flexbox Flexbox 是一个现代的布局模型,可以轻松实现元素的水平和垂直居中。 .container {display: flex;justify-content: center; /* 水平居中 */align-items: center; /* 垂直居中 */height: 100vh; /* 视窗高度 */ }2. 使用 Grid CSS Grid 是另一种强…

【Golang】 Go语言中如何将参数添加到URL中

文章目录 前言一、参数解释二、代码实现三、总结 前言 在开发Web应用程序时,我们经常需要将参数添加到URL中,以便将数据发送到服务器。这些参数通常用于GET请求,以向服务器传递查询条件或其他信息。在Go语言中,我们可以使用net/u…

Vivado IP核的快速入门 官方手册和例程

在IP Catalog中选择要使用的IP核,可以查看支持的器件与资料。 在设计源sources页面中选中配置完成的IP核点击右键选择 Open IP Example Design,等待工程加载完成即可,可以点击Run Simulation进行功能仿真进行IP核的学习。 参考&#xff1…

Mac Pro中的开源虚拟机UTM安装ubuntu(Applce M1,M2芯片)(1)

MacPro安装UTM 1 UTM 下载UTM虚拟机链接: https://mac.getutm.app/ 建议官网下载: 下载 Ubuntu Arm 64版 下载 Ubuntu Arm 64版链接: https://cn.ubuntu.com/download/server/arm 2 安装UTM 2.1 安装在mac上 2.2 点Open 2.3 建虚拟机### 2.4 点出虚拟机 2.5 O…

系统分析师-案例分析-数据库

系统分析师-案例分析-数据库 更多软考资料 https://ruankao.blog.csdn.net/ 文章目录 系统分析师-案例分析-数据库数据库考察知识点规范化函数依赖范式1NF2NF3NF 规范化问题不规范化反规范化设计反规范化设计同步问题 并发控制性能优化完整性约束视图安全分布式数据库特点优点…

前端性能优化:从系统分析讲到实践策略

前言 在过去几年,我曾经写过几篇和性能优化相关的文章,例如有性能优化方法相关的,有性能监控相关的。但是都只关注于局部,没有从整体上去看待、分析性能优化。所以本文打算尝试从整体上去分析前端性能优化,从性能指标…

使用 RisingWave 和 Redash 处理和可视化实时数据

在创建流处理管道时,需要两个关键组件:一个用于处理和转换数据,一个用于数据可视化。RisingWave 和 Redash 就提供了一个优秀的解决方案。 RisingWave 是一个支持实时数据处理的分布式 SQL 流数据库。它提供增量更新的物化视图,使…