基于时频模糊算子的数据增强方法
关键词:时频模糊,数据增强,机器学习,音频预处理
我们引入时频模糊算子,该算子将信号的短时傅里叶变换与指定的核进行卷积,在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,可以去除噪声,并恢复语音信号,是一种有效的语音增强方法。
- 声学场景分类:通过对训练样本的时频表示进行模糊处理,可以增加样本的多样性,有助于模型学习区分不同的声学场景。
- 关键词检测:模糊处理关键词语音的时频表示,可以模拟关键词在噪声环境下的变化,提高关键词检测系统的鲁棒性。
- 噪声抑制:在噪声抑制任务中,通过模糊含噪语音的时频表示,可以消除噪声,并恢复干净的语音信号。
相关文章:

基于时频模糊算子的数据增强方法
关键词:时频模糊,数据增强,机器学习,音频预处理 我们引入时频模糊算子,该算子将信号的短时傅里叶变换与指定的核进行卷积,在SpeechCommands V2数据集上训练了一个使用ResNet-34架构的卷积神经网络(CNN)和一…...

浅谈后端整合Springboot框架后操作基础配置
boot基础配置 现在不访问端口8080 可以吗 我们在默认启动的时候访问的是端口号8080 基于属性配置的 现在boot整合导致Tomcat服务器的配置文件没了 我们怎么去修改Tomcat服务器的配置信息呢 配置文件中的配置信息是很多很多的... 复制工程 保留工程的基础结构 抹掉原始…...

英码科技算能系列边缘计算盒子再添新成员!搭载TPU处理器BM1688CV186AH,功耗更低、接口更丰富
在数据呈现指数级增长的今天,越来越多的领域和细分场景对实时、高效的数据处理和分析的需求日益增长,对智能算力的需求也不断增强。为应对新的市场趋势,英码科技凭借自身的硬件研发优势,携手算能相继推出了基于BM1684的边缘计算盒…...

selenium 爬取今日头条
由于今日头条网页是动态渲染,再加上各种token再验证,因此直接通过API接口获取数据难度很大,本文使用selenium来实现新闻内容爬取。 selenium核心代码 知识点: 代码中加了很多的异常处理,保证错误后重试,…...

docker 安装 yapi
文章目录 docker 安装 yapi一、拉取镜像二、创建目录三、添加配置文件四、初始化数据库表五、启动 yapi六、测试以及修改默认密码 没有 MongDB 的可以先看这个教程:MongDB安装教程 docker 安装 yapi 版本: 1.9.5 一、拉取镜像 docker pull yapipro/y…...

【AI如何帮你编写测试用例并输出表格格式】
1、工具:顺便使用一款生成式AI即可,此处用的是ChatGPT,Kimi这两个工具试验。 2、首先要拿到需求文档,根据需求文档向AI发出如下指令(Prompt) “请根据下面这段需求,编写测试用例: …...

九宫格转圈圈抽奖活动,有加速,减速效果
在线访问demo和代码在底部 代码,复制就可以跑 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><tit…...

利用阿里OSS服务给文件设置过期删除--简单版
在云存储广泛应用的今天,阿里云的Object Storage Service(OSS)以其高度可扩展性、安全性和成本效益,成为了众多企业和开发者存储海量数据的首选方案。随着数据量的不断膨胀,高效的数据管理和成本控制变得尤为重要。其中…...

LabVIEW控制Trio控制器
将LabVIEW与Trio控制器结合,可以实现对复杂运动系统的控制和监测。以下是详细的方法和注意事项: 一、准备工作 软件安装: 安装LabVIEW开发环境,确保版本兼容性。 安装Trio控制器的相关驱动程序和软件,如Trio Motion …...

02--大数据Hadoop集群实战
前言: 前面整理了hadoop概念内容,写了一些概念和本地部署和伪分布式两种,比较偏向概念或实验,今天来整理一下在项目中实际使用的一些知识点。 1、基础概念 1.1、完全分布式 Hadoop是一个开源的分布式存储和计算框架࿰…...

【ARMv8/v9 异常模型入门及渐进 10 -- WFI 与 WFE 使用详细介绍 1】
请阅读【ARMv8/v9 ARM64 System Exception】 文章目录 WFI 与 WFE等待事件(WFE)发送事件(SEV)本地发送事件(SEVL)WFE 唤醒事件 WFE 使用场景举例与代码实现wfe睡眠函数sev 事件唤醒函数全局监视器和自旋锁 …...

