首页 > 乐器声学 专利正文
一种音乐节奏检测方法、装置、设备及存储介质与流程

时间:2022-02-24 阅读: 作者:专利查询

一种音乐节奏检测方法、装置、设备及存储介质与流程

1.本发明涉及音频数据处理技术领域,尤其涉及一种音乐节奏检测方法、装置、设备及存储介质。


背景技术:

2.音乐节奏检测是音乐信息检索(music information retrieval,mir)的重要任务之一,其在舞台灯光自动变换、歌曲分类等方面具有极大潜力的应用前景。人类可以轻松的识别出音乐的节奏,然后自然地跟着音乐的节拍脚踏、摇头或拍手。但对计算机来说,理解音乐的节奏和旋律仍然是个具有挑战性的任务。目前主流的音乐节奏检测方法是基于音乐信号频谱能量法进行音乐节奏的检测。现有的基于频谱能量法的检测方法存在两个缺陷:1、忽略了音乐频域相位的变化而仅仅使用频域幅值,无法检测出由于相位变化而引起的节奏点;2、仅基于频谱能量峰值的方法判断节奏点,不能处理现有音乐中多变的节拍形式,如切分音等。


技术实现要素:

3.针对上述问题,本发明的目的在于提供一种音乐节奏检测方法、装置、设备及存储介质,其能检测出由于相位变化导致的节奏点,提高节奏检出率。
4.第一方面,本发明实施例提供了一种音乐节奏检测方法,包括:
5.获取待检测音乐的若干帧音频数据,并将若干帧所述音频数据转换为频谱数据;
6.对若干帧所述频谱数据进行分解,获得若干帧所述音频数据的幅值谱和相位谱;
7.根据前k帧音频数据对应的幅值谱和相位谱,计算当前帧音频数据的预测频谱;
8.根据当前帧音频数据对应的频谱数据、预测频谱数据,计算当前帧音频数据的目标幅值谱;
9.对所述目标幅值谱进行滤波,得到当前帧音频数据的节奏点。
10.作为上述方案的改进,所述对所述目标幅值谱进行滤波,得到当前帧音频数据的节奏点,包括:
11.对所述目标幅值谱进行不同延迟下的滤波处理,得到不同延迟下的滤波结果;
12.根据不同延迟下的滤波结果,确定出最佳延迟;
13.根据所述最佳延迟以及所述最佳延迟对应的滤波结果,计算起始节奏点;
14.以所述最佳延迟为节奏周期,根据所述起始节奏点和所述节奏周期,得到所述节奏点。
15.作为上述方案的改进,所述根据不同延迟下的滤波结果,确定出最佳延迟,包括:
16.对不同延迟下的滤波结果进行加和,获取最大加和值对应的延迟作为最佳延迟。
17.作为上述方案的改进,所述将若干帧所述音频数据转换为频谱数据,包括:
18.对所述音频数据进行滑窗分帧处理;
19.对分帧后的音频数据进行傅里叶变换,得到所述频谱数据。
20.作为上述方案的改进,所述根据前k帧音频数据对应的幅值谱和相位谱,计算当前帧音频数据的预测频谱,包括:
21.根据前k帧音频数据对应的幅值谱和相位谱,通过公式(1),计算当前帧音频数据的预测频谱;
[0022][0023]
其中,k=2,m(i

1,m),表示前一帧音频数据的幅值谱和相位谱,表示前两帧音频数据的相位谱,fmod表示求余数函数。
[0024]
作为上述方案的改进,所述根据当前帧音频数据对应的频谱数据、预测频谱数据,计算当前帧音频数据的目标幅值谱,包括:
[0025]
通过公式(2),计算当前帧音频数据的目标幅值谱;
[0026][0027]
其中,r(i,m),i(i,m)表示当前帧音频数据对应的频谱数据的实部和虚部;表示当前帧音频数据对应的预测频谱数据的实部和虚部。
[0028]
作为上述方案的改进,所述根据所述最佳延迟以及所述最佳延迟对应的滤波结果,计算起始节奏点,包括:
[0029]
通过公式(3),计算起始节奏点;
[0030][0031]
其中,τ
pre
表示最佳延迟,y(i,τ
pre
)所述最佳延迟对应的滤波结果,n表示音频数据的帧数。
[0032]
第二方面,本发明实施例提供了一种音乐节奏检测装置,包括:
[0033]
频谱转换模块,用于获取待检测音乐的若干帧音频数据,并将若干帧所述音频数据转换为频谱数据;
[0034]
频谱分解模块,用于对若干帧所述频谱数据进行分解,获得若干帧所述音频数据的幅值谱和相位谱;
[0035]
频谱预测模块,用于根据前k帧音频数据对应的幅值谱和相位谱,计算当前帧音频数据的预测频谱;
[0036]
目标幅值谱计算模块,用于根据当前帧音频数据对应的频谱数据、预测频谱数据,计算当前帧音频数据的目标幅值谱;
[0037]
节奏点计算模块,用于对所述目标幅值谱进行滤波,得到当前帧音频数据的节奏点。
[0038]
第三方面,本发明实施例提供了一种音乐节奏检测设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面中任意一项所述的音乐节奏检测方法。
[0039]
第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如第一方面中任意一项所述的音乐节奏检测方法。
[0040]
相对于现有技术,本发明实例的有益效果在于:所述音乐节奏检测方法包括:获取待检测音乐的若干帧音频数据,并将若干帧所述音频数据转换为频谱数据;对若干帧所述频谱数据进行分解,获得若干帧所述音频数据的幅值谱和相位谱;根据前k帧音频数据对应的幅值谱和相位谱,计算当前帧音频数据的预测频谱;根据当前帧音频数据对应的频谱数据、预测频谱数据,计算当前帧音频数据的目标幅值谱;对所述目标幅值谱进行滤波,得到当前帧音频数据的节奏点。通过结合音频数据的相位信息和幅值信息,能准确检测出由于相位变化导致的节奏点,提高节奏检出率,同时通过滤波计算出节奏周期,可以不依赖幅值与相位大小,准确检测出多变节拍形式下的节奏点。
附图说明
[0041]
为了更清楚地说明本发明的技术方案,下面将对实施方式中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0042]
图1是本发明第一实施例提供的一种音乐节奏检测方法的流程图;
[0043]
图2是本发明第二实施例提供的一种音乐节奏检测装置的示意图;
[0044]
图3是本发明第三实施例提供的一种音乐节奏检测设备的示意图。
具体实施方式
[0045]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0046]
请参阅图1,本发明实施例提供的一种一种音乐节奏检测方法的流程图,所述音乐节奏检测方法,包括:
[0047]
s1:获取待检测音乐的若干帧音频数据,并将若干帧所述音频数据转换为频谱数据;
[0048]
s2:对若干帧所述频谱数据进行分解,获得若干帧所述音频数据的幅值谱和相位谱;
[0049]
s3:根据前k帧音频数据对应的幅值谱和相位谱,计算当前帧音频数据的预测频谱;
[0050]
s4:根据当前帧音频数据对应的频谱数据、预测频谱数据,计算当前帧音频数据的目标幅值谱;
[0051]
s5:对所述目标幅值谱进行滤波,得到当前帧音频数据的节奏点。
[0052]
在本实施中,通过当前帧的前k帧音频数据的相位谱和幅值谱来预测当前帧音频数据的预测频谱数据,可以利用音乐音频的局部稳定性的特点,充分利用幅值谱和相位谱信息,从而准确检测出由于相位变化导致的节奏点,例如音调变化发生时的节奏点,提高节
奏检出率,同时通过滤波计算出节奏周期,可以不依赖幅值与相位大小,准确检测出多变节拍形式下,例如切分音等位置的节奏点。
[0053]
在一种可选的实施例中,所述对所述目标幅值谱进行滤波,得到当前帧音频数据的节奏点,包括:
[0054]
对所述目标幅值谱进行不同延迟下的滤波处理,得到不同延迟下的滤波结果;
[0055]
根据不同延迟下的滤波结果,确定出最佳延迟;
[0056]
根据所述最佳延迟以及所述最佳延迟对应的滤波结果,计算起始节奏点;
[0057]
以所述最佳延迟为节奏周期,根据所述起始节奏点和所述节奏周期,得到所述节奏点。
[0058]
进一步的,所述根据不同延迟下的滤波结果,确定出最佳延迟,包括:
[0059]
对不同延迟下的滤波结果进行加和,获取最大加和值对应的延迟作为最佳延迟。
[0060]
示例性的,假设滤波器的延迟为τ,所述目标幅值谱为一系列一阶差分值ξ(i),得到一系列经过滤波后的滤波结果y(i,τ)=ξ(i)+α*y(i

τ,τ);其中,α表示增益系数,优选地,α=0.5
i/n
。n表示音频数据的帧数。
[0061]
然后将得到的不同延迟τ下滤波结果y进行加和,输出最大值的滤波器延迟作为最佳的节奏周期τ
pre

