一种分析音乐bpm的方法和装置的制作方法

文档序号:2836077阅读:381来源:国知局
专利名称:一种分析音乐bpm的方法和装置的制作方法
CN 102543052 A一种分析音乐BPM的方法和装置技术领域
本发明涉及计算机处理技术,特别涉及一种分析音乐每分钟节拍数(BPM,Beat Per Minute)的方法和装置。背景技术
BPM是音乐的重要属性之一,标识音乐每分钟的节拍数,在音频分析、个性化音乐推荐、音乐分类等应用中发挥重要作用。例如在乐器数字接口(MIDI)的应用中,通过BPM 可以将MIDI音序器的速度与一个已有的音轨同步;在音乐数据库系统中,可根据BPM对音乐进行分类和检索。在流行音乐播音员(DJ)的应用中,可以将两种音乐源的BPM值进行比较,以便从一个音乐源无缝地过渡到另一个音乐源,等等。
BPM分析技术中需要从待分析音乐中选择一些音乐片段,计算各音乐片段的BPM 值后进行融合得到待分析音乐的BPM值。其中现有计算音乐片段的BPM值的方法是计算音乐片段的自相关函数,提取自相关函数的周期值作为两个节拍之间的时间间隔,并换算成每分钟的节拍数作为输出。然而现有计算音乐片段的BPM值的方法对于音乐节奏感强, 节奏鼓点非常明显的音乐能够满足准确性要求,但对于音乐伴奏较弱,甚至没有伴奏的时候,由于其周期性非常不明显,采用现有的方法往往很难找到准确的BPM值。
发明内容
有鉴于此,本发明提供了一种分析音乐BPM的方法和装置,以便于提高弱伴奏音乐片段的BPM分析准确性。
具体技术方案如下
一种分析音乐每分钟节拍数BPM的方法,该方法包括
Si、对待分析音乐片段的自相关函数进行峰值搜索,判决所述待分析音乐片段所属的音乐拍系;
S2、对所述待分析音乐片段进行停顿点的检测;
S3、根据停顿点的周期值以及所述步骤Sl的判决结果,计算每分钟的节拍数作为所述待分析音乐片段的BPM。
根据本发明一优选实施例,所述步骤Sl具体包括
S11、对所述待分析音乐片段的自相关函数进行峰值搜索,确定每一节拍包含的帧数1 ;
S12、分别计算自相关函数在Xl的整数倍帧处的值,并判断是局部最大值的帧个数是否满足预设要求,X为预设的正整数,如果判断结果为是,则确定所述待分析音乐片段属于X拍系。
根据本发明一优选实施例,在步骤Sll中对所述待分析音乐片段的自相关函数进行峰值搜索之前还包括
对所述待分析音乐片段的自相关函数叠加窗函数。
根据本发明一优选实施例,所述步骤S12为分别计算所述自相关函数在31的整数倍帧处的值,并判断是局部最大值的帧个数是否满足预设要求,如果是,则判决出所述待分析音乐片段属于三拍系,否则判决出所述待分析音乐片段判断属于两拍系。
根据本发明一优选实施例,所述步骤S2具体包括
检测所述待分析音乐片段的能量幅度曲线波谷位置,将波谷位置确定为停顿点; 或者,
检测音乐片段的信号能量幅度低于预设幅度低点的位置,如果连续多帧的能量幅度低于预设幅度低点,则取所述连续多帧的中点作为停顿点,否则直接将检测到的位置作为停顿点。
根据本发明一优选实施例,所述步骤S3具体包括
根据停顿点的周期值以及停顿点间的小节数,确定每个小节的时间长度;根据所述步骤Sl的判决结果,确定每个小节包含的节拍数;根据每个小节包含的节拍数以及每个小节的时间长度,计算每分钟的节拍数作为所述待分析音乐片段的BPM ;或者,
根据所述步骤Sl的判决结果确定出每个小节包含的节拍数;根据停顿点间的小节数确定停顿点间包含的节拍数;利用停顿点间包含的节拍数以及停顿点的周期值,计算每分钟的节拍数作为所述待分析音乐片段的BPM。
根据本发明一优选实施例,在所述步骤S3之后还包括
判断计算出的BPM是否超出预设的合理值范围,如果是,继续执行步骤S4 ;
S4、如果计算出的BPM低于所述合理值范围的最低值,则将计算出的BPM的值乘以 2作为优化后的所述待分析音乐片段的BPM ;如果计算出的BPM高于所述合理值范围的最高值,则将计算出的BPM的值除以2作为优化后的所述待分析音乐片段的BPM。
一种分析音乐每分钟节拍数BPM的装置,该装置包括
拍系判决单元,用于对待分析音乐片段的自相关函数进行峰值搜索,判决所述待分析音乐片段所属的音乐拍系;
停顿检测单元,用于对所述待分析音乐片段进行停顿点的检测;
BPM计算单元,用于根据停顿点的周期值以及所述拍系判决单元的判决结果,计算每分钟的节拍数作为所述待分析音乐片段的BPM。
根据本发明一优选实施例,所述拍系判决单元具体包括
峰值搜索模块,用于对所述待分析音乐片段的自相关函数进行峰值搜索,确定每一节拍包含的帧数1 ;
峰值判断模块,用于分别计算自相关函数在Xl的整数倍帧处的值,并判断是局部最大值的帧个数是否满足预设要求,X为预设的正整数;
拍系确定模块,用于如果所述峰值判断模块的判断结果为是,则确定所述待分析音乐片段属于X拍系。
根据本发明一优选实施例,所述峰值搜索模块在对所述待分析音乐片段的自相关函数进行峰值搜索之前,还用于对所述待分析音乐片段的自相关函数叠加窗函数。
根据本发明一优选实施例,所述峰值判断模块具体计算所述自相关函数在31的整数倍帧处的值,并判断是局部最大值的帧个数是否满足预设要求;
所述拍系确定单元如果所述峰值判断模块的判断结果为是,则判决出所述待分析音乐片段属于三拍系,否则判决出所述待分析音乐片段属于两拍系。
根据本发明一优选实施例,所述停顿检测单元具体检测所述待分析音乐片段的能量幅度曲线波谷位置,将波谷位置确定为停顿点;或者,
检测待分析音乐片段的信号能量幅度低于预设幅度低点的位置,如果连续多帧的能量幅度低于预设幅度低点,则取所述连续多帧的中点作为停顿点,否则直接将检测到的位置作为停顿点。
根据本发明一优选实施例,所述BPM计算单元具体根据停顿点的周期值以及停顿点间的小节数,确定每个小节的时间长度;根据所述拍系判决单元的判决结果,确定每个小节包含的节拍数;根据每个小节包含的节拍数以及每个小节的时间长度,计算每分钟的节拍数作为所述待分析音乐片段的BPM ;或者,
根据所述拍系判决单元的判决结果确定出每个小节包含的节拍数;根据停顿点间的小节数确定停顿点间包含的节拍数;利用停顿点间包含的节拍数以及停顿点的周期值, 计算每分钟的节拍数作为所述待分析音乐片段的BPM。
根据本发明一优选实施例,该装置还包括
BPM优化单元,用于判断所述BPM计算单元计算出的BPM是否超出预设的合理值范围,如果是,继续执行如果所述计算出的BPM低于所述合理值范围的最低值,则将所述计算出的BPM的值乘以2作为优化后的所述待分析音乐片段的BPM ;如果所述计算出的BPM 高于所述合理值范围的最高值,则将所述计算出的BPM的值除以2作为优化后的所述待分析音乐片段的BPM。
由以上技术方案可以看出,本发明采用停顿点检测的方式获取停顿点的周期值, 再结合拍系判决的结果确定出音乐片段的BPM。由于无论是强伴奏还是弱伴奏,检测停顿点获取周期值的方式比现有获取音乐片段自相关函数的周期值的方式明显具有更准确的效果,且更易于检测,因此在弱伴奏音乐片段的BPM分析上相比较现有技术具有更高的准确性。

