一种鼓点检测方法、装置及电子设备
文献发布时间:2023-06-19 09:38:30
技术领域
本申请涉及音频处理技术领域,更具体地说,涉及一种鼓点检测方法、系统及一种电子设备。
背景技术
随着互联网技术的高速发展,音乐类游戏和音乐创意短视频等应运而生。在此类场景下,需要检测音乐中出现的鼓点,以作为音乐类游戏或视频特效的基础信息,例如根据音乐中的鼓点位置在视频中添加相应的特性等。
在传统技术识别音乐中的鼓点时,一种可用的方式是,对原始音频的频谱进行差值处理和傅里叶变换,基本确定音频节奏,通过数据量化确定出音频中的所有音符起始点,然而这类检测得到的结果中不仅仅包括鼓点,还可包括吉他拨弦、小提琴响起等各种类型的音乐事件。
另外一种可用的方式是通过盲源分离技术分离出音频中的鼓点。盲源分离,又称盲信号分离,是指在信号的理论模型和源信号无法精确获知的情况下,如何从混迭信号中分离出各源信号的过程。然而,由于盲源分离算法还处于发展阶段,其分离效果欠佳,可能存在分离不干净或误识别的问题。
因此,如何解决上述问题是本领域技术人员需要重点关注的。
发明内容
本申请的目的在于提供一种鼓点检测方法、装置及一种电子设备和一种计算机可读存储介质,有效降低了盲源分离不干净或者误识别的概率,提高了鼓点检测的准确度。
为实现上述目的,本申请提供了一种鼓点检测方法,包括:
获取待处理音频,对所述待处理音频进行鼓盲源分离,得到鼓点音频;
根据所述鼓点音频生成对应的音频波形,并基于所述音频波形确定出鼓点曲线;其中,所述鼓点曲线表征每个候选鼓点的鼓点强度;
基于每个所述候选鼓点的鼓点强度和邻近的波形峰值对所述鼓点曲线进行鼓点滤除,得到滤除后鼓点曲线;
将所述滤除后鼓点曲线中的所有鼓点确定为所述待处理音频中的目标鼓点,并输出每个所述目标鼓点对应的鼓点位置。
可选的,所述根据所述鼓点音频生成对应的音频波形,并基于所述音频波形确定出鼓点曲线,包括:
对所述鼓点音频进行短时傅里叶变换,以提取所述鼓点音频的短时傅里叶变换特征,并根据所述短时傅里叶变换特征生成音频波形;
根据所述音频波形确定每个频段对应的能量强度包络曲线,并综合所有频段的能量强度包络曲线得到所述鼓点曲线。
可选的,所述对所述鼓点音频进行短时傅里叶变换,以提取所述鼓点音频的短时傅里叶变换特征,包括:
对所述鼓点音频进行降采样处理,得到降采样后音频;其中,所述降采样后音频的最高频谱高度低于预设频谱高度阈值;
利用预设窗口,按照预设步长在所述降采样后音频上滑动,依次对所述预设窗口内的音频信号进行短时傅里叶变换,以提取所述鼓点音频的短时傅里叶变换特征。
可选的,所述根据所述短时傅里叶变换特征生成音频波形,包括:
利用梅尔标度滤波器组,将所述短时傅里叶变换特征变换为梅尔频谱特征;
将所述梅尔频谱特征转换为幅度谱,并利用声码器算法基于所述幅度谱重建生成音频波形。
可选的,所述综合所有频段的能量强度包络曲线得到所述鼓点曲线,包括:
按照能量强度从大到小的顺序在所述所有频段中选取预设数量的目标频段,并获取所有所述目标频段对应的所有能量强度包络曲线;
利用聚合函数对所述所有能量强度包络曲线中每个时间点对应的能量强度值进行均值计算,得到所述鼓点曲线;
或,利用中值函数对所述所有能量强度包络曲线中每个时间点对应的能量强度值进行中值计算,得到所述鼓点曲线。
可选的,所述基于每个所述候选鼓点的鼓点强度和邻近的波形峰值对所述鼓点曲线进行鼓点滤除,包括:
基于每个所述候选鼓点的鼓点强度对所述鼓点曲线中的第一类鼓点进行滤除,得到剩余候选鼓点;其中,所述第一类鼓点为鼓点强度低于第一预设值的鼓点和/或鼓点强度低于所属时间窗口内最高鼓点强度的鼓点;
基于每个所述剩余候选鼓点的邻近的波形峰值对所述鼓点曲线中的第二类鼓点进行滤除;其中,所述第二类鼓点为邻近的波形峰值小于第二预设值的鼓点。
可选的,所述基于每个所述剩余候选鼓点的邻近的波形峰值对所述鼓点曲线中的第二类鼓点进行滤除,包括:
获取每个所述剩余候选鼓点对应的局部鼓点曲线;
基于所述局部鼓点曲线检测各个所述剩余候选鼓点邻近的波形峰值,并判断所述波形峰值是否小于所述第二预设值;
如果是,则将当前所述剩余候选鼓点确定为所述第二类鼓点,并在所述鼓点曲线中对所述第二类鼓点进行滤除。
可选的,在所述输出每个所述目标鼓点对应的鼓点位置之后,还包括:
基于所述鼓点位置从所述音频波形中获取每个所述目标鼓点对应的局部鼓点音频波形;
提取所述局部鼓点音频波形对应的梅尔频谱特征并计算特征均值;
利用多层全连接神经网络模型对所述特征均值进行鼓点分类,输出每个所述目标鼓点对应的鼓点类型。
为实现上述目的,本申请提供了一种鼓点检测装置,包括:
盲源分离模块,用于获取待处理音频,对所述待处理音频进行鼓盲源分离,得到鼓点音频;
曲线确定模块,用于根据所述鼓点音频生成对应的音频波形,并基于所述音频波形确定出鼓点曲线;其中,所述鼓点曲线表征每个候选鼓点的鼓点强度;
鼓点滤除模块,用于基于每个所述候选鼓点的鼓点强度和邻近的波形峰值对所述鼓点曲线进行鼓点滤除,得到滤除后鼓点曲线;
鼓点输出模块,用于将所述滤除后鼓点曲线中的所有鼓点确定为所述待处理音频中的目标鼓点,并输出每个所述目标鼓点对应的鼓点位置。
为实现上述目的,本申请提供了一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现前述公开的任一种鼓点检测方法。
为实现上述目的,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现前述公开的任一种鼓点检测方法。
通过以上方案可知,本申请提供的一种鼓点检测方法,包括:获取待处理音频,对所述待处理音频进行鼓盲源分离,得到鼓点音频;根据所述鼓点音频生成对应的音频波形,并基于所述音频波形确定出鼓点曲线;其中,所述鼓点曲线表征每个候选鼓点的鼓点强度;基于每个所述候选鼓点的鼓点强度和邻近的波形峰值对所述鼓点曲线进行鼓点滤除,得到滤除后鼓点曲线;将所述滤除后鼓点曲线中的所有鼓点确定为所述待处理音频中的目标鼓点,并输出每个所述目标鼓点对应的鼓点位置。由上可知,本申请可首先利用盲源分离技术分离出鼓点音频,进而确定出表征每个候选鼓点强度的鼓点曲线,利用候选鼓点的鼓点强度和邻近的波形峰值对鼓点曲线进行鼓点滤除,从而可将滤除后鼓点曲线中的所有鼓点确定为待处理音频中的目标鼓点,输出鼓点位置以实现鼓点的检测,能够在盲源分离的基础上进行鼓点滤除,有效地降低了盲源分离不干净或者误识别的概率,提高了鼓点检测的准确度。
本申请还公开了一种鼓点检测装置及一种电子设备和一种计算机可读存储介质,同样能实现上述技术效果。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例公开的一种鼓点检测系统的架构图;
图2为本申请实施例公开的一种鼓点检测方法的流程图;
图3为本申请实施例公开的鼓点检测方法的一种具体实施例的流程图;
图4为本申请实施例公开的鼓点检测方法的另一种具体实施例的流程图;
图5为一种对混合音频进行分离后得到的波形示意图;
图6为本申请实施例公开的一种鼓点检测装置的结构图;
图7为本申请实施例公开的一种电子设备的结构图;
图8为本申请实施例公开的另一种电子设备的结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在传统技术识别音乐中的鼓点时,可能存在无法对鼓点进行针对性检测,或是鼓点音频分离不干净或误识别的问题。因此,本申请实施例公开了一种鼓点检测方法,有效降低了盲源分离不干净或者误识别的概率,提高了鼓点检测的准确度。
为了便于理解本申请提供的鼓点检测方法,下面对其使用的系统进行介绍。参见图1,其示出了本申请实施例提供的一种鼓点检测系统的架构图,如图1所示,包括音频采集设备10和服务器20。
其中,上述音频采集设备10用于采集待处理音频,并将待处理音频发送至服务器20。服务器20用于对接收到的待处理音频进行鼓点检测,具体可先通过盲源分离技术提取待处理音频中的鼓点音频,确定对应的鼓点曲线,并根据鼓点强度和邻近的波形峰值对鼓点曲线进行鼓点滤除,以便将滤除后鼓点曲线中的所有鼓点均确定为目标鼓点,并输出每个目标鼓点的位置。
当然,上述鼓点检测系统还可以包括客户端30,客户端30可以具体包括PC(中文全称:个人计算机,英文全称:Personal Computer)等固定终端和手机等移动终端,具体用于接收服务器20发送的目标鼓点及其位置,后续可以根据鼓点位置为对应的视频添加相应的特效。
参见图2所示,本申请实施例公开的一种鼓点检测方法包括:
S101:获取待处理音频,对所述待处理音频进行鼓盲源分离,得到鼓点音频;
本申请实施例中,可以首先获取待处理音频,并基于盲源分离技术对待处理音频进行分离,得到鼓点音频。其中,待处理音频具体指需要进行鼓点检测的音频。
在具体实施中,上述获取待处理音频的方式可以为:从网络下载待处理音频,或者获取外部存储设备复制的待处理音频。也即,本实施例可以通过网络直接下载所需的音频,也可以预先利用外部存储设备从其他设备拷贝所需的待处理音频,并复制在当前进行鼓点检测的设备上。当然,具体获取待处理音频的方式可不仅局限于以上两种,本实施例对此不进行限定。
盲源分离能够仅从若干观测到的混合信号中提取、恢复分离出无法直接观测到的各个原始信号。盲源分离技术的应用领域非常广泛,不仅可以应用于通信语音信号的分离和识别、图像信号处理、生物医学信号处理、阵列信号处理等类型的信号处理领域,还可应用于地质勘探检测、遥感数据处理、水体污染研究等领域。具体地,盲源分离技术首先求得一个分离矩阵,使得观测的混合信号通过该矩阵,能够分离出源信号的各个组成。
可以理解的是,本申请实施例可使用现有技术中的盲源分离技术对待处理音频进行分离处理,在分离处理后可以得到一个与原始待处理音频等长的音频,该音频中只有鼓的部分,没有鼓的部分能量非常低,接近于静音,即本步骤最终得到的鼓点音频。由于盲源分离技术的分离效果欠佳,此时确定的鼓点音频中可能存在分离不干净或者误识别的情况。
S102:根据所述鼓点音频生成对应的音频波形,并基于所述音频波形确定出鼓点曲线;其中,所述鼓点曲线表征每个候选鼓点的鼓点强度;
在本步骤中,可以根据上述步骤分离得到的鼓点音频生成对应的音频波形。具体地,可以对上述鼓点音频进行短时傅里叶变换,以提取所述鼓点音频的短时傅里叶变换特征,并根据所述短时傅里叶变换特征生成音频波形;根据所述音频波形确定每个频段对应的能量强度包络曲线,并综合所有频段的能量强度包络曲线得到所述鼓点曲线。
需要说明的是,为了进一步突出鼓点信息,削弱背景噪音的干扰,本实施例在对鼓点音频进行短时傅里叶变换之前,可首先对鼓点音频进行降采样处理,得到降采样后音频;其中,降采样后音频的最高频谱高度低于预设频谱高度阈值。也即,本实施例对鼓点音频进行降采样处理,具体可以参照预设频谱高度阈值,使得鼓点音频在降采样后最高频谱高度均低于预设频谱高度阈值。降采样处理是为了降低计算代价并减少由于鼓点分离不干净带来的特征不准确问题。上述预设频谱高度阈值可以在具体实施中根据具体情况进行设定,本实施例并不限定其具体的数值。
在降采样处理之后,本步骤利用预设窗口,按照预设步长在降采样后音频上滑动,依次对所述预设窗口内的音频信号进行短时傅里叶变换,以提取鼓点音频的短时傅里叶变换特征。短时傅里叶变换是一种常用的时频分析方法,它通过时间窗内的一段信号来表示某一时刻的信号特征。具体来说,短时傅里叶变换就是先把一个函数和窗函数进行相乘,然后再进行一维的傅里叶变换,并通过窗函数的滑动得到一系列的傅里叶变化结果,将这些结果排开便得到一个二维的表象。在短时傅里叶变换过程中,窗的长度决定频谱图的时间分辨率和频率分辨率,窗长越长则截取的信号越长,傅里叶变换后频率分辨率越高,时间分辨率越差;相反的,窗长越短,则截取的信号就越短,频率分辨率越差,时间分辨率越好,也就是说短时傅里叶变换中,时间分辨率和频率分辨率之间不能兼得,应该根据具体需求设定窗的长度。本实施例中,可具体将预设窗口的窗长设置为25ms,预设步长设置为10ms,当然,上述设置的数值仅为示例性的,并不能作为对窗口长度和步长的限定。
作为一种可行的实施方式,上述根据短时傅里叶变换特征生成音频波形的过程可以具体包括:利用梅尔标度滤波器组,将短时傅里叶变换特征变换为梅尔频谱特征;将所述梅尔频谱特征转换为幅度谱,并利用声码器算法基于所述幅度谱重建生成音频波形。
需要说明的是,短时傅里叶变换通过对一段长的音频信号进行分帧、加窗,再对每一帧进行傅里叶变换,最后将每一帧的结果按照另一个维度堆叠起来,得到类似于一幅图的二维信号信息,即声谱图。由于声谱图往往是很大的一张图,为了后续得到合适大小的声音特征,通常会通过梅尔标度滤波器组(mel-scale filter banks)变化为梅尔频谱。而梅尔标度的提出是由于人耳所听到的声音高低与声音频率并不呈线性正比关系,因此将普通的频率标度转化为梅尔频率标度,以更符合人耳的听觉特征。
下面对梅尔标度滤波器组的生成进行介绍,具体地,在语音的频谱范围内设置若干带通滤波器,每个滤波器具有三角形滤波特性,在梅尔频率范围内,这些滤波器是等带宽的。进而设置采样率,设置滤波器频率范围的最高频率和最低频率,并设置滤波器个数,根据每个带通滤波器的传递函数可以计算出每个梅尔标度滤波器的值,再根据设置的滤波器个数生成梅尔标度滤波器组。本申请实施例中,滤波器个数具体为40个。
本实施例中,将短时傅里叶变换特征变换为梅尔频谱特征之后,可将梅尔频谱特征转换为幅度谱,并利用声码器算法基于幅度谱重建生成音频波形。其中,上述声码器算法可以包括但不限于world、straight、griffin_lim等。优选地,可选用griffin_lim声码器算法进行波形重建,这是由于该算法无需相位信息即可从幅度谱重建波形,可根据帧之间的关系估计相位信息,和成的音频质量也较高,代码相对比较简单。
在重建生成音频波形之后,本实施例可根据音频波形确定每个频段对应的能量强度包络曲线,并综合所有频段的能量强度包络曲线得到鼓点曲线。具体地,可通过执行multi-channel onset强度包络检测,为每个频段计算对应的能量强度包络。需要指出的是,强度包络用于检测波峰,即可能的鼓点位置。其中,上述频段具体是在将短时傅里叶变换特征变换为梅尔频谱特征时自动划分的频段,即每个梅尔标度滤波器组对应一个频段。每个频段的数据都是一个向量,通过对其进行简单滤波等包络检测算法,即可得到各个频段对应的能量强度包络曲线。
需要说明的是,在计算得到每个频段对应的能量强度包络曲线之后,为了避免盲源分离不干净时存在频段缺失所导致的误差问题,本步骤可使用聚合函数或终止函数综合所有频段的能量强度包络曲线。具体地,可以首先按照能量强度从大到小的顺序在所有频段中选取预设数量的目标频段,并获取所有目标频段对应的所有能量强度包络曲线;利用聚合函数对所有能量强度包络曲线中每个时间点对应的能量强度值进行均值计算,得到鼓点曲线;或,利用中值函数对所有能量强度包络曲线中每个时间点对应的能量强度值进行中值计算,得到鼓点曲线。以使用聚合函数为例,本实施例可具体采用TopKmean作为聚合函数,从各频段中选取强度最大的预设数量的频段,对其包络求平均值以聚合包络。其中,关于上述预设数量的数值,本实施例具体从5~10范围内选择任意数值进行设定。当然,这并不能作为对本申请的限定,具体数值可以根据实际场景进行灵活设定。
S103:基于每个所述候选鼓点的鼓点强度和邻近的波形峰值对所述鼓点曲线进行鼓点滤除,得到滤除后鼓点曲线;
本步骤中,将在得到标示鼓点强度的鼓点曲线之后,可以先通过寻峰算法在鼓点曲线中找出所有的候选鼓点,即可能的鼓点位置。进而基于每个候选鼓点的鼓点强度和邻近的波形峰值对该鼓点曲线进行鼓点滤除,例如,可滤除其中的低强度鼓点,以及滤除邻近波形峰值较低的鼓点,由此可将听感不明显、人耳不敏感的鼓点过滤掉,保留下听感较为明显的有效鼓点。
在实际进行鼓点过滤时,可以将基于每个候选鼓点的鼓点强度和邻近的波形峰值确定出的需要滤除的候选鼓点强度直接设置为零,其余候选鼓点的鼓点强度均保留不变,以达到滤除的效果。
S104:将所述滤除后鼓点曲线中的所有鼓点确定为所述待处理音频中的目标鼓点,并输出每个所述目标鼓点对应的鼓点位置。
可以理解的是,在对鼓点曲线进行鼓点滤除之后,本实施例即可将滤除后鼓点曲线中的所有鼓点确定为待处理音频中的目标鼓点,并输出每个目标鼓点对应的鼓点位置,即每个目标鼓点具体在待处理音频中出现的时间点。
通过以上方案可知,本申请提供的一种鼓点检测方法,包括:获取待处理音频,对所述待处理音频进行鼓盲源分离,得到鼓点音频;根据所述鼓点音频生成对应的音频波形,并基于所述音频波形确定出鼓点曲线;其中,所述鼓点曲线表征每个候选鼓点的鼓点强度;基于每个所述候选鼓点的鼓点强度和邻近的波形峰值对所述鼓点曲线进行鼓点滤除,得到滤除后鼓点曲线;将所述滤除后鼓点曲线中的所有鼓点确定为所述待处理音频中的目标鼓点,并输出每个所述目标鼓点对应的鼓点位置。由上可知,本申请可首先利用盲源分离技术分离出鼓点音频,进而确定出表征每个候选鼓点强度的鼓点曲线,利用候选鼓点的鼓点强度和邻近的波形峰值对鼓点曲线进行鼓点滤除,从而可将滤除后鼓点曲线中的所有鼓点确定为待处理音频中的目标鼓点,输出鼓点位置以实现鼓点的检测,能够在盲源分离的基础上进行鼓点滤除,有效地降低了盲源分离不干净或者误识别的概率,提高了鼓点检测的准确度。
本申请实施例公开了鼓点检测方法的一种具体实施方式,相对于上一实施例,本实施例对鼓点滤除过程作了进一步的说明和优化。参见图3所示,具体的:
S201:获取待处理音频,对所述待处理音频进行鼓盲源分离,得到鼓点音频;
S202:根据所述鼓点音频生成对应的音频波形,并基于所述音频波形确定出鼓点曲线;其中,所述鼓点曲线表征每个候选鼓点的鼓点强度;
S203:基于每个所述候选鼓点的鼓点强度对所述鼓点曲线中的第一类鼓点进行滤除,得到剩余候选鼓点;其中,所述第一类鼓点为鼓点强度低于第一预设值的鼓点和/或鼓点强度低于所属时间窗口内最高鼓点强度的鼓点;
本申请实施例中,可首先滤除鼓点曲线中的第一类鼓点。需要指出的是,第一类鼓点可以包括但不限于鼓点强度低于第一预设值的候选鼓点,以及鼓点强度低于所属时间窗口内最高鼓点强度的候选鼓点。
也即,本申请实施例可根据鼓点强度,滤除掉鼓点强度较低的候选鼓点。另外,考虑到鼓点不可能在极短的时间段内连续出现,因此,在每个时间窗口内,只保留具有最大强度的候选鼓点,将其余候选鼓点滤除。
具体地,本实施例在鼓点滤除之前,可以先对鼓点曲线中的所有鼓点强度进行归一化处理,以便于后续的计算过程。基于第一预设值过滤低强度鼓点时,第一预设值可根据具体情况进行设定,本实施例可选择0.15作为第一预设值,也就是将鼓点强度低于0.15的候选鼓点滤除,基于时间窗口过滤相邻鼓点时,时间窗口的长度同样也可根据具体情况进行设定,本实施例可选择80ms作为预设时间窗口的长度。
S204:基于每个所述剩余候选鼓点的邻近的波形峰值对所述鼓点曲线中的第二类鼓点进行滤除;其中,所述第二类鼓点为邻近的波形峰值小于第二预设值的鼓点;
本步骤中,在先滤除到第一类鼓点,得到剩余候选鼓点之后,可基于剩余候选鼓点的邻近的波形峰值对鼓点曲线中的第二类鼓点进行滤除。上述第二类鼓点具体为邻近的波形峰值小于第二预设值的候选鼓点。
需要指出的是,在很多情况下,鼓点在频段具有相当的强度,但在时域上听感却不明显。为过滤此种情况,本实施例将剩余候选鼓点均回溯到波形,检查鼓点附近的波形峰值,将波形峰值小于第二预设值的鼓点进行滤除。由此,可以过滤掉整体强度较低,但仅仅由于邻近波形峰值较低而凸显出峰值时误判的候选鼓点,即滤除人耳听感不明显的鼓点。其中,上述第二预设值可根据具体情况进行设定,本实施例可选择0.1作为具体的第二预设值,也即,邻近的波形峰值小于0.1的鼓点将被滤除掉。
具体地,基于每个剩余候选鼓点的邻近的波形峰值对鼓点曲线中的第二类鼓点进行滤除的过程可以具体包括:获取每个剩余候选鼓点对应的局部鼓点曲线;基于局部鼓点曲线检测各个剩余候选鼓点邻近的波形峰值,并判断波形峰值是否小于第二预设值;如果是,则将当前剩余候选鼓点确定为第二类鼓点,并在鼓点曲线中对第二类鼓点进行滤除。也即,本步骤可以先将每个剩余候选鼓点回溯到对应的波形,在每个剩余候选鼓点对应的局部鼓点曲线中,其实存在多个波形峰值,其中最高的波形峰值即为当前剩余候选鼓点对应的波形峰值。根据上述局部鼓点曲线,可获取每个剩余候选鼓点邻近的波形峰值,若邻近的波形峰值小于第二预设值,则将当前剩余候选鼓点对应的鼓点强度设置为0,实现对第二类鼓点的滤除。
需要说明的是,本申请实施例具体先基于每个候选鼓点的鼓点强度对鼓点曲线中的第一类鼓点进行滤除,得到剩余候选鼓点,再基于每个剩余候选鼓点的邻近的波形峰值对鼓点曲线中的第二类鼓点进行滤除,首先通过直接对鼓点强度数据的比对,滤除第一类鼓点,再回溯到每个剩余候选鼓点的波形滤除第二类鼓点,实现查缺补漏,由此,可减少滤除第二类鼓点时的计算量。然而,在具体实施过程中,可以并不限定上述步骤S203和S204的执行顺序。也即,可以先基于每个候选鼓点的邻近的波形峰值对鼓点曲线中的第二类鼓点进行滤除,得到剩余候选鼓点,再基于每个剩余候选鼓点的鼓点强度对鼓点曲线中的第一类鼓点进行滤除,这并不影响本申请的实现。
S205:将所述滤除后鼓点曲线中的所有鼓点确定为所述待处理音频中的目标鼓点,并输出每个所述目标鼓点对应的鼓点位置。
本申请实施例公开了鼓点检测方法的另一种具体实施方式,相对于上一实施例,本实施例进一步提出了鼓点类型识别过程。参见图4所示,具体的:
S301:获取待处理音频,对所述待处理音频进行鼓盲源分离,得到鼓点音频;
S302:根据所述鼓点音频生成对应的音频波形,并基于所述音频波形确定出鼓点曲线;其中,所述鼓点曲线表征每个候选鼓点的鼓点强度;
S303:基于每个所述候选鼓点的鼓点强度和邻近的波形峰值对所述鼓点曲线进行鼓点滤除,得到滤除后鼓点曲线;
S304:将所述滤除后鼓点曲线中的所有鼓点确定为所述待处理音频中的目标鼓点,并输出每个所述目标鼓点对应的鼓点位置;
S305:基于所述鼓点位置从所述音频波形中获取每个所述目标鼓点对应的局部鼓点音频波形;
S306:提取所述局部鼓点音频波形对应的梅尔频谱特征并计算特征均值;
S307:利用多层全连接神经网络模型对所述特征均值进行鼓点分类,输出每个所述目标鼓点对应的鼓点类型。
本申请实施例中,在确定出待处理音频中的目标鼓点,并输出每个目标鼓点对应的鼓点位置之后,可以进一步对鼓点进行分类。为了对鼓点进行分类,首先需要提取鼓点的局部波形。具体地,可根据每个目标鼓点的鼓点位置,在前述步骤确定的整体的音频波形中,获取目标鼓点对应的局部鼓点音频波形。其中,局部鼓点音频波形的长度可以在具体实施中根据需求进行灵活设定,在此不进行具体限定。
可以理解的是,不同鼓点在频率能量分布上具有明显的特征,而由于一首歌中,即一个待处理音频中鼓点数目众多,出于对运行效率的考虑,应尽量避免建立过于复杂的分类系统。
由此,本申请实施例中,可具体提取局部鼓点音频波形对应的梅尔频谱特征并计算特征均值,利用多层全连接神经网络模型对特征均值进行鼓点分类,输出每个目标鼓点对应的鼓点类型。上述多层全连接神经网络模型具体为预先利用包括鼓点音频波形及其对应鼓点类型的训练样本训练得到的神经网络模型。也即,可以提取局部鼓点音频波形的梅尔频谱特征,计算均值作为每个鼓点的特征,通过将特征输入简单的多层全连接神经网络模型,实现鼓点分类,模型可输出目标鼓点对应的鼓点类型。上述鼓点类型可以包括但不限于Kick(底鼓)、Snare(军鼓)、Hi-Hat(踩镲)等类型。
下面通过一种具体的实施场景对本申请实施例提供的鼓点检测方法进行介绍。具体地,首先获取待处理音频,利用盲源分离技术对待处理音频进行分离处理,以便将混合的待处理音频中的鼓声成功分离,得到与原始的待处理音频等长的鼓声音频,其中只有鼓点的部分,没有鼓点的部分能量接近于零。一个混合音频经过分离后的典型波形图如图5所示,由图5可以看出,在分离后,尽管频谱可能有部分缺失,整体上看,可以较好地保留明显的鼓点。
在分离得到鼓点音频后,为了降低计算代价,并减少由于鼓点分离不干净带来的特征不准确问题,本实施例进一步对鼓点音频进行降采样处理。例如,可以将鼓点音频降采样到8k,对应最高频谱高度为4k。进一步地,可以以25ms为窗长,10ms为步长提取音频的短时傅里叶特征并转换为梅尔频谱特征,进而可以对梅尔频谱进行频谱归一化操作,生成音频波形,有利于突出鼓点特征,并削弱背景噪声。
进一步地,将对音频波形中每个频段计算能量强度包络。如图5所示,由于盲源分离技术不够成熟,分离后部分鼓点的中高频可能出现缺失。为了避免频段缺失带来多频段聚合的误差,可具体选用TopKmean作为聚合函数,从各频段中选取强度最大的K个频段,对其包络求平均值以聚合包络。具体地,K可选取5~10中的数值。
通过上述过程的包络聚合,本实施例可得到用于标示鼓点强度的曲线。首先,本实施例可以对鼓点曲线上所有鼓点进行强度归一化,例如,可通过除以曲线中鼓点强度最大值的方式将鼓点强度归一化到0~1之间。进而,过滤低强度鼓点,例如,将原始鼓点强度低于0.15的鼓点的强度重置为0;考虑到鼓点不可能在极短的时间段内连续出现,本实施例可在设定的一个时间窗口内,只保留具有最大强度的鼓点,将其余鼓点强度重置为0。其中,时间窗口的长度可以具体为80ms。另外,考虑到有些情况下,鼓点虽然在频段具有相当的强度,但在时域上听感却不明显,本实施例将前述过程滤除后的剩余鼓点均回溯到波形,检查各个鼓点附近的波形峰值,并将鼓点附近波形峰值较低的鼓点滤除。例如,可将附近波形峰值小于0.1的鼓点强度重置为0。通过对鼓点曲线进行鼓点滤除,可将听感不明显的鼓点过滤掉,进而较为准确的输出听感明显的鼓点及其对应的位置。
在确定音频中的鼓点之后,还可以进一步对鼓点进行分类。具体地,首先需要提取鼓点对应的局部音频波形,并提取局部音频波形的梅尔特征,计算均值作为多层全连接神经网络模型的输入值,以便通过多层全连接神经网络模型输出各鼓点对应的鼓点类型。
本申请实施例提供的鼓点检测方法,可以较为准确的提取出混合音频中的鼓点位置和鼓点类型,以供基于鼓点的音乐应用使用该信息,适用于对大规模音频进行鼓点检测的场景。
下面对本申请实施例提供的一种鼓点检测装置进行介绍,下文描述的一种鼓点检测装置与上文描述的一种鼓点检测方法可以相互参照。
参见图6所示,本申请实施例提供的一种鼓点检测装置包括:
盲源分离模块401,用于获取待处理音频,对所述待处理音频进行鼓盲源分离,得到鼓点音频;
曲线确定模块402,用于根据所述鼓点音频生成对应的音频波形,并基于所述音频波形确定出鼓点曲线;其中,所述鼓点曲线表征每个候选鼓点的鼓点强度;
鼓点滤除模块403,用于基于每个所述候选鼓点的鼓点强度和邻近的波形峰值对所述鼓点曲线进行鼓点滤除,得到滤除后鼓点曲线;
鼓点输出模块404,用于将所述滤除后鼓点曲线中的所有鼓点确定为所述待处理音频中的目标鼓点,并输出每个所述目标鼓点对应的鼓点位置。
关于上述模块401至404的具体实施过程可参考前述实施例公开的相应内容,在此不再进行赘述。
在上述实施例的基础上,作为一种优选实施方式,所述曲线确定模块402可以具体包括:
特征提取单元,用于对所述鼓点音频进行短时傅里叶变换,以提取所述鼓点音频的短时傅里叶变换特征,并根据所述短时傅里叶变换特征生成音频波形;
强度包络单元,用于根据所述音频波形确定每个频段对应的能量强度包络曲线,并综合所有频段的能量强度包络曲线得到所述鼓点曲线。
在上述实施例的基础上,作为一种优选实施方式,所述特征提取单元可以具体包括:
降采样处理子单元,用于对所述鼓点音频进行降采样处理,得到降采样后音频;其中,所述降采样后音频的最高频谱高度低于预设频谱高度阈值;
傅里叶变换子单元,用于利用预设窗口,按照预设步长在所述降采样后音频上滑动,依次对所述预设窗口内的音频信号进行短时傅里叶变换,以提取所述鼓点音频的短时傅里叶变换特征。
在上述实施例的基础上,作为一种优选实施方式,所述特征提取单元可以具体包括:
特征转换子单元,用于利用梅尔标度滤波器组,将所述短时傅里叶变换特征变换为梅尔频谱特征;
波形重建子单元,用于将所述梅尔频谱特征转换为幅度谱,并利用声码器算法基于所述幅度谱重建生成音频波形。
在上述实施例的基础上,作为一种优选实施方式,所述强度包络单元可以具体包括:
目标选取子单元,用于按照能量强度从大到小的顺序在所述所有频段中选取预设数量的目标频段,并获取所有所述目标频段对应的所有能量强度包络曲线;
均值计算子单元,用于利用聚合函数对所述所有能量强度包络曲线中每个时间点对应的能量强度值进行均值计算,得到所述鼓点曲线;
或,中值计算子单元,用于利用中值函数对所述所有能量强度包络曲线中每个时间点对应的能量强度值进行中值计算,得到所述鼓点曲线。
在上述实施例的基础上,作为一种优选实施方式,所述鼓点滤除模块403可以具体包括:
第一滤除单元,用于基于每个所述候选鼓点的鼓点强度对所述鼓点曲线中的第一类鼓点进行滤除,得到剩余候选鼓点;其中,所述第一类鼓点为鼓点强度低于第一预设值的鼓点和/或鼓点强度低于所属时间窗口内最高鼓点强度的鼓点;
第二滤除单元,用于基于每个所述剩余候选鼓点的邻近的波形峰值对所述鼓点曲线中的第二类鼓点进行滤除;其中,所述第二类鼓点为邻近的波形峰值小于第二预设值的鼓点。
在上述实施例的基础上,作为一种优选实施方式,所述第二滤除单元可以具体包括:
局部曲线获取子单元,用于获取每个所述剩余候选鼓点对应的局部鼓点曲线;
波形峰值获取子单元,用于基于所述局部鼓点曲线检测各个所述剩余候选鼓点邻近的波形峰值,并判断所述波形峰值是否小于所述第二预设值;
第二类鼓点滤除子单元,用于如果所述波形峰值小于所述第二预设值,则将当前所述剩余候选鼓点确定为所述第二类鼓点,并在所述鼓点曲线中对所述第二类鼓点进行滤除。
在上述实施例的基础上,作为一种优选实施方式,所述鼓点检测装置还可以进一步包括:
局部波形获取模块,用于基于所述鼓点位置从所述音频波形中获取每个所述目标鼓点对应的局部鼓点音频波形;
特征均值计算模块,用于提取所述局部鼓点音频波形对应的梅尔频谱特征并计算特征均值;
鼓点类型输出模块,用于利用多层全连接神经网络模型对所述特征均值进行鼓点分类,输出每个所述目标鼓点对应的鼓点类型。
本申请还提供了一种电子设备,参见图7所示,本申请实施例提供的一种电子设备包括:
存储器100,用于存储计算机程序;
处理器200,用于执行所述计算机程序时可以实现上述实施例所提供的步骤。
具体的,存储器100包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机可读指令,该内存储器为非易失性存储介质中的操作系统和计算机可读指令的运行提供环境。处理器200在一些实施例中可以是一中央处理器(CentralProcessing Unit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,为电子设备提供计算和控制能力,执行所述存储器100中保存的计算机程序时,可以实现前述任一实施例公开的鼓点检测方法。
在上述实施例的基础上,作为优选实施方式,参见图8所示,所述电子设备还包括:
输入接口300,与处理器200相连,用于获取外部导入的计算机程序、参数和指令,经处理器200控制保存至存储器100中。该输入接口300可以与输入装置相连,接收用户手动输入的参数或指令。该输入装置可以是显示屏上覆盖的触摸层,也可以是终端外壳上设置的按键、轨迹球或触控板,也可以是键盘、触控板或鼠标等。
显示单元400,与处理器200相连,用于显示处理器200处理的数据以及用于显示可视化的用户界面。该显示单元400可以为LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。
网络端口500,与处理器200相连,用于与外部各终端设备进行通信连接。该通信连接所采用的通信技术可以为有线通信技术或无线通信技术,如移动高清链接技术(MHL)、通用串行总线(USB)、高清多媒体接口(HDMI)、无线保真技术(WiFi)、蓝牙通信技术、低功耗蓝牙通信技术、基于IEEE802.11s的通信技术等。
图8仅示出了具有组件100-500的电子设备,本领域技术人员可以理解的是,图8示出的结构并不构成对电子设备的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
本申请还提供了一种计算机可读存储介质,该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。该存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现前述任一实施例公开的鼓点检测方法。
本申请可首先利用盲源分离技术分离出鼓点音频,进而确定出表征每个候选鼓点强度的鼓点曲线,利用候选鼓点的鼓点强度和邻近的波形峰值对鼓点曲线进行鼓点滤除,从而可将滤除后鼓点曲线中的所有鼓点确定为待处理音频中的目标鼓点,输出鼓点位置以实现鼓点的检测,能够在盲源分离的基础上进行鼓点滤除,有效地降低了盲源分离不干净或者误识别的概率,提高了鼓点检测的准确度。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
- 一种鼓点检测方法、装置及电子设备
- 一种电子设备故障检测方法、装置和电子设备