[0062][0063]
之后根据节奏周期τ
pre
及其对应滤波结果y(i,τ
pre
),计算出起始节奏点的位置;
[0064]
最后根据起始节奏点的位置和节奏周期τ
pre
可以得到其余的节奏点。
[0065]
在本发明实施例中,采用一组滤波器估计音乐节奏,目标幅值谱经过一系列具有不同延迟的滤波器后,最符合信号周期的滤波器的输出将得到最高的激励,从而可以检测出具有切分音等位置的节奏点。
[0066]
在一种可选的实施例中,所述将若干帧所述音频数据转换为频谱数据,包括:
[0067]
对所述音频数据进行滑窗分帧处理;
[0068]
对分帧后的音频数据进行傅里叶变换,得到所述频谱数据。
[0069]
在本发明实施例中,对于音频数据x(t)经过滑窗分帧、傅里叶变换后得到频谱数据x(n,m),其中,n为帧序号,n=1,2,...,n;m为一帧中音频点数序号,m=1,2,...,m。第i帧中第m点的傅里叶变换结果可表示为:
[0070]
x(i,m)=r(i,m)+ji(i,m)
[0071]
其中,r(i,m),i(i,m)分别表示实部和虚部。
[0072]
通过对音频数据进行傅里叶变换可以得到音频数据的幅值谱m(i,m)和相位谱方便后续的节奏点检测。其中,第i帧第m点的幅值谱与相位谱可表示为:
[0073][0074]
其中,atan表示反正切函数
[0075]
在一种可选的实施例中,所述根据前k帧音频数据对应的幅值谱和相位谱,计算当
前帧音频数据的预测频谱,包括:
[0076]
根据前k帧音频数据对应的幅值谱和相位谱,通过公式(1),计算当前帧音频数据的预测频谱;
[0077][0078]
其中,k=2,m(i

1,m),表示前一帧音频数据的幅值谱和相位谱,表示前两帧音频数据的相位谱,fmod表示求余数函数。
[0079]
进一步的,可以通过计算当前帧音频数据对应的频谱数据、预测频谱数据的一阶差分作为当前帧音频数据的节奏检测依据,即所述目标幅值谱。第i帧音频数据的目标幅值谱可表示为:
[0080][0081]
其中,r(i,m),i(i,m)表示当前帧音频数据对应的频谱数据的实部和虚部;表示当前帧音频数据对应的预测频谱数据的实部和虚部。
[0082]
通过公式(2)可以预测出当前帧在不同频点上的节奏权重。
[0083]
在一种可选的实施例中,所述根据所述最佳延迟以及所述最佳延迟对应的滤波结果,计算起始节奏点,包括:
[0084]
通过公式(3),计算起始节奏点;
[0085][0086]
其中,τ
pre
表示最佳延迟,y(i,τ
pre
)所述最佳延迟对应的滤波结果,n表示音频数据的帧数。
[0087]
相对于现有技术,本发明实例的有益效果在于:
[0088]
1、由于相位变化导致的节奏点,此时其幅值变化不明显,传统的幅值检测法无法检测,本发明实施例通过结合音频数据的相位信息和幅值信息,能准确检测出由于相位变化导致的节奏点,提高节奏检出率;
[0089]
2、通过滤波计算出最佳的节奏周期,然后通过节奏周期可以准确计算出节奏点,不依赖幅值是相位大小,准确检测出多变节拍形式下,例如切分音等位置的节奏点。
[0090]
请参阅图2,本发明第二实施例提供了一种音乐节奏检测装置,包括:
[0091]
频谱转换模块1,用于获取待检测音乐的若干帧音频数据,并将若干帧所述音频数据转换为频谱数据;
[0092]
频谱分解模块2,用于对若干帧所述频谱数据进行分解,获得若干帧所述音频数据的幅值谱和相位谱;
[0093]
频谱预测模块3,用于根据前k帧音频数据对应的幅值谱和相位谱,计算当前帧音频数据的预测频谱;
[0094]
目标幅值谱计算模块4,用于根据当前帧音频数据对应的频谱数据、预测频谱数
据,计算当前帧音频数据的目标幅值谱;
[0095]
节奏点计算模块5,用于对所述目标幅值谱进行滤波,得到当前帧音频数据的节奏点。
[0096]
在一种可选的实施例中,所述节奏点计算模块5包括:
[0097]
滤波单元,用于对所述目标幅值谱进行不同延迟下的滤波处理,得到不同延迟下的滤波结果;
[0098]
最佳迟延确定单元,用于根据不同延迟下的滤波结果,确定出最佳延迟;
[0099]
起始节奏点计算单元,用于根据所述最佳延迟以及所述最佳延迟对应的滤波结果,计算起始节奏点;
[0100]
其余节奏点计算单元,用于以所述最佳延迟为节奏周期,根据所述起始节奏点和所述节奏周期,得到所述节奏点。
[0101]
进一步的,所述最佳迟延确定单元,用于对不同延迟下的滤波结果进行加和,获取最大加和值对应的延迟作为最佳延迟。
[0102]
在一种可选的实施例中,所述频谱转换模块1包括:
[0103]
分帧单元,用于对所述音频数据进行滑窗分帧处理;
[0104]
傅里叶变换单元,用于对分帧后的音频数据进行傅里叶变换,得到所述频谱数据。
[0105]
在一种可选的实施例中,所述频谱预测模块3,用于
[0106]
根据前k帧音频数据对应的幅值谱和相位谱,通过公式(1),计算当前帧音频数据的预测频谱;
[0107][0108]
其中,k=2,m(i

1,m),表示前一帧音频数据的幅值谱和相位谱,表示前两帧音频数据的相位谱,fmod表示求余数函数。
[0109]
在一种可选的实施例中,所述目标幅值谱计算模块4,用于
[0110]
通过公式(2),计算当前帧音频数据的目标幅值谱;
[0111][0112]
其中,r(i,m),i(i,m)表示当前帧音频数据对应的频谱数据的实部和虚部;表示当前帧音频数据对应的预测频谱数据的实部和虚部。
[0113]
在一种可选的实施例中,所述起始节奏点计算单元,用于
[0114]
通过公式(3),计算起始节奏点;
[0115][0116]
其中,τ
pre
表示最佳延迟,y(i,τ
pre
)所述最佳延迟对应的滤波结果,n表示音频数据的帧数。
[0117]
需要说明的是,本发明实施例所述的音乐节奏检测装置的原理和技术效果与第一
实施例所述的音乐节奏检测方法相同,在这里不再赘述。
[0118]
请参阅图3,本发明第三实施例提供了一种音乐节奏检测设备,包括至少一个处理器11,例如cpu,至少一个网络接口14或者其他用户接口13,存储器15,至少一个通信总线12,通信总线12用于实现这些组件之间的连接通信。其中,用户接口13可选的可以包括usb接口以及其他标准接口、有线接口。网络接口14可选的可以包括wi

