INTERSPEECH 2023论文|基于多频带时频注意力的复调音乐旋律提取

news2024/12/25 9:15:09

论文题目:

MTANet: Multi-band Time-frequency Attention Network for Singing Melody Extraction from Polyphonic Music

作者列表:

高虞安,胡英,王柳淞,黄浩,何亮

研究背景

复调音乐是一种具有多个声部交织在一起的音乐形式。在复调音乐中,不同的声部可以同时演奏不同的旋律线,相互独立但又相互关联。乐器伴奏与主声交织在一起,使任务相当有挑战性。获得复调音乐的(主)旋律线对于理解和分析复调音乐的结构和特征相当重要,歌手产生的高共振声音容易导致高次谐波的振幅大于基频,这是算法误判[1]造成八度误差的主要声学原因。因此,获得一种能够区分基频和非基频成分(例如伴奏或唱声的更高的谐波)的语义表示至关重要。

拟解决问题

  1. 通过网络获得一种能够区分基频和非基频成分(例如伴奏或唱声的更高的谐波)的语义表示;

  2. 解决/减少常见于复调音乐旋律提取任务中的八度误差(下图红圈所示)与旋律检测误差(下图绿圈所示)。

图1 MSNet对于两首歌剧预测结果的可视化

本文方案

第一阶段:基于数据预处理的频带划分

由于估计对象主要是人类唱声的基频,因此其存在的频率范围上下限有一定参考标准。结合人类唱声频率范围和全部样本的音调八度分布,我们注意到基频(F0)分量趋向于分布在一定位置内,同时较高次谐波和高频噪声会对基频定位造成一定的消极影响,这促使我们利用频谱中的位置信息来表征F0分量和非F0分量。因此,我们提出了一种频带划分策略,旨在利用频谱中基频和非基频成分的位置分布来表征基频分量和非基频分量。同时,频带划分能够有效规避高次谐波及高频噪声对基频定位的影响。

图2 多频带时频注意力网络框架

第二阶段:针对不同频带的差别特征提取

由于音乐信号在不同频带中具有不同的特性(较低的频带更可能包含调性和长期持续的声音,其具有较高的能量,而较高的频带倾向于包含噪声和快速衰减的声音,其具有较低的能量[2]),因此我们为不同频带的特征提取模块设置了差异化的通道数、层数、膨胀系数以满足不同的角色需求。具体来讲,作为基频分布的主要频带,中低频带沙漏子网络包含更多的通道数、更深的网络层数以及更大的膨胀卷积系数;作为承载非基频信息(噪声/更高次谐波)的高频带,其具备的各项参数较小;同时,为了弥补划分操作不可避免的频谱信息割裂,我们也设置了全频带网络作为整体信息的补偿。

第三阶段:对不同频带特征的选择融合

通过对多频带特征的激活可视化,我们观察到不同通道内特征分别表征不同频带的信息,为了更好地选择和聚合不同通道内的特征,基于时频注意力思想[3],我们提出了一种特征融合模块,该模块执行通道内的时频注意力及通道间信息的线性重组。事实上,在这个阶段可以尝试的方案有很多,例如通道注意力、Selective Kernel思想等。

实验结果分析

我们在三个涵盖不同音乐类型的数据集上验证模型的性能和泛化性,在综合对比中与行业主流和经典算法进行比较。如表1表示,我们的方法在3个测试集上取得了除VFA外的最好性能。OA(整体精确度)一般被认为是最重要的指标。与结构相似的MSNet[4]相比,性能的提升充分验证了频带划分方案和整体结构部署的有效性。与采用多头自注意力机制的TONet[5]相比,在大幅减少参数的基础上也取得了良好的效果,使模型更便于嵌入式设计。

表1 多频带时频注意力网络框架

我们也采用可视化方法探索该方法解决了哪些类型的错误。如图3所示,可以观察到图(a)比(b)有更少的八度误差(即轮廓的垂直跳跃)。同时,图(a) 250ms和750ms附近的旋律检测误差(即预测旋律帧为非旋律帧)比图(b)中更少。

图3 MTANet与MSNet于歌剧male5预测结果的可视化对比

表2展示了消融实验结果,我们设计了多组频带划分消融来验证其有效性。同时,在频带划分时,我们设置了4个frequency bins的重叠以缓解划分带来的频域信息割裂问题,可以看出缺少重叠设置,性能明显下降。另外,缺少特征融合阶段会导致大量的性能损失,充分证明了特征融合模块的有效性。

表2 ADC2004数据集的消融实验结果

小结