图1为本发明实施例一提供的分析音乐BPM的方法流程图2为本发明实施例一提供的判决音乐拍系的方法流程图3为本发明实施例二提供的分析音乐BPM的装置结构图。具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
实施例一、
图1为本发明实施例一提供的分析音乐BPM的方法流程图,如图1所示,该方法可以包括以下步骤
步骤101 对待分析音乐片段的自相关函数进行峰值搜索,判决该待分析音乐片段所属的音乐拍系。
本步骤的具体实现方法可以参见图2,可以包括以下步骤201至步骤203
步骤201 对待分析音乐片段的自相关函数进行峰值搜索,确定每一节拍包含的帧数1。
在本步骤中首先确定出待分析音乐片段的自相关函数,求取音乐信号的自相关函数是现有技术在此不再详述。在确定出自相关函数后,为了确定每一节拍包含的帧数1需要对自相关函数进行峰值搜索,峰值所对应的采样帧数就是要寻找的帧数1。例如,假设音乐片段的自相关函数横坐标取值范围为0 1000帧,通过对自相关函数进行峰值搜索,确定出横坐标取60时自相关函数值最大,于是1为60,即确定每一节拍包含的帧数为60。
由于对音乐信号进行了截断操作,不可避免的会出现频谱泄露,所谓频谱泄露就是在本不应该出现能量的频率点上仍有能量出现。信号被截断得越短,频谱泄露越严重,为了减小频谱泄露对峰值搜索的精度所产生的影响,可以进一步对音乐片段的自相关函数叠加窗函数,例如高斯窗函数,从而利用窗函数的旁瓣抑制泄露出的频谱分量,起到频谱平滑的作用。
在选择高斯窗函数时,由于高斯窗函数由均值μ和方差ο 2两个参数决定,其中均值μ决定了高斯窗函数最大值出现的位置,而方差ο2决定了高斯窗函数的主瓣宽度, 根据经验大多数音乐的BPM分布在80 120,因此高斯窗函数的均值μ选择为80 120。 方差ο 2的选择关系到主瓣宽度,当选定方差ο 2后BPM值落在区间[μ-σ,μ + σ]内的百分比超过70%,落在[μ-2 0,μ+2 O]的百分比超过95%,因此,O的取值范围可以为 40 60。叠加窗函数的过程实际上就是将自相关函数与窗函数直接相乘,在此不再详述。
步骤202 分别计算自相关函数在xnl帧处的值,并判断是局部最大值的帧数是否满足预设要求,其中η为1、2、3......,χ为预设的正整数。
也就是说,分别计算自相关函数在Xl整数倍帧处的值,优选地,通常流行音乐的拍系为两拍系或者三拍系,因此χ可以取2或者3。
步骤203 如果步骤202中的判断结果为是,则确定该音乐片段属于χ拍系。
举个例子,以1取2和3为例,首先计算自相关函数在21、41、61...帧处的值,判断这些帧中是局部最大值的帧数是否满足预设要求,其中预设要求可以是帧数超过预设的数量阈值或者比例超过预设的比例阈值等;计算自相关函数在31、61、91...帧处的值,判断这些帧中是局部最大值的帧数是否满足预设要求。如果21、41、61...帧中是局部最大值的帧数满足预设要求,则判决出该音乐判断属于两拍系;如果31、61、91...帧中是局部最大值的帧数满足预设要求,则判决出该音乐片段判断属于三拍系。此处的局部是一个预设范围,该范围的长度不超过χ帧,假设当χ为3时,可以设置局部的范围为2帧,也就是说, 当某一帧在其左右两帧范围内为最大值时,认为该帧的自相关函数取值为局部最大值。
另外,在实际应用中,由于绝大多数音乐的拍系属于两拍系或者三拍系,为了降低运算量,可以仅计算自相关函数在31整数倍帧处的值,判断这些帧中是局部最大值的帧数是否满足预设要求,如果是,则判决出该音乐片段属于三拍系,否则均判决该音乐片段属于两拍系。
继续参见图1。
步骤102 对待分析音乐片段进行停顿点的检测。
在本步骤中对待分析音乐片段的信号本身进行能量幅度检测,无论是强伴奏还是弱伴奏的音乐,每一句歌词之间都会有短暂的停顿,停顿点处的能量幅度均达到波谷,且这些停顿点的出现位置是周期性的,周期的长度就是每一句歌词的持续时间。
本步骤中,检测停顿点的方法可以包括但不限于以下两种
其一、检测待分析音乐片段的能量幅度曲线波谷位置,将波谷位置确定为停顿点。
其二、检测音乐片段的信号能量幅度低于预设幅度低点的位置,如果连续多帧低于预设幅度低点,则取该连续多帧的中点作为停顿点,否则直接将检测到的位置作为停顿点。预设幅度低点可以通过经验值选取。
在检测出停顿点后,根据各停顿点间的时间间隔提取停顿点的周期值。例如可以将各停顿点间的时间间隔的平均值作为停顿点的周期值。
步骤103 根据停顿点的周期值以及步骤101的判决结果,计算每分钟的节拍数。
具体的计算方法可以包括以下步骤Sl至S3
Si、根据停顿点的周期值以及停顿点间的小节数,确定出每个小节的时间长度。
通常一个停顿点之间为一句歌词的长度,一句歌词包含4个小节,用停顿点的周期值除以停顿点间的小节数即可得到每个小节的时间长度。
S2、根据步骤102的判决结果,即是三拍系还是两拍系,确定出每个小节包含的节拍数。
如果确定出该音乐片段属于三拍系,则每个小节包含3个节拍,如果确定出该音乐片段属于两拍系,则每个小节包含2个节拍。
可以看出本发明实施例中虽然也会利用音乐片段的自相关函数,但是对其进行峰值搜索来判断音乐片段所属的音乐拍系,即确定每个小节包含的节拍数。
S3、根据每个小节包含的节拍数以及每个小节的时间长度就可以计算出每分钟的节拍数,即待分析音乐片段的BPM。
需要说明的是,上述步骤Sl至步骤S3仅是本发明实施例提供的其中一种实现方法,当然还可以采用其他实现方式,例如根据步骤102的判决结果确定出每个小节包含的节拍数,然后根据停顿点间的小节数确定停顿点间包含的节拍数,最后再结合停顿点的周期值,确定出每分钟的节拍数。
优选地,在步骤S3之后还可以进一步对计算出的BPM进行优化处理,即判断BPM 是否超出预设的合理值范围,如果是,继续执行步骤S4。
S4、如果计算出的BPM低于合理范围的最低值,则将该BPM的值乘以2作为优化后的BPM ;如果计算出的BPM高于合理范围的最高值,则将该BPM的值除以2作为优化后的 BPM。如果步骤S3的计算结果正好落于预设的合理值范围内,则无需进行优化处理。
例如,假设合理范围为40 120,如果在步骤S3计算出的BPM为30,则很有可能是相邻两个节拍之间还存在一个节拍出现了漏检测,因此应该将BPM的值乘以2,得到60作为正确的BPM。如果在步骤S3计算出的BPM为180,则很有可能是相邻两个节拍之间多检测出了一个节拍,因此应该将BPM的值除以2,得到90作为正确的BPM。这种优化是针对音乐具有节拍的模糊性进行的,将其命名为2倍优化。
以上是对本发明所提供的方法进行的详细描述,下面结合实施例二对本发明所提供的装置进行详细描述。
实施例二、
图3为本发明实施例二提供的分析音乐BPM的装置结构图,如图3所示,该装置具体包括拍系判决单元300、停顿检测单元310和BPM计算单元320。
拍系判决单元300对待分析音乐片段的自相关函数进行峰值搜索,判决待分析音乐片段所属的音乐拍系。其中求取音乐信号的自相关函数是现有技术在此不再详述。
该拍系判决单元300可以具体包括峰值搜索模块301、峰值判断模块302和拍系确定模块303。
峰值搜索模块301对待分析音乐片段的自相关函数进行峰值搜索,确定每一节拍包含的帧数1。具体地,在确定出自相关函数后,为了确定每一节拍包含的帧数1需要对自相关函数进行峰值搜索,峰值所对应的采样帧数就是要寻找的帧数1。例如,假设音乐片段的自相关函数横坐标取值范围为0 1000帧,通过对自相关函数进行峰值搜索,确定出横坐标取60时自相关函数值最大,于是1为60,即确定每一节拍包含的帧数为60。
由于对音乐信号进行了截断操作,不可避免的会出现频谱泄露,所谓频谱泄露就是在本不应该出现能量的频率点上仍有能量出现。信号被截断得越短,频谱泄露越严重,为了减小频谱泄露对峰值搜索的精度所产生的影响,可以进一步对待分析音乐片段的自相关函数叠加窗函数,例如高斯窗函数,从而利用窗函数的旁瓣抑制泄露出的频谱分量,起到频谱平滑的作用。
在选择高斯窗函数时,由于高斯窗函数由均值μ和方差σ 2两个参数决定,其中均值μ决定了高斯窗函数最大值出现的位置,而方差ο2决定了高斯窗函数的主瓣宽度, 根据经验大多数音乐的BPM分布在80 120,因此高斯窗函数的均值μ选择为80 120。 方差ο 2的选择关系到主瓣宽度,当选定方差ο 2后BPM值落在区间[μ-σ,μ + σ]内的百分比超过70%,落在[μ-2 0,μ+2 O]的百分比超过95%,因此,O的取值范围可以为 40 60。叠加窗函数的过程实际上就是将自相关函数与窗函数直接相乘,在此不再详述。
峰值判断模块302分别计算自相关函数在xl的整数倍帧处的值,并判断是局部最大值的帧个数是否满足预设要求,X为预设的正整数。
优选地,通常流行音乐的拍系为两拍系或者三拍系,因此χ可以取2或者3。
拍系确定模块303如果峰值判断模块的判断结果为是,则确定待分析音乐片段属于X拍系。
举个例子,以1取2和3为例,首先计算自相关函数在21、41、61...帧处的值,判断这些帧中是局部最大值的帧数是否满足预设要求,其中预设要求可以是帧数超过预设的数量阈值或者比例超过预设的比例阈值等;计算自相关函数在31、61、91...帧处的值,判断这些帧中是局部最大值的帧数是否满足预设要求。如果21、41、61...帧中是局部最大值的帧数满足预设要求,则判决出该音乐判断属于两拍系;如果31、61、91...帧中是局部最大值的帧数满足预设要求,则判决出该音乐片段判断属于三拍系。
另外,在实际应用中,由于绝大多数音乐的拍系属于两拍系或者三拍系,为了降低运算量,峰值判断模块302可以仅计算自相关函数在31、61、91...帧处的值,判断这些帧中是局部最大值的帧数是否满足预设要求,如果是,则拍系确定模块303判决出该音乐片段属于三拍系,否则均判决该音乐片段属于两拍系。
停顿检测单元310对音乐片段进行停顿点的检测。具体地,可以采用以下两种检测方式
方式一、检测待分析音乐片段的能量幅度曲线波谷位置,将波谷位置确定为停顿点ο
方式二、检测待分析音乐片段的信号能量幅度低于预设幅度低点的位置,如果连续多帧的能量幅度低于预设幅度低点,则取该连续多帧的中点作为停顿点,否则直接将检测到的位置作为停顿点。
BPM计算单元320根据停顿点的周期值以及拍系判决单元300的判决结果,计算每分钟的节拍数作为当前音乐片段的BPM。
具体地,BPM计算单元320可以采用但不限于以下两种方式
方式一、根据停顿点的周期值以及停顿点间的小节数,确定每个小节的时间长度; 根据拍系判决单元300的判决结果,确定每个小节包含的节拍数;根据每个小节包含的节拍数以及每个小节的时间长度,计算每分钟的节拍数作为待分析音乐片段的BPM。
方式二、根据拍系判决单元300的判决结果确定出每个小节包含的节拍数;根据停顿点间的小节数确定停顿点间包含的节拍数;利用停顿点间包含的节拍数以及停顿点的周期值,计算每分钟的节拍数作为待分析音乐片段的BPM。
除此之外,该装置还可以包括BPM优化单元330,用于判断BPM计算单元320计算出的BPM是否超出预设的合理值范围,如果是,继续执行如果计算出的BPM低于合理值范围的最低值,则将计算出的BPM的值乘以2作为优化后的待分析音乐片段的BPM ;如果计算出的BPM高于合理值范围的最高值,则将计算出的BPM的值除以2作为优化后的待分析音乐片段的BPM。
在本发明中虽然用到了相关函数的峰值搜索技术,但在本发明中并不是用于确定相关函数的周期值从而计算BPM,而是用于完成拍系判决,即确定每小节包含的节拍数。本发明进行BPM计算的关键是利用停顿检测获取停顿点的周期值,再结合拍系判决的结果确定出音乐片段的BPM。这种方式无论是强伴奏还是弱伴奏均能够获得准确的BPM分析结果。
利用本发明实施例提供的上述方法和装置能够计算从待分析音乐中选取的各音乐片段的BPM,然后对各音乐片段的BPM进行融合后就能够确定出待分析音乐的BPM。其中从待分析音乐中选取音乐片段的策略以及对各音乐片段的BPM进行融合的策略本发明并不限制。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
权利要求
1.一种分析音乐每分钟节拍数BPM的方法,其特征在于,该方法包括.51、对待分析音乐片段的自相关函数进行峰值搜索,判决所述待分析音乐片段所属的音乐拍系;.52、对所述待分析音乐片段进行停顿点的检测;.53、根据停顿点的周期值以及所述步骤Sl的判决结果,计算每分钟的节拍数作为所述待分析音乐片段的BPM。
2.根据权利要求1所述的方法,其特征在于,所述步骤Sl具体包括.511、对所述待分析音乐片段的自相关函数进行峰值搜索,确定每一节拍包含的帧数.1 ;.512、分别计算自相关函数在xl的整数倍帧处的值,并判断是局部最大值的帧个数是否满足预设要求,χ为预设的正整数,如果判断结果为是,则确定所述待分析音乐片段属于 χ拍系。
3.根据权利要求2所述的方法,其特征在于,在步骤Sll中对所述待分析音乐片段的自相关函数进行峰值搜索之前还包括对所述待分析音乐片段的自相关函数叠加窗函数。
4.根据权利要求2所述的方法,其特征在于,所述步骤S12为分别计算所述自相关函数在31的整数倍帧处的值,并判断是局部最大值的帧个数是否满足预设要求,如果是, 则判决出所述待分析音乐片段属于三拍系,否则判决出所述待分析音乐片段判断属于两拍系。
5.根据权利要求1所述的方法,其特征在于,所述步骤S2具体包括检测所述待分析音乐片段的能量幅度曲线波谷位置,将波谷位置确定为停顿点;或者, 检测音乐片段的信号能量幅度低于预设幅度低点的位置,如果连续多帧的能量幅度低于预设幅度低点,则取所述连续多帧的中点作为停顿点,否则直接将检测到的位置作为停顿点。
6.根据权利要求1所述的方法,其特征在于,所述步骤S3具体包括根据停顿点的周期值以及停顿点间的小节数,确定每个小节的时间长度;根据所述步骤Sl的判决结果,确定每个小节包含的节拍数;根据每个小节包含的节拍数以及每个小节的时间长度,计算每分钟的节拍数作为所述待分析音乐片段的BPM ;或者,根据所述步骤Sl的判决结果确定出每个小节包含的节拍数;根据停顿点间的小节数确定停顿点间包含的节拍数;利用停顿点间包含的节拍数以及停顿点的周期值,计算每分钟的节拍数作为所述待分析音乐片段的BPM。
7.根据权利要求1所述的方法,其特征在于,在所述步骤S3之后还包括 判断计算出的BPM是否超出预设的合理值范围,如果是,继续执行步骤S4 ;54、如果计算出的BPM低于所述合理值范围的最低值,则将计算出的BPM的值乘以2作为优化后的所述待分析音乐片段的BPM ;如果计算出的BPM高于所述合理值范围的最高值, 则将计算出的BPM的值除以2作为优化后的所述待分析音乐片段的BPM。
8.一种分析音乐每分钟节拍数BPM的装置,其特征在于,该装置包括拍系判决单元,用于对待分析音乐片段的自相关函数进行峰值搜索,判决所述待分析音乐片段所属的音乐拍系;停顿检测单元,用于对所述待分析音乐片段进行停顿点的检测;BPM计算单元,用于根据停顿点的周期值以及所述拍系判决单元的判决结果,计算每分钟的节拍数作为所述待分析音乐片段的BPM。
9.根据权利要求8所述的装置,其特征在于,所述拍系判决单元具体包括峰值搜索模块,用于对所述待分析音乐片段的自相关函数进行峰值搜索,确定每一节拍包含的帧数1 ;峰值判断模块,用于分别计算自相关函数在xl的整数倍帧处的值,并判断是局部最大值的帧个数是否满足预设要求,χ为预设的正整数;拍系确定模块,用于如果所述峰值判断模块的判断结果为是,则确定所述待分析音乐片段属于χ拍系。
10.根据权利要求9所述的装置,其特征在于,所述峰值搜索模块在对所述待分析音乐片段的自相关函数进行峰值搜索之前,还用于对所述待分析音乐片段的自相关函数叠加窗函数。
11.根据权利要求9所述的装置,其特征在于,所述峰值判断模块具体计算所述自相关函数在31的整数倍帧处的值,并判断是局部最大值的帧个数是否满足预设要求;所述拍系确定单元如果所述峰值判断模块的判断结果为是,则判决出所述待分析音乐片段属于三拍系,否则判决出所述待分析音乐片段属于两拍系。
12.根据权利要求8所述的装置,其特征在于,所述停顿检测单元具体检测所述待分析音乐片段的能量幅度曲线波谷位置,将波谷位置确定为停顿点;或者,检测待分析音乐片段的信号能量幅度低于预设幅度低点的位置,如果连续多帧的能量幅度低于预设幅度低点,则取所述连续多帧的中点作为停顿点,否则直接将检测到的位置作为停顿点。
13.根据权利要求8所述的装置,其特征在于,所述BPM计算单元具体根据停顿点的周期值以及停顿点间的小节数,确定每个小节的时间长度;根据所述拍系判决单元的判决结果,确定每个小节包含的节拍数;根据每个小节包含的节拍数以及每个小节的时间长度,计算每分钟的节拍数作为所述待分析音乐片段的BPM ;或者,根据所述拍系判决单元的判决结果确定出每个小节包含的节拍数;根据停顿点间的小节数确定停顿点间包含的节拍数;利用停顿点间包含的节拍数以及停顿点的周期值,计算每分钟的节拍数作为所述待分析音乐片段的BPM。
14.根据权利要求8所述的装置,其特征在于,该装置还包括BPM优化单元,用于判断所述BPM计算单元计算出的BPM是否超出预设的合理值范围, 如果是,继续执行如果所述计算出的BPM低于所述合理值范围的最低值,则将所述计算出的BPM的值乘以2作为优化后的所述待分析音乐片段的BPM ;如果所述计算出的BPM高于所述合理值范围的最高值,则将所述计算出的BPM的值除以2作为优化后的所述待分析音乐片段的BPM。
全文摘要
本发明提供了一种分析音乐每分钟节拍数(BPM)的方法和装置,其中方法包括S1、对待分析音乐片段的自相关函数进行峰值搜索,判决所述待分析音乐片段所属的音乐拍系;S2、对所述待分析音乐片段进行停顿点的检测;S3、根据停顿点的周期值以及所述步骤S1的判决结果,计算每分钟的节拍数作为所述待分析音乐片段的BPM。使用本发明能够提高弱伴奏音乐片段的BPM分析准确性。
文档编号G10H1/00GK102543052SQ20111041536
公开日2012年7月4日 申请日期2011年12月13日 优先权日2011年12月13日
发明者宋辉 申请人:北京百度网讯科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1