AI降噪的N种数据扩增方法

news2025/1/15 6:38:54

数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已

基于统计信号处理的传统噪声抑制方法是通过检测持续的背景声,来估计背景噪声,然后通过估计到的背景噪声计算增益因子对带噪语音进行抑制。但这种方式针对规律的稳态噪声比较有效,如空调声,吸尘器的声音等,而针对突发噪声,如撞击声,键盘声,关门声等等效果往往不如人意。随着深度学习的兴起,越来越多的人们开始关注并使用深度学习强大的非线性能力进行语音降噪。数据驱动的方法如何生成高质量的数据在训练过程中显得尤为重要,这里对AI降噪的一些数据扩增方法进行了总结和实现。

MixTransform 

首先使用最多的就是让纯净语音和带噪语音按照不同信噪比进行混合,这样就可以得到丰富的带噪语音,一般采用随机数生成随机的信噪比,信噪比的范围可以根据自己的使用场景进行设定。

SpecTransform

在RNNoise论文中,作者提出使用二阶的IIR滤波器分别对语音信号和噪声信号进行处理,从而丰富语音频谱特性。

VolTransform

不同设备的增益不同,不同距离的说话人声音大小不同,为了模拟这种情况,可以使用阶梯状的增益对语音信号进行处理。

FilterTransform

我们知道有些设备会对输入信号进行EQ处理,从而使得声音具有一定的偏向性,这里可以使用滤波器进行类似的数据扩增。

ClipTransform

当声音大小超过输入设备比特所能表示的最大范围后就会发生削顶,这种也是现实生活中常见的一种情况。

ReverbTransform

为了模拟不同的使用场景,可以通过RIR去模拟不同的房间对应的不同的混响时间。

BreakTransform

在网络通话过程中丢包是很常见的事情,我们可以通过时间轴上的mask来模拟语音帧不连续的过程。

HowlingTransform

啸叫也是会议通话场景经常会发生的情况,我们可以通过AIR和回路中大于1的增益来模拟这种情况。

DynamicTransform

上面所讲的都是针对一种情况的数据扩增方法,但是真实声学环境比较复杂,很容易想到使用以上的2种或者多种组合进行数据扩增。

Conclusion

以上就是AI降噪常用的数据扩增方式,当然篇幅有限还有其他的数据扩增方式没有介绍。总的来说,训练数据是否丰富和干净一定程度上决定了AI降噪模型的性能,正如本文开头那句话所阐述的道理。

  本文相关代码

https://github.com/Ryuk17

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

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

相关文章

【算法笔记】最近公共祖先(LCA)算法详解

0. 前言 最近公共祖先简称 LCA(Lowest Common Ancestor)。两个节点的最近公共祖先,就是这两个点的公共祖先里面,离根最远的那个。 这种算法应用很广泛,可以很容易解决树上最短路等问题。 为了方便,我们记…

企业内训方案|领导力与执行力/TTT内训师/管理者情商修炼

