当前位置: 首页 > news >正文

nnAudio的简单介绍

官方实现
https://github.com/KinWaiCheuk/nnAudio;

论文实现:
nnAudio: An on-the-Fly GPU Audio to Spectrogram Conversion Toolbox Using 1D Convolutional Neural Networks;

以下先对文章解读:

abstract

在本文中,我们提出了nnAudio,这是一种新的基于神经网络的音频处理框架,具有图形处理单元(GPU)支持,利用1D卷积神经网络执行时域到频域转换。由于速度快,它允许实时提取光谱图,而无需在磁盘上存储任何光谱图。此外,这种方法还允许在波形到谱图转换层上进行反向传播,因此,转换过程可以进行训练,从而进一步优化神经网络所训练的特定任务的波形到谱线图转换

所有谱线图实现都按输入长度的线性时间的Big-O缩放。然而,nnAudio利用了PyTorch的一维卷积神经网络的计算统一设备架构(CUDA),其短时傅里叶变换(STFT)、梅尔谱图和常数Q变换(CQT)实现比仅使用中央处理单元(CPU)的其他实现快了一个数量级。我们使用NVIDIA GPU在三台不同的机器上测试了我们的框架,考虑到录音长度相同,我们的框架将谱图提取时间从几秒(使用流行的python库librosa)减少到几毫秒。当将nnAudio应用于可变输入音频长度时,使用librosa从MusicNet数据集中提取具有不同参数的34种谱图类型平均需要11.5小时。nnAudio平均需要2.8小时,速度仍然是librosa的四倍。我们提出的框架在处理速度方面也优于现有的GPU处理库,如Kapre和Torchaudio。

1. introduction

自20世纪80年代以来,光谱作为音频信号的时频表示,一直被用作神经网络模型的输入[1-3]。不同类型的光谱图针对不同的应用进行定制。例如,Mel频谱图和Mel频率倒谱系数(MFCC)是为语音相关应用设计的[4,5],而常数Q变换最适合音乐相关应用[6,7]。尽管最近在音频领域的端到端学习方面取得了进展,如WaveNet[8]和SampleCNN[9],这使得对原始音频数据进行模型训练成为可能,但许多最近的出版物仍然使用声谱图作为各种应用的模型的输入[10]。这些应用包括语音识别[11,12]、语音情感检测[13]、语音到语音翻译[14]、语音增强[15]、语音分离[16]、歌声转换[17]、音乐标记[18]、覆盖检测[19]、旋律提取[20]和复调音乐转录[21]。在原始音频数据上训练端到端模型的一个缺点是训练时间较长。

本文的主要贡献是开发了一种基于GPU的音频处理框架,该框架直接集成到神经网络中并利用了神经网络的力量。这提供了以下好处:

1)使用动态时频转换层进行端到端神经网络训练(即,可以直接使用原始波形作为神经网络的输入)。

2) 与ibrosa[23]等传统音频处理方法相比,处理速度明显更快。

3) 基于可以在GPU上运行的神经网络的CQT算法(在撰写本文时,没有可以在GPU中运行的基于神经网络的CQT算法。)

4)可训练的傅立叶、梅尔和CQT内核,可以根据手头的问题自动调整

比较(A):现有(慢速)方法[32-40]和(b):我们提出的(如图11a所示快得多)基于神经网络的音频处理框架(nnAudio)的流程图。我们提出的神经网络以黄色突出显示。我们现在可以直接将波形前馈到神经网络,而不是对波形进行预处理,并且可以在训练过程中动态生成频谱图。红色箭头表示反向传播ŞL可以走多远,这允许在训练期间对初始化的内核进行微调,从而产生专门定制的新表示。

在下面的小节中,我们将简要总结离散傅立叶变换(DFT)的数学原理。

然后,我们将讨论如何初始化神经网络来执行第II节中的STFT、Mel谱图和常数Q变换(CQT)。

在第四节中,我们比较了nnAudio与流行的python信号处理库librosa的速度和输出。最后,我们介绍了我们库的潜在应用。

2. signal processing:

相关文章:

nnAudio的简单介绍

官方实现 https://github.com/KinWaiCheuk/nnAudio; 论文实现: nnAudio: An on-the-Fly GPU Audio to Spectrogram Conversion Toolbox Using 1D Convolutional Neural Networks; 以下先对文章解读: abstract 在本文中&#x…...

【id:134】【20分】B. 求最大值最小值(引用)