我们提出一种用于歌唱旋律提取的多频带时频注意力网络。频带划分方案被证明能够有效地利用F0分量的位置分布来进一步捕获各种多频带特征。同时,利用特征融合模块执行通道内的时频注意力及通道间信息的线性重组进而融合多频带特征。实验结果表明,该方法在保持较少参数量的基础上取得了良好的性能且能够有效减少八度误差和旋律检测误差。

参考文献

[1] J. Salamon, E. Gomez, D. P. Ellis, and G. Richard, “Melody extraction from polyphonic music signals: Approaches, applications, and challenges,” IEEE Signal Processing Magazine, vol. 31, no. 2, pp. 118–134, 2014.

[2] Chen Y, Hu Y, He L, et al. Multi-stage music separation network with dual-branch attention and hybrid convolution[J]. Journal of Intelligent Information Systems, 2022: 1-22.

[3] S. Yu, X. Sun, Y. Yu, and W. Li, “Frequency-temporal attention network for singing melody extraction,” in ICASSP 2021-2021IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP). IEEE, 2021, pp. 251–255.

[4] T.-H. Hsieh, L. Su, and Y.-H. Yang, “A streamlined encoder/decoder architecture for melody extraction,” in ICASSP 2019-2019 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP). IEEE, 2019, pp. 156–160.

[5] K. Chen, S. Yu, C.-i. Wang, W. Li, T. Berg-Kirkpatrick, and S. Dubnov, “Tonet: Tone-octave network for singing melody extraction from polyphonic music,” in ICASSP 2022-2022 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP). IEEE, 2022, pp.621–625.

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

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

相关文章

[PyTorch][chapter 41][卷积网络实战-LeNet5]

前言 这里结合前面学过的LeNet5 模型,总结一下卷积网络搭建,训练的整个流程 目录: 1: LeNet-5 2: 卷积网络总体流程 3: 代码 一 LeNet-5 LeNet-5是一个经典的深度卷积神经网络,由Yann LeCun在1998年提…

zabbix-agent安装

1.CentOS release 5 1-1.centos5 32位 [rootLV zabbix]# cat /etc/redhat-release CentOS release 5 (Final) [rootLV zabbix]# uname -a Linux LV 2.6.18-53.el5xen #1 SMP Mon Nov 12 03:26:12 EST 2007 i686 i686 i386 GNU/Linux确定了系统centos5 32位rpm方式安装&#…

Ubuntu18.04离线安装redis

因需要安装redis的服务器无法连接互联网,所以需要离线安装。首先需要下载redis的安装包,之后进行安装,在安装之前需要保证gcc,g,make等依赖包已经安装。 1. 安装gcc等依赖包 依赖包安装请参考: Ubuntu18…

CI570 3BSE001440R1需要电流显示和就地/远传控制

​ CI570 3BSE001440R1需要电流显示和就地/远传控制 CI570 3BSE001440R1需要电流显示和就地/远传控制 如果变频器与通讯方式与DCS系统连接,则只需要计算1个通讯点,不需要计算其他点数。 (6)如DCS系统外接电磁阀、指示灯、接触器等…

物联网云平台数据存储方案,这次我终于找对了

《高并发系统实战派》-- 你值得拥有 文章目录 物联网云平台存储概述为什么要做存储?存储的意义在哪里?数据存储方案设计存储数据库选型需要考虑的因素数据库选型结构化数据半结构化数据非结构化数据 案例分析第一颗栗子第二颗栗子第三颗栗子第四颗栗子 …

Web安全:vulhub 靶场搭建.(各种漏洞环境集合,一键搭建漏洞测试靶场)

Web安全:vulhub 靶场搭建. Vulhub是一个面向大众的开源漏洞靶场,无需docker知识,简单执行两条命令即可编译、运行一个完整的漏洞靶场镜像。让漏洞复现变得更加简单,让安全研究者更加专注于漏洞原理本身. 目录: Web安…

DLL修复工具下载,解决DLL文件问题的方法

在计算机应用程序中,我们经常会遇到一些错误提示,如“找不到.dll文件”或“无法加载.dll文件”。这些问题通常是由于缺少或损坏的DLL文件造成的。为了解决这些问题,我们可以借助DLL修复工具来修复和恢复DLL文件。本文将介绍什么是DLL文件&…

C# 自动更新(基于FTP)

效果 启动软件后,会自动读取所有的 FTP 服务器文件,然后读取本地需要更新的目录,进行匹配,将 FTP 服务器的文件同步到本地 Winform 界面 一、前言 在去年,我写了一个 C# 版本的自动更新,这个是根据配置文…