企业内训方案|领导力与执行力/TTT内训师/管理者情商修炼 》》领导力与执行力 从精兵到强将 高绩效团队协作与跨部门沟通 核心人才的管理与激励 卓越管理者的胜任力提升 MTP中层管理技能提升训练 打造高绩效团队 高效沟通技巧 高绩效团队管理(中高层/中基层&#xf…

CRM帮助企业实现销售自动化

随着互联网技术的发展,各家企业都善用互联网优势发布各种信息,导致潜在客户被各种推销信息所淹没,销售周期延长,企业可以借助CRM有效规范销售流程,帮助企业实现销售自动化。 前言 各行各业的业务流程中似乎都少不了销…

OSPF综合实验(1.5)

目标: 1、首先进行基于172.16.0.0/16的ip地址规划 首先题中有5个区域和一个RIP共需要5个网段 可以借3位划分为8个网段 172.16.0.0/19 area 0 然后将172.16.0.0/19再借6位分为172.16.0.0/25---172.16.31.128 25作为其中前一个骨干ip网段 172.16.0.0/25在用于只…

TCP滑动窗口机制(附图例)

文章目录前言一、滑动窗口的引出二、流量控制2.1 16位窗口大小2.2 发送缓冲区2.3 逐步解析滑动窗口运作三、快重传机制四、拥塞控制(仅供参考)五、延迟应答与捎带应答(略)总结前言 博主个人社区:开发与算法学习社区 博…

测开-刷笔试题时的知识点

圈复杂度(暂缓)复杂度越大,程序越复杂计算公式:V(G) E - N 2E代表控制流边的数量,n代表节点数量V (G) P 1p为判定节点数几种常见的控制流图:Linux文件权限具有四种访问权限:r(可…

进程信号理解3

进程信号理解3 1.什么叫做信号递达 实际执行信号的处理动作叫做信号递达,比如默认,忽略,自定义动作 2.什么叫做信号未决? 信号产生到信号递达的状态叫做信号未决 3.进程被阻塞和进程被忽略有什么区别? 进程被阻塞属…

iPhone更换字体教程,无需越狱,支持所有苹果设备!

上周开始,技术大神zhuowei 发现了一个iOS系统更换字体的漏洞,经过不断修正,现在已经可利用上了! 先来看看更换字体后的效果,更换之后,所有App上的字体都得到更改,下图是打开文章的效果 下图是聊…

excel查重技巧:如何用组合函数快速统计重复数据(上)

统计不重复数据的个数,相信不少小伙伴在工作中都遇到过这样的问题。通常的做法都是先把不重复的数据提取出来,再去统计个数。而提取不重复数据的方法之前也分享过,基本有三种方法:高级筛选、数据透视表和删除重复项。其实使用公式…

Ngnix 实现访问黑名单功能

前言 有时候在配置的时候我们会禁用到一些IP,使用nginx 禁用到ip但是需要重启nginx,这样当我们要是实现动态的这种就比较麻烦,当然你可以使用网关来实现相对于nginx实现的这种方式要好很多,但是今天咱们说到这里,那就…

数据可视化系列-05数据分析报告

文章目录数据可视化系列-05数据分析报告1、了解初识数据分析报告数据分析报告简介数据分析报告的作用报告的能力体现报告编写的原则报告种类2、掌握数据分析报告结构标题页目录前言正文结论与建议附录3、了解报告的描述规范报告注意事项报告表达的维度数据结论可用指标数据可视…

代码随想录算法训练营第3天| 203. 移除链表元素、206. 反转链表

代码随想录算法训练营第3天| 203. 移除链表元素、206. 反转链表 移除链表元素 力扣题目链接 删除链表中等于给定值 val 的所有节点。 这里以链表 1 4 2 4 来举例,移除元素4。 那么因为单链表的特殊性,只能指向下一个节点,刚刚删除的是链表…

RS485通信----基本原理+电路图

一、RS485 通信----简介 RS485 是美国电子工业协会(Electronic Industries Association,EIA)于1983年发布的串行通信接口标准,经通讯工业协会(TIA)修订后命名为 TIA/EIA-485-A。 RS485 是一种工业控制环境…

获取Java集合中泛型的Class对象

直接获取时获取不到的,类型被虚拟机擦除了 泛型的正常工作是依赖编译器在编译源码的时候,先进行类型检查,然后进行类型擦除并且在类型参数出现的地方插入强制转换的相关指令实现的。编译器在编译时擦除了所有类型相关的信息,所以…

【36张图,一次性补全网络基础知识】

OSI和TCP/IP是很基础但又非常重要的知识,很多知识点都是以它们为基础去串联的,作为底层,掌握得越透彻,理解上层时会越顺畅。今天这篇网络基础科普,就是根据OSI层级去逐一展开的。 01 计算机网络基础 01 计算机网络的…

让阿里再次伟大--钉钉如何长成独角兽的?

文章目录引子开端发展历程:从2014到2022钉钉和阿里云的全面融合钉钉体系架构技术挑战ToB与ToC的差异安全要求高稳定性要求高业务多样性钉钉的创新存储创新单元化平台开放这些年,钉钉做了哪些优化?钉钉的技术栈钉钉的竞争对手们飞书微信华为welink未来参…

ArcGIS基础实验操作100例--实验58二维点、线转三维

本实验专栏参考自汤国安教授《地理信息系统基础实验操作100例》一书 实验平台:ArcGIS 10.6 实验数据:请访问实验1(传送门) 高级编辑篇--实验58 二维点、线转三维 目录 一、实验背景 二、实验数据 三、实验步骤 (1&…

二、kubernetes集群环境搭建

文章目录1.前置知识点2.kubeadm 部署方式介绍3.安装要求4.最终目标5.集群环境6 初始化环境6.1 检查操作系统版本6.2 主机名解析6.3 时间同步6.4 禁用selinux6.5 禁用swap分区6.6 修改linux的内核参数6.7 配置ipvs功能6.8 安装docker6.9 安装Kubernetes组件6.10 准备集群镜像6.1…

多线程案例

日升时奋斗,日落时自省 目录 1、单例模式 1.1、饿汉模式 1.2、懒汉模式 1.3、饿汉和懒汉的线程安全 2、生产者消费者模型 2.1、理论解释 2.2、优势 2.3、阻塞队列代码解析 2.4、生产者消费者代码解析 2.5、简单实现阻塞队列代码解析 3、定时器 3.1、定时…

Java中String、StringBuffer 和 StringBuilder 的区别

1. String 字符串常量,字符串长度不可变。Java 中 String 是 immutable(不可变)的。 2. StringBuffer 1.如果要频繁对字符串内容进行修改,出于效率考虑最好使用 StringBuffer,如果想转成 String 类型,可以调…