题目描述 编写函数void find(int *num,int n,int &minIndex,int &maxIndex),求数组num(元素为num[0],num[1],...,num[n-1])中取最小值、最大值的元素下标minIndex,maxIndex(若有相同最值&#xff0…...

Java 面向对象

一、Java 8 增强的包装类 Java是面向对象的编程语言,但它也包含了8种基本数据类型,这8种基本数据类型不支持面向对象的编程机制,基本数据类型的数据也不具备对象的特性。(没有成员变量、方法可以被调用)。Java之所以提…...

五、传输层

(一)TCP传输控制协议 可靠的、面向连接的字节流服务,全双工,有端口寻址功能 1、TCP的三种机制 1.使用序号对分段的数据进行标记,便于调整数据包 2.TCP使用确认、校验和和定时器系统提供可靠性 3.TCP使用可变大小的…...

Thinkphp 6.0一对一关联查询

本节课我们来了解关联模型中,一对一关联查询的使用方法。 一.hasOne 模式 1. hasOne 模式,适合主表关联附表,具体设置方式如下: hasOne(关联模型,[外键,主键]); return $this->hasOne(Profile::class,user_id, id); 关联模型&…...

基于51单片机的自动打铃打鸣作息报时系统AT89C51数码管三极管时钟电路

wx供重浩:创享日记 对话框发送:单片机打铃 获取完整无水印论文报告说明(含源码程序、电路原理图和仿真图) 本次设计中的LED数码管电子时钟电路采用24小时制记时方式,本次设计采用AT89C51单片机的扩展芯片和6个PNP三极管做驱动&…...

算法详解-双指针算法的魅力-一种简单而高效的编程思想

文章目录双指针简介快慢指针快慢指针介绍快慢指针例题快慢指针优缺点:对撞指针对撞指针介绍:对撞指针例题对撞指针优缺点:更新中——未完总结更多宝藏双指针简介 😎🥳😎🤠😮&#x…...

网页审查元素

在讲解爬虫内容之前,我们需要先学习一项写爬虫的必备技能:审查元素(如果已掌握,可跳过此部分内容)。1、审查元素在浏览器的地址栏输入URL地址,在网页处右键单击,找到检查。(不同浏览器的叫法不同…...

gpt2 adapter finetune

1. 安装依赖: pip install -U adapter-transformers pip install datasets 2.训练代码: from datasets import load_dataset from transformers import AutoModelForCausalLM from transformers import GPT2Tokenizer from transformers import Adap…...

Day14_文件操作

一、数据存储 1.1 计算机数据存储 计算机内存分为运行内存和硬盘两种:保存在运行内存中的数据在程序运行结束后会自动释放,保存在硬盘中的数据会一直存在(除非手动删除或者硬盘损坏) 1)打开文件 open(文件路径, 文件打开方式‘r’, encod…...

leetcode 轮转数组 189

题目 给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 示例 1: 输入: nums [1,2,3,4,5,6,7], k 3 输出: [5,6,7,1,2,3,4] 解释: 向右轮转 1 步: [7,1,2,3,4,5,6] 向右轮转 2 步: [6,7,1,2,3,4,5] 向右轮转 3 步: [5,6,7,1,2…...

Leetcode.1849 将字符串拆分为递减的连续值

题目链接 Leetcode.1849 将字符串拆分为递减的连续值 Rating : 1747 题目描述 给你一个仅由数字组成的字符串 s。 请你判断能否将 s拆分成 两个或者多个 非空子字符串 ,使子字符串的 数值 按 降序 排列,且每两个 相邻子字符串 的数值之 差 …...

Android布局层级过深为什么会对性能有影响?为什么Compose没有布局嵌套问题?

做过布局性能优化的同学都知道,为了优化界面加载速度,要尽可能的减少布局的层级。这主要是因为布局层级的增加,可能会导致测量时间呈指数级增长。 而Compose却没有这个问题,它从根本上解决了布局层级对布局性能的影响: Compose界…...

【UR机械臂CB3 网络课程 】

【UR机械臂CB3 网络课程 】1. 前言2. 概览:特色与术语2.1 机器人组成2.1.1控制柜2.1.2 UR 机器人手臂2.2 接通机器人电源2.3 移动机械臂3. 机器人如何工作3.1 选择臂端工具3.2 输入有关臂端工具的信息3.3 连接外部装置3.4 机器人编程4. 设置工具4.1 末端执行器配置4.2 工具中心…...

dp-统计字典序元音字符串的数目

给你一个整数 n,请返回长度为 n 、仅由元音 (a, e, i, o, u) 组成且按 字典序排列 的字符串数量。 字符串 s 按 字典序排列 需要满足:对于所有有效的 i,s[i] 在字母表中的位置总是与 s[i1] 相同或在 s[i1] 之前。 示例 1: 输入&…...

LFM雷达实现及USRP验证【章节3:连续雷达测距测速】

第一章介绍了在相对速度为0时候的雷达测距原理 目录 1. LFM测速 1.1 雷达测速原理 1.2 Chrip信号测速 2. LFM测速代码实现 参数设置 仿真图像 matlab源码 代码分析 第一章介绍了在相对速度为0时候的雷达测距原理,第二章介绍了基于LFM的雷达测距原理及其实现…...

COLMAP多视角视图数据可视化

这篇博文主要介绍多视角三维重建的实用工具COLMAP。为了让读者更快确定此文是否为自己想找的内容,我先用简单几句话来描述此文做的事情: 假设我们针对一个物体(人)采集了多个(假设60个)视角的照片&#xff…...

2023年全国最新高校辅导员精选真题及答案36

百分百题库提供高校辅导员考试试题、辅导员考试预测题、高校辅导员考试真题、辅导员证考试题库等,提供在线做题刷题,在线模拟考试,助你考试轻松过关。 92.校园文化形成与发展的主要影响因素有() A.学校的领导与管理活…...

ThreeJS-全屏和退出全屏、自适应大小(五)

下载新得组件 npm install gsap -S 新引入 import gsap from gsap //动画控制 代码&#xff1a; <template> <div id"three_div"> </div> </template> <script> import * as THREE from "three"; import {OrbitControls } f…...

等级保护2.0要求及所需设备清单

等级保护的工作流程包括定级、备案、建设整改、等级测评&#xff0c;核心思想在于建立“可信、可控、可管”的安全防护体系&#xff0c;使得系统能够按照预期运行&#xff0c;免受信息安全攻击和破坏。 三级等保要求及所需设备 三级等级保护指标项&#xff1a; 物理访问控制…...

【大数据之Hadoop】六、HDFS之NameNode、Secondary NameNode和DataNode的内部工作原理

NN和2NN的内部工作原理 对于NameNode的存放位置&#xff1a; 内存中&#xff1a;好处&#xff1a;计算快 坏处&#xff1a;可靠性差&#xff0c;断电后元数据会丢失 磁盘中&#xff1a;好处&#xff1a;可靠性搞 坏处&#xff1a;计算慢 内存磁盘中&#xff1a;效率低 所以设…...

小黑子—Java从入门到入土过程:第四章

Java零基础入门4.0Java系列第四章1. 顺序结构2. if语句3. switch 语句3.1 default的位置和省略3.2 case 穿透3.3 switch 新特性 &#xff08;jdk12开始&#xff09;4. for 循环5. while 循环6.do...while 循环7. 无限循环8. 跳转控制语句9. 练习9.1 逢七过9.2 平方根9.3 求质数…...

数据库原理及应用(四)——SQL语句(2)SQL基础查询以及常见运算符

一、SELECT语句基础 数据库查询是数据库的核心操作&#xff0c;SELECT 语句用于从数据库中选取数据。 SELECT [ALL/DISTINCT] <列名>,<列名>...FROM <表名或视图名>,<表名或视图名>[WHERE <条件表达式>][GROUP BY <列名1> [HAVING <条…...

(算法基础)Floyd算法

适用情景Floyd算法适用于多源汇最短路&#xff0c;也就是他问你比如说从3号点到6号点的最短路距离&#xff0c;比如说从7号点到20号点的最短路距离&#xff0c;而不是单源最短路&#xff08;从1号点到n号点的最短路距离&#xff09;。在这个算法当中允许负权边的存在。但在求最…...

SQL语法:浅析select之七大子句

Mysql版本&#xff1a;8.0.26 可视化客户端&#xff1a;sql yog 目录一、七大子句顺序二、演示2.1 from语句2.2 on子句2.3 where子句2.4 group by子句2.4.1 WITHROLLUP&#xff0c;加在group by后面2.4.2 是否可以按照多个字段分组统计&#xff1f;2.4.3 分组统计时&#xff0c…...

中国人民大学与加拿大女王大学金融硕士——去有光的地方,并成为自己的光

光是我们日常生活中一个重要的元素&#xff0c;试想一下如果没有光&#xff0c;世界将陷入一片昏暗。人生路亦是如此&#xff0c;我们从追逐光、靠近光、直到自己成为光。人民大学与加拿大女王大学金融硕士项目是你人生路上的一束光吗 渴望想要成为一个更好的人&#xff0c;就…...

Python数据结构与算法篇(五)-- 二分查找与二分答案

1 二分法介绍 1.1 定义 二分查找又称折半查找、二分搜索、折半搜索等&#xff0c;是一种在静态查找表中查找特定元素的算法。 所谓静态查找表&#xff0c;即只能对表内的元素做查找和读取操作&#xff0c;不允许插入或删除元素。 使用二分查找算法&#xff0c;必须保证查找表中…...

小游戏也要讲信用

当下&#xff0c;小游戏鱼龙混杂&#xff0c;官方为能更好地保护用户、开发者以及平台的权益&#xff0c;近日宣布7月1日起试行小游戏主体信用分机制。 主体信用分是什么呢&#xff1f;简单来说&#xff0c;这是针对小游戏主体下所有小游戏帐号行为&#xff0c;对开发者进行评…...

贪心算法11

1. 贪心算法的概念 所谓贪心算法是指&#xff0c;在对问题求解时&#xff0c;总是做出在当前看来是最好的选择。也就是说&#xff0c;不从整体最优上加以考虑&#xff0c;他所做出的仅是在某种意义上的局部最优解。 贪心算法没有固定的算法框架&#xff0c;算法设计的关键是贪心…...

【并发编程】JUC并发编程(彻底搞懂JUC)

文章目录一、背景二、什么是JUC&#xff1f;三、JUC框架结构四、JUC框架概述五、JUC中常用类汇总六、相关名词进程和线程进程线程创建线程的几种常见的方式并发和并行用户线程和守护线程七、synchronized 作用范围&#xff1a;八、Lock锁(重点)什么是 Lock锁类型Lock接口lock()…...

中国住房和城乡建设网网站/广东深圳疫情最新

注&#xff1a;由麦思博(MSUP)主办的2013年亚太软件研发团队管理峰会(以下简称MPD大会)分别于6月15及6月22日在北京、上海举办&#xff0c;葡萄城的部分程序员参加了上海的会议&#xff0c;本文是参会的一些感受和心得。 今年的大会延续往届模式&#xff0c;以产品创新、团队管…...

wordpress mxl-rpc服务/网站百度手机端排名怎么查询

导读《全民超神》计划将于3月27日凌晨0:00-8:00安卓、iOS同步停服更新。停服更新期间&#xff0c;所有召唤师都将无法进入游戏&#xff0c;更新版本后&#xff0c;各位召唤师将获得联盟赠予的更新版本福利&#xff1a;钻石*100、竞技币*300...《全民超神》计划将于3月27日凌晨0…...

无锡高端网站制作/深圳关键词优化公司哪家好

为什么80%的码农都做不了架构师&#xff1f;>>> <p>logger的驱动程序为文件logger.c, 位于内核driver/staging/android目录.</p><p>从最后一行<code>device_initcall</code>(<code>logger_init</code>)入口, 内核在启动…...

搞个竞拍网站怎么做/百度互联网营销是什么

有的时候经常需要在页面的底部做一个悬浮框&#xff0c;进行电话咨询什么&#xff0c;留电什么的&#xff0c;但是发现在手机百度浏览器中&#xff0c;进去页面一会就消失了。 这个是因为&#xff0c;百度浏览器把他看成广告了&#xff0c;自动屏蔽了。 对于使用 display:fixed…...

济南网站制作企业/湛江seo

2019独角兽企业重金招聘Python工程师标准>>> public class Test { public static void main(String[] args) { int i 0; i i ;System.out.println(i);} } 答案是 0 如果是 i i 就会是1 参考 https://blog.csdn.net/lxlmycsdnfree/article/details/80578222 其…...

企业邮箱注册价格/网站排名优化客服

2017比较火的概念&#xff1a;人工智能&#xff0c;图像识别&#xff0c;语音识别&#xff1b;技术驱动和数据驱动机器学习&#xff1a;机器学习&#xff0c;深度学习&#xff0c;自然语言处理&#xff0c;图像处理&#xff0c;数据挖掘&#xff0c;精准推荐的分类熟悉一种大数…...