黑盒、白盒、灰盒,如何选择合适的模糊测试工具?

在软件开发和安全领域,模糊测试是一种常用技术,用于发现应用程序或系统中的潜在漏洞和安全弱点。选择不同的模糊测试方法将极大地影响测试的有效性和效率。本文将比较对比黑盒、白盒和灰盒模糊测试的特点和优势并提供选型指导。 模糊测试的分类 黑盒模糊…

人工智能带来的利好将继续推动Palantir股价反弹

来源:猛兽财经 作者:猛兽财经 Palantir的人工智能产品已经获得行业认可 Palantir(PLTR)成立于2003年,是一家专注于数据分析和人工智能的知名软件公司。其尖端产品已应用到了政府机构、企业和非营利组织等各个行业&…

华为OD机试 Java 实现【输出单向链表中倒数第k个结点】【LeetCode练习题】,附详细解题思路

一、题目描述 输入一个单向链表,输出该链表中倒数第k个结点,链表的倒数第1个结点为链表的尾指针。 链表结点定义如下: class ListNode{int value;ListNode next;public ListNode(){}public ListNode(

解决H5在native中键盘弹起影响页面交互

您好,如果喜欢我的文章,可以关注我的公众号「量子前端」,将不定期关注推送前端好文~ 问题描述 在native中拉起键盘再收回,滚动列表实际距离发生变化,被键盘一起弹上去了(我这里大约是400px的样子&#xf…

使用yolox训练自己的数据集并测试

1.首先给出yolox原模型的下载地址: ​​​​​​https://github.com/bubbliiiing/yolox-pytorch 百度网盘链接给出自己完整的模型(包括数据集以及权重文件): 链接:https://pan.baidu.com/s/1JNjB42u9eGNhRjr1SfD_Tw 提取码&am…

Redis和Redis可视化管理工具的下载和安装

文章目录 Redis 简介一,Redis 下载二,Redis 安装三,Redis 配置四,Redis 启动 Redis-Desktop-Manager 简介一,Redis-Desktop-Manager 下载二,Redis-Desktop-Manager 安装三,Redis-Desktop-Manage…

深度学习笔记之Transformer(三)自注意力机制

深度学习笔记之Transformer——自注意力机制 引言回顾:缩放点积注意力机制自注意力机制自注意力机制与 RNN,CNN \text{RNN,CNN} RNN,CNN的对比简单介绍:卷积神经网络处理序列信息的原理从计算复杂度的角度观察 位置编码 引言 上一节对注意力分数 ( Atte…

关于前端Vue脚手架的完整搭建

创建脚手架 在VSC中打开命令行&#xff0c;输入如下命令可以用于创建脚手架 Vue create <项目名称>会出现如下选项&#xff1a; 前面是选项的名称&#xff0c;括号中的是选项包含有&#xff1a; 1、Vue的版本 2、babel是用于将高版本的js转化成为低版本的js&#xff0…

SSM 整合案例

Ssm整合 注意事项 Spring mvcSpringMybatisMySQL项目结构&#xff0c;以web项目结构整合&#xff08;还有maven、gradle&#xff09;整合日志、事务一个项目中Idea 2019、JDK12、Tomcat9、MySQL 5.5 项目结构 D:\java\Idea\Idea_spacework\SSMhzy&#xff1a;不会就去找项目…

chatgpt赋能python:Python怎么筛选奇数

Python怎么筛选奇数 Python是一种高级编程语言&#xff0c;既具有面向对象编程的特点&#xff0c;又可以进行函数式编程。Python的语法简洁、清晰&#xff0c;非常适合初学者学习。在Python中&#xff0c;筛选奇数的方法非常简单&#xff0c;本文将介绍Python中筛选奇数的方法…

人机交互学习-5 交互式系统的需求

交互式系统的需求 需求是什么需求需求活动 产品特性用户特性体验水平差异新手用户专家用户中间用户 年龄差异老年人儿童 文化差异健康差异 用户建模人物角色人物角色的作用人物角色的构造错误观点人物角色基于问题举例注意事项 建模过程 需求获取、分析和验证观察场景人物角色场…

爬虫数据是如何收集和整理的?

爬虫数据的收集和整理通常包括以下步骤&#xff1a; 确定数据需求&#xff1a;确定要收集的信息类型、来源和范围。 网络爬取&#xff1a;使用编程工具&#xff08;如Python的Scrapy、BeautifulSoup等&#xff09;编写爬虫程序&#xff0c;通过HTTP请求获取网页内容&#xff…