fi接口以及其他无线接口。存储器15可能包含高速ram存储器,也可能还包括非不稳定的存储器(non

volatilememory),例如至少一个磁盘存储器。存储器15可选的可以包含至少一个位于远离前述处理器11的存储装置。
[0119]
在一些实施方式中,存储器15存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:
[0120]
操作系统151,包含各种系统程序,用于实现各种基础业务以及处理基于硬件的任务;
[0121]
程序152。
[0122]
具体地,处理器11用于调用存储器15中存储的程序152,执行上述实施例所述的音乐节奏检测方法,例如图1所示的步骤s1。或者,所述处理器执行所述计算机程序时实现上述各装置实施例中各模块/单元的功能,例如频谱转换模块。
[0123]
示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器中,并由所述处理器执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述音乐节奏检测设备中的执行过程。
[0124]
所述音乐节奏检测设备可以是vcu、ecu、bms等计算设备。所述音乐节奏检测设备可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,所述示意图仅仅是音乐节奏检测设备的示例,并不构成对音乐节奏检测设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件。
[0125]
所称处理器11可以是微处理器(microcontroller unit,mcu)中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field

programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器11是所述音乐节奏检测设备的控制中心,利用各种接口和线路连接整个音乐节奏检测设备的各个部分。
[0126]
所述存储器15可用于存储所述计算机程序和/或模块,所述处理器11通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述音乐节奏检测设备的各种功能。所述存储器15可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器15可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)、至少一个磁盘存储器件、闪存器件、或其他易失性固
态存储器件。
[0127]
其中,所述音乐节奏检测设备集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read

only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
[0128]
本发明第四实施例提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如第一实施例中任意一项所述的音乐节奏检测方法。
[0129]
需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0130]
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。