@DateTimeFormat 和 @JsonFormat 的区别和使用方式
一. DateTimeFormat 详细用例 DateTimeFormat 是 Spring Framework 的一部分,它用于绑定 Web 请求中的字符串到 Java 的日期和时间类型。这种转换常常在 Spring MVC 控制器中处理 HTTP 请求参数或路径变量时使用。 使用场景: 将 HTTP 请求中的日期(也就是网络传输…...

C++—结构体
结构体(struct),是一种用户自定义复合数据类型,可以包含不同类型的不同成员。 结构体的声明定义和使用的基本语法: // 声明结构体struct 结构体类型 { 成员1类型 成员1名称; ...成员N类型 成员N名称; };除声明…...

指针与引用
指针与引用 一:指针与引用场景二级目录三级目录 一:指针与引用场景 二级目录 三级目录...

使用 mysql-binlog-connector 监听处理 MySQLBinlog 文件
1. 需求概述 业务开发中经常需要根据一些数据变更实现相对应的操作。例如,一些用户注销自己的账户,系统可以给用户自动发短信确认,这时有两种解决方案,一种是耦合到业务系统中,当用户执行注销操作的时候,执…...

CF Div2 729 Plus and Multiply
原题链接:Problem - 1542B - Codeforces 题目大意:初始集合里面只有1,给a和b,可以对集合里面的数x进行二种操作,x*a,xb,并放入集合,给数n,问集合里面会不会产生n,会就输…...

Joomla 3.7.0 (CVE-2017-8917) SQL注入漏洞环境
1 漏洞概述 Joomla是一个基于PHP的内容管理系统(CMS),广泛应用于各类网站。2017年,Joomla 3.7.0版本被发现存在SQL注入漏洞(CVE-2017-8917),攻击者可以利用该漏洞对数据库进行未授权查询或操作…...

Python高克勒-曼宁-斯特里克勒公式计算一维流量
📜曼宁公式-用例 📜Python流体数据统计模型和浅水渗流平流模型模拟 | 📜Python蒸发散物理问题(微积分-线性代数-拉普拉斯和傅立叶变换) ✒️Python计算一维流量 高克勒-曼宁-斯特里克勒公式公式基于一维(横截面平均)…...

【GD32系列--基本定时器Timer + 定时1ms 灯光间隔1s闪烁例程】
这里写目录标题 一、定时器的作用二、定时器简介1、定时器类型2、时钟树3、定时器功能配置框图 三、定时器寄存器分析1、控制寄存器(TIMERx_CTL0))2、DMA 和中断使能寄存器 (TIMERx_DMAINTEN)3、预分频寄存器 (TIMERx_PSC)4、计数器自动重载寄存器 (TIME…...

第11章 集合与迭代器
目录 目录 目录 11.1 Collection集合 11.1.1 集合的概念 11.1.2 Collection接口 1、添加元素 2、删除元素 3、查询与获取元素 11.2 List 有序集合 11.2.1 新增方法 11.2.2 ArrayList 11.2.3 LinkedList 1、单向链表 2、双向链表 3、删除元素 11.3 Set 无序集合 …...

探索Linux中的神奇工具:探秘tail命令的妙用
探索Linux中的神奇工具:探秘tail命令的妙用 在Linux系统中,tail命令是一个强大的工具,用于查看文件的末尾内容。本文将详细介绍tail命令的基本用法和一些实用技巧,帮助读者更好地理解和运用这个命令。 了解tail命令 tail命令用…...

1688商品API接口:电商数据自动化的新引擎
1688作为中国领先的B2B电子商务平台,为广大商家和制造商提供了一个展示和交易商品的广阔市场。随着1688商品API接口的推出,开发者和商家现在能够通过编程方式自动化获取和管理商品数据,极大地提高了工作效率和数据处理的灵活性。 一、1688商…...

路由器不能端口映射什么原因?如何设置内网映射?
近期有小伙伴发来求助信息,他以前开游戏服务器和别人一起玩,那个时候端口映射还好,不知道哪一天开始突然不行了,已经是公网了,光猫是桥接的状态,连路由器都换了,就是不能端口映射开服务器&#…...

开源RAG,本地mac启动 dify源码服务
一、Dify文档 参考官方文档来操作,基本没太大的问题。一些细节,我在本篇文章中补充了出来。 这篇文章主要讲以源码的方式启动后端服务,前端服务使用容器启动。 dify 文档地址 欢迎使用 Dify | 中文 | Dify Dify 本地源码部署文档ÿ…...

【Linux取经路】基于信号量和环形队列的生产消费者模型
文章目录 一、POSIX 信号量二、POSIX 信号量的接口2.1 sem_init——初始化信号量2.2 sem_destroy——销毁信号量2.3 sem_wait——等待信号量2.4 sem_post——发布信号量 三、基于环形队列的生产消费者模型3.1 单生产单消费模型3.2 多生产多消费模型3.3 基于任务的多生产多消费模…...

计算机SCI期刊,中科院2区,收稿范围非常广泛!
一、期刊名称 Journal of Web Semantics 二、期刊简介概况 期刊类型:SCI 学科领域:计算机科学 影响因子:2.5 中科院分区:2区 出版方式:开放出版 版面费:$1600 三、期刊征稿范围 《网络语义学杂志》…...

JDK、JRE、编译指令和垃圾回收机制详解
JDK 全称 Java SE Development Kit (Java 开发工具包) JVM虚拟机:Java运行的地方 核心类库:Java提前编好的东西 开发工具: javac,java,jdb,jhat javac:Java编译器,用于将Java源代码编译成Java字节码文件(.class)。 java: java…...

【ARM 嵌入式 C 入门及渐进 6.2 -- ARMv8 C 内嵌汇编读系统寄存器的函数实现】
请阅读【嵌入式开发学习必备专栏】 文章目录 ARMv8 C 内嵌汇编读系统寄存器 ARMv8 C 内嵌汇编读系统寄存器 要在ARMv8架构中通过C代码和内嵌汇编来读取系统寄存器s3_0_c15_c5_5的值,并将其返回,可以按照以下方式实现system_read_reg函数: #…...

使用 LlamaParse 进行 PDF 解析并创建知识图谱
此 Python 笔记本提供了有关利用 LlamaParse 从 PDF 文档中提取信息并随后将提取的内容存储到 Neo4j 图形数据库中的综合指南。本教程在设计时考虑到了实用性,适合对文档处理、信息提取和图形数据库技术感兴趣的开发人员、数据科学家和技术爱好者。 该笔记本电脑的主…...

Oracle行迁移解析
行迁移(Row Migration)是Oracle数据库中的另一个现象,它与行链接类似,都是由于数据行大小的变化导致的存储问题,但其本质和影响有所不同。 触发条件:行迁移发生在当一个已存在的、原先能够完全存储在一个数…...