CN106652981A - Bpm检测方法及装置 - Google Patents

Bpm检测方法及装置 Download PDF

Info

Publication number
CN106652981A
CN106652981A CN201611233924.1A CN201611233924A CN106652981A CN 106652981 A CN106652981 A CN 106652981A CN 201611233924 A CN201611233924 A CN 201611233924A CN 106652981 A CN106652981 A CN 106652981A
Authority
CN
China
Prior art keywords
point
peak
value
peak point
bpm
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201611233924.1A
Other languages
English (en)
Other versions
CN106652981B (zh
Inventor
劳振锋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Kugou Computer Technology Co Ltd
Original Assignee
Guangzhou Kugou Computer Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangzhou Kugou Computer Technology Co Ltd filed Critical Guangzhou Kugou Computer Technology Co Ltd
Priority to CN201611233924.1A priority Critical patent/CN106652981B/zh
Publication of CN106652981A publication Critical patent/CN106652981A/zh
Application granted granted Critical
Publication of CN106652981B publication Critical patent/CN106652981B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H1/00Details of electrophonic musical instruments
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H1/00Details of electrophonic musical instruments
    • G10H1/36Accompaniment arrangements
    • G10H1/40Rhythm

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Auxiliary Devices For Music (AREA)
  • Stereophonic System (AREA)

Abstract

本发明公开了一种BPM检测方法及装置,属于信号处理技术领域。所述方法包括:对音频信号片段进行信号处理,得到峰值点序列;从峰值点序列中确定出第一峰值点和第二峰值点;根据第一峰值点的序列位置和第二峰值点的序列位置确定节拍型;根据第一峰值点的序列位置和取值、第二峰值点的序列位置和取值以及节拍型确定出第一候选点和第二候选点;根据第一候选点、第二候选点和节拍型计算BPM。本发明解决了在音乐压缩之后,将能量幅度低于预定阈值的位置作为停顿点,根据停顿点的周期值计算BPM的准确率较低的问题,达到了提高BPM检测的准确率的效果。

Description

BPM检测方法及装置
技术领域
本发明实施例涉及信号处理技术领域,特别涉及一种BPM检测方法及装置。
背景技术
BPM(Beat Per Minute,每分钟节拍数)是音乐的特征之一,用于衡量音乐的节拍频率,BPM的数值越高表示节拍频率越高,音乐的节奏越快。
现有技术中对BPM的检测,首先对截取的音乐片段的自相关函数进行峰值搜索,确定每一节拍包含的帧数I,比如,音乐片段的自相关函数横坐标取值范围为0~1000帧,通过对自相关函数进行峰值搜索,确定出横坐标取60时自相关函数的峰值最大,即确定每一节拍包含的帧数I是60帧;然后判断音乐片段的自相关函数在节拍型X乘以帧数I的整数倍位置的帧是否为峰值,若判断结果为峰值的帧数大于阈值,则确定节拍型为X拍型,若判断结果为峰值的帧数不大于阈值,则重新选取一个X的值代入,通常流行音乐的节拍型为2拍型或3拍型,因此,X可以取2或3;之后对音乐片段进行能量幅度检测,将能量幅度低于预定阈值的位置作为停顿点,根据停顿点的时间间隔确定停顿点的周期值,将两个停顿点之间的时间间隔确定为一句歌词的时间长度,并且一句歌词包含4个小节,根据停顿点的周期值确定每个小节的时间长度;最后根据节拍型和每个小节的时间长度计算音乐片段的BPM。
但由于现在很多音乐通过压缩,整体能量幅度比较平均,将能量幅度低于预定阈值的位置作为停顿点,根据停顿点的周期值确定出的一句歌词的时间长度可能不准确,并且一句歌词不一定是4个小节,从而导致最终计算得到的BPM的准确率较低。
发明内容
为了解决现有技术中在音乐压缩之后,通过将能量幅度低于预定阈值的位置作为停顿点,根据停顿点的周期值确定每个小节的时间长度,导致计算得到的BPM的准确率较低的问题,本发明实施例提供了一种BPM检测方法及装置。所述技术方案如下:
第一方面,提供了一种BPM检测方法,所述方法包括:
对音频信号片段进行信号处理,得到峰值点序列;
从所述峰值点序列中确定出第一峰值点和第二峰值点,所述第一峰值点是所述峰值点序列中的第一序列范围内取值最大的点,所述第二峰值点是所述峰值点序列中的第二序列范围内取值最大的点,所述第一序列范围中包含的峰值点的数量比所述第二序列范围中包含的峰值点的数量少,所述第二序列范围的起始点为所述第一峰值点;
根据所述第一峰值点的序列位置和所述第二峰值点的序列位置确定节拍型;
根据所述第一峰值点的序列位置和取值、所述第二峰值点的序列位置和取值以及所述节拍型确定出第一候选点和第二候选点;
根据所述第一候选点、所述第二候选点和所述节拍型计算BPM。
可选地,所述根据所述第一峰值点的序列位置和所述第二峰值点的序列位置确定节拍型,包括:
对所述第二峰值点的序列位置除以所述第一峰值点的序列位置的结果进行四舍五入取整,得到第一数值;
判断所述第一数值是否是3的整数倍;
当所述第一数值是3的整数倍时,确定所述节拍型为3拍型;
当所述第一数值不是3的整数倍时,确定所述节拍型为2拍型。
可选地,所述第一数值是2的整数倍或是3的整数倍;
所述根据所述第一峰值点的序列位置和取值、所述第二峰值点的序列位置和取值以及所述节拍型确定出第一候选点和第二候选点,包括:
根据所述第一峰值点的序列位置和所述节拍型确定第三峰值点和第四峰值点;
根据第一策略从所述第一峰值点、所述第三峰值点和所述第四峰值点中确定出所述第一候选点和所述第二候选点。
可选地,所述根据所述第一峰值点的序列位置和所述节拍型确定第三峰值点和第四峰值点,包括:
根据所述第一峰值点的序列位置和所述节拍型确定第一序列位置;
根据所述第一序列位置和预定误差范围确定第三序列范围;
将所述第三序列范围内取值最大的点确定为所述第三峰值点;
将所述第一序列位置乘以预定系数得到第二序列位置,所述预定系数为大于1的整数;
根据所述第二序列位置和所述预定误差范围确定第四序列范围;
将所述第四序列范围内取值最大的点确定为所述第四峰值点。
可选地,所述根据第一策略从所述第一峰值点、所述第三峰值点和所述第四峰值点中确定出所述第一候选点和所述第二候选点,包括:
利用第一系数乘以所述第一峰值点的取值,得到第一峰值;
利用第二系数乘以所述第三峰值点的取值,得到第二峰值;
利用第三系数乘以所述第四峰值点的取值,得到第三峰值;
确定出所述第一峰值、所述第二峰值和所述第三峰值中的最大值;
当所述最大值为所述第一峰值时,将所述第一峰值点确定为所述第一候选点,将所述第三峰值点确定为所述第二候选点;
当所述最大值为所述第二峰值时,将所述第三峰值点确定为所述第一候选点,将所述第一峰值点确定为所述第二候选点;
当所述最大值为所述第四峰值时,将所述第四峰值点确定为所述第一候选点,将所述第三峰值点确定为所述第二候选点;
其中,所述第一系数大于所述第二系数,所述第二系数大于所述第三系数。
可选地,所述第一数值不是2的整数倍或不是3的整数倍;
所述根据所述第一峰值点的序列位置和取值、所述第二峰值点的序列位置和取值以及所述节拍型确定出第一候选点和第二候选点,包括:
根据所述第一峰值点的序列位置、所述第二峰值点的序列位置和所述节拍型确定第五峰值点和第六峰值点;
根据第二策略从所述第一峰值点、所述第二峰值点、所述第五峰值点和所述第六峰值点中确定出所述第一候选点和所述第二候选点。
可选地,所述根据所述第一峰值点的序列位置、所述第二峰值点的序列位置和所述节拍型确定第五峰值点和第六峰值点,包括:
根据所述第一峰值点的序列位置和所述节拍型确定第三序列位置;
根据所述第三序列位置和预定误差范围确定第五序列范围;
将所述第五序列范围内取值最大的点确定为所述第五峰值点;
根据第二峰值点的序列位置和所述节拍型确定第四序列位置;
根据所述第四序列位置和所述预定误差范围确定第六序列范围;
将所述第六序列范围内取值最大的点确定为所述第六峰值点。
可选地,所述根据第二策略从所述第一峰值点、所述第二峰值点、所述第五峰值点和所述第六峰值点中确定出所述第一候选点和所述第二候选点,包括:
当所述第二峰值点的序列位置与所述第一峰值点的序列位置的间隔小于预定阈值时,将所述第一峰值点确定为所述第一候选点,将所述第五峰值点确定为所述第二候选点;
当所述第二峰值点的序列位置与所述第一峰值点的序列位置的间隔不小于所述预定阈值时,利用第四系数乘以所述第一峰值点的取值,得到第四峰值,利用第五系数乘以所述第二峰值点的取值,得到第五峰值;当所述第四峰值大于所述第五峰值时,将所述第一峰值点确定为所述第一候选点,将所述第五峰值点确定为所述第二候选点;当所述第四峰值小于所述第五峰值时,将所述第二峰值点确定为所述第一候选点,将所述第六峰值点确定为所述第二候选点;
其中,所述第四系数大于所述第五系数。
可选地,所述根据所述第一候选点、所述第二候选点和所述节拍型计算BPM,包括:
将所述第一候选点的序列位置代入转换公式,计算得到第一BPM;
将所述第二候选点的序列位置代入转换公式,计算得到第二BPM;
判断所述第一BPM是否在所述预定范围内;
当所述第一BPM在所述预定范围内时,将所述第一BPM确定为所述音频信号片段的BPM。
可选地,所述判断所述第一BPM是否在所述预定范围内之后,还包括:
当所述第一BPM不在所述预定范围内时,判断所述第二BPM是否在所述预定范围内;
当所述第二BPM在所述预定范围内时,将所述第二BPM确定为所述音频信号片段的BPM。
可选地,所述判断所述第二BPM是否在所述预定范围内之后,还包括:
当所述第一BPM和所述第二BPM均不在所述预定范围内时,将所述第一BPM与所述预定范围的上限值和下限值进行比较;
当所述第一BPM小于所述预定范围的下限值时,利用所述第一BPM乘以所述节拍型,得到所述音频信号片段的BPM;
当所述第一BPM大于所述预定范围的上限值时,利用所述第一BPM除以所述节拍型,得到所述音频信号片段的BPM。
可选地,所述信号处理至少包括对所述音频信号片段的采样,所述采样的参数至少包括采样频率和步进值;
所述转换公式为:其中,m表示所述采样频率,n表示所述步进值,P表示候选点的序列位置。
第二方面,提供了一种BPM检测装置,所述装置包括:
处理模块,用于对音频信号片段进行信号处理,得到峰值点序列;
第一确定模块,用于从所述处理模块得到的所述峰值点序列中确定出第一峰值点和第二峰值点,所述第一峰值点是所述峰值点序列中的第一序列范围内取值最大的点,所述第二峰值点是所述峰值点序列中的第二序列范围内取值最大的点,所述第一序列范围中包含的峰值点的数量比所述第二序列范围中包含的峰值点的数量少,所述第二序列范围的起始点为所述第一峰值点;
第二确定模块,用于根据所述第一确定模块确定出的所述第一峰值点的序列位置和所述第二峰值点的序列位置确定节拍型;
第三确定模块,用于根据所述第一确定模块确定出的所述第一峰值点的序列位置和取值、所述第二峰值点的序列位置和取值以及所述第二确定模块确定出的所述节拍型确定出第一候选点和第二候选点;
计算模块,用于根据所述第三确定模块确定出的所述第一候选点、所述第二候选点和所述第二确定模块确定出的所述节拍型计算BPM。
可选地,所述第二确定模块,包括:
第一计算单元,用于对所述第二峰值点的序列位置除以所述第一峰值点的序列位置的结果进行四舍五入取整,得到第一数值;
第一判断单元,用于判断所述第一计算单元计算的所述第一数值是否是3的整数倍;
第一确定单元,用于当所述第一判断单元判断出所述第一计算单元计算的所述第一数值是3的整数倍时,确定所述节拍型为3拍型;
第二确定单元,用于当所述第一判断单元判断出所述第一计算单元计算的所述第一数值不是3的整数倍时,确定所述节拍型为2拍型。
可选地,所述第一数值是2的整数倍或是3的整数倍;
所述第三确定模块,包括:
第三确定单元,用于根据所述第一峰值点的序列位置和所述节拍型确定第三峰值点和第四峰值点;
第四确定单元,用于根据第一策略从所述第一峰值点、所述第三确定单元确定出的所述第三峰值点和所述第四峰值点中确定出所述第一候选点和所述第二候选点。
可选地,所述第三确定单元还用于
根据所述第一峰值点的序列位置和所述节拍型确定第一序列位置;
根据所述第一序列位置和预定误差范围确定第三序列范围;
将所述第三序列范围内取值最大的点确定为所述第三峰值点;
将所述第一序列位置乘以预定系数得到第二序列位置,所述预定系数为大于1的整数;
根据所述第二序列位置和所述预定误差范围确定第四序列范围;
将所述第四序列范围内取值最大的点确定为所述第四峰值点。
可选地,所述第四确定单元还用于
利用第一系数乘以所述第一峰值点的取值,得到第一峰值;
利用第二系数乘以所述第三峰值点的取值,得到第二峰值;
利用第三系数乘以所述第四峰值点的取值,得到第三峰值;
确定出所述第一峰值、所述第二峰值和所述第三峰值中的最大值;
当所述最大值为所述第一峰值时,将所述第一峰值点确定为所述第一候选点,将所述第三峰值点确定为所述第二候选点;
当所述最大值为所述第二峰值时,将所述第三峰值点确定为所述第一候选点,将所述第一峰值点确定为所述第二候选点;
当所述最大值为所述第四峰值时,将所述第四峰值点确定为所述第一候选点,将所述第三峰值点确定为所述第二候选点;
其中,所述第一系数大于所述第二系数,所述第二系数大于所述第三系数。
可选地,所述第一数值不是2的整数倍或不是3的整数倍;
所述第三确定模块,包括:
第五确定单元,用于根据所述第一峰值点的序列位置、所述第二峰值点的序列位置和所述节拍型确定第五峰值点和第六峰值点;
第六确定单元,用于根据第二策略从所述第一峰值点、所述第二峰值点、所述第五峰值点和所述第六峰值点中确定出所述第一候选点和所述第二候选点。
可选地,所述第五确定单元还用于
根据所述第一峰值点的序列位置和所述节拍型确定第三序列位置;
根据所述第三序列位置和预定误差范围确定第五序列范围;
将所述第五序列范围内取值最大的点确定为所述第五峰值点;
根据第二峰值点的序列位置和所述节拍型确定第四序列位置;
根据所述第四序列位置和所述预定误差范围确定第六序列范围;
将所述第六序列范围内取值最大的点确定为所述第六峰值点。
可选地,所述第六确定单元还用于
当所述第二峰值点的序列位置与所述第一峰值点的序列位置的间隔小于预定阈值时,将所述第一峰值点确定为所述第一候选点,将所述第五峰值点确定为所述第二候选点;
当所述第二峰值点的序列位置与所述第一峰值点的序列位置的间隔不小于所述预定阈值时,利用第四系数乘以所述第一峰值点的取值,得到第四峰值,利用第五系数乘以所述第二峰值点的取值,得到第五峰值;当所述第四峰值大于所述第五峰值时,将所述第一峰值点确定为所述第一候选点,将所述第五峰值点确定为所述第二候选点;当所述第四峰值小于所述第五峰值时,将所述第二峰值点确定为所述第一候选点,将所述第六峰值点确定为所述第二候选点;
其中,所述第四系数大于所述第五系数。
可选地,所述计算模块,包括:
第二计算单元,用于将所述第一候选点的序列位置代入转换公式,计算得到第一BPM;
第三计算单元,用于将所述第二候选点的序列位置代入转换公式,计算得到第二BPM;
第二判断单元,用于判断所述第二计算单元计算得到的所述第一BPM是否在所述预定范围内;
第七确定单元,用于当所述第二判断单元判断出所述第一BPM在所述预定范围内时,将所述第二计算单元计算得到的所述第一BPM确定为所述音频信号片段的BPM。
可选地,所述计算模块,还包括:
第三判断单元,用于当所述第二判断单元判断出所述第一BPM不在所述预定范围内时,判断所述第三计算单元计算得到的所述第二BPM是否在所述预定范围内;
第八确定单元,用于当所述第三判断单元判断出所述第二BPM在所述预定范围内时,将所述第三计算单元计算得到的所述第二BPM确定为所述音频信号片段的BPM。
可选地,所述计算模块,还包括:
比较单元,用于当所述第一BPM和所述第二BPM均不在所述预定范围内时,将所述第二计算单元计算得到的所述第一BPM与所述预定范围的上限值和下限值进行比较;
第四计算单元,用于当所述第一BPM小于所述预定范围的下限值时,利用所述第二计算单元计算得到的所述第一BPM乘以所述节拍型,得到所述音频信号片段的BPM;
第五计算单元,用于当所述第一BPM大于所述预定范围的上限值时,利用所述第二计算单元计算得到的所述第一BPM除以所述节拍型,得到所述音频信号片段的BPM。
可选地,所述信号处理至少包括对所述音频信号片段的采样,所述采样的参数至少包括采样频率和步进值;
所述转换公式为:其中,m表示所述采样频率,n表示所述步进值,P表示候选点的序列位置。
本发明实施例提供的技术方案带来的有益效果是:
通过从信号处理后得到的峰值点序列中确定出第一峰值点和第二峰值点,根据第一峰值点和第二峰值点确定出节拍型,然后根据第一峰值点、第二峰值点和节拍型确定出第一候选点和第二候选点,根据第一候选点、第二候选点和节拍型计算BPM,由于第一候选点和第二候选点是根据第一峰值点、第二峰值点和节拍型确定出来的,第一峰值点是第一序列范围内取值最大的点,第二峰值点是第二序列范围内取值最大的点,即使是对整体能量幅度比较平均的音乐进行检测,对于第一峰值点和第二峰值点的选取也比较准确,也就避免了将能量幅度低于预定阈值的位置作为停顿点时产生的误差,导致根据停顿点的周期计算得到的BPM准确率较低的问题,从而提高了BPM检测的准确率。
另外,通过对第二峰值点的序列位置除以第一峰值点的序列位置的结果进行取整,并判断取整后的数值是否是3的倍数,从而快速确定出节拍型是2拍型还是3拍型。
另外,在已经确定出节拍型是2拍型还是3拍型后,根据第一策略确定出用于计算BPM的第一候选点和第二候选点。由于选取的第一候选点和第二候选点是按照第一策略进行过选择,使得根据第一候选点和第二候选点计算得到的BPM的准确率更高。
另外,在确定出节拍型是2拍型但第一数值不是2的整数倍时,表明第一峰值点选取的可能不准确,根据第二策略确定用于计算BPM的第一候选点和第二候选点。由于在第一峰值点选取的可能不准确的情况下,按照第二策略选取合适的第一候选点和第二候选点,使得根据第一候选点和第二候选点计算得到的BPM的准确率更高。
另外,在根据第一候选点计算得到第一BPM,根据第二候选点计算得到第二BPM后,在第一BPM和第二BPM中进行选择,确定出合适的BPM,在计算得到的第一BPM和第二BPM不在预定范围内时,通过将第一BPM乘以节拍型或除以节拍型,使得最终得到的BPM能够在预定范围内。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例提供的BPM检测方法的方法流程图;
图2A是本发明另一个实施例提供的BPM检测方法的方法流程图;
图2B是本发明再一个实施例提供的BPM检测方法的方法流程图;
图3是本发明一个实施例提供的BPM检测装置的结构方框图;
图4是本发明另一个实施例提供的BPM检测装置的结构方框图;
图5是本发明部分实施例中提供的终端的结构方框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
在本发明实施例中,终端可以是手机、平板电脑、电子书阅读器、膝上型便携计算机和台式计算机等。
可选地,终端中运行有音乐播放器或视频播放器,该音乐播放器或视频播放器通常是指软件形式的播放器。也即,终端具备播放音频信号的能力。
图1是本发明一个实施例提供的BPM检测方法的方法流程图,该方法应用在具备播放音频信号能力的终端中。如图1所示,该BPM检测方法可以包括:
步骤101,对音频信号片段进行信号处理,得到峰值点序列。
可选地,信号处理至少包括对音频信号片段的采样、时频转换、降低维度、自相关处理。其中,采样的参数至少包括采样频率、步进值和采样点的数量。
步骤102,从峰值点序列中确定出第一峰值点和第二峰值点。
第一峰值点是峰值点序列中的第一序列范围内取值最大的点,第二峰值点是峰值点序列中的第二序列范围内取值最大的点,第一序列范围中包含的峰值点的数量比第二序列范围中包含的峰值点的数量少,第二序列范围的起始点为第一峰值点。
第一序列范围包含的峰值点的数量较少,比如,第一序列范围可以是峰值点序列中从第10个点开始的100个点的范围内,即第一序列范围对应的序列位置范围是第10个点到第109个点。
第二序列范围的起始点为第一峰值点,假设第一峰值点的序列位置为50,峰值点序列总共包含1000个点,则第二序列范围可以是第50个点到第1000个点。
步骤103,根据第一峰值点的序列位置和第二峰值点的序列位置确定节拍型。
在流行音乐中,节拍型通常只包括2拍型和3拍型。
步骤104,根据第一峰值点的序列位置和取值、第二峰值点的序列位置和取值以及节拍型确定出第一候选点和第二候选点。
第一候选点和第二候选点是用于计算BPM的峰值点。
步骤105,根据第一候选点、第二候选点和节拍型计算BPM。
在计算BPM时,第一候选点的优先级高于第二候选点的优先级。
综上所述,本发明实施例提供的BPM检测方法,通过从信号处理后得到的峰值点序列中确定出第一峰值点和第二峰值点,根据第一峰值点和第二峰值点确定出节拍型,然后根据第一峰值点、第二峰值点和节拍型确定出第一候选点和第二候选点,根据第一候选点、第二候选点和节拍型计算BPM,由于第一候选点和第二候选点是根据第一峰值点、第二峰值点和节拍型确定出来的,第一峰值点是第一序列范围内取值最大的点,第二峰值点是第二序列范围内取值最大的点,即使是对整体能量幅度比较平均的音乐进行检测,对于第一峰值点和第二峰值点的选取也比较准确,也就避免了将能量幅度低于预定阈值的位置作为停顿点时产生的误差,导致根据停顿点的周期计算得到的BPM准确率较低的问题,从而提高了BPM检测的准确率。
图2A是本发明另一个实施例提供的BPM检测方法的方法流程图,该方法应用在具备播放音频信号能力的终端中。如图2A所示,该BPM检测方法可以包括:
步骤201,对音频信号片段进行信号处理,得到峰值点序列。
可选地,信号处理包括对音频信号片段的采样。音频信号片段经过采样得到数字音频信号矩阵。其中,采样参数至少包括采样频率、步进值和采样点的数量。采样参数的选取可以根据经验值,比如,采样频率为8kHz,步进值为32,采样点的数量为256。对应的采样过程为:在采样频率为8kHz时,以32为步进值取256个采样点,第1帧包括第1点~第256点,第2帧包括第33点~第288点,第3帧包括第65点~第320点,以此类推。假设采样一共采集了10000帧,音频信号片段经过采样得到一个256*10000的矩阵,该矩阵为采样得到的数字音频信号矩阵。
可选地,信号处理还包括时频转换,时频转换可以通过短时傅里叶变换实现。数字音频信号矩阵通过短时傅里叶变换后取非负半频的频域信号,得到129*10000的矩阵,该矩阵为时频转换得到的频域信号矩阵。
可选地,在时频转换之后,信号处理还包括降低维度处理。降低维度的具体实现方式为将频域信号与梅尔矩阵相乘,梅尔矩阵是用于降低维度的矩阵,梅尔矩阵中的元素是根据经验值选取的。举例说明,将40*129的梅尔矩阵与时频转换得到的129*10000的频域信号矩阵相乘,即可得到40*10000的频域信号矩阵,从而实现了降低维度的目的。频域信号矩阵的维度降低后,通过对降低维度的频域信号矩阵差分求平均后得到音频信号片段的突变点序列。差分是指用降低维度的频域信号矩阵中的后一列的元素减去前一列的元素,求平均是对差分后的频域信号矩阵中每一列的元素求取平均值。比如,降低维度的频域信号矩阵包括40*10000的元素,通过差分,频域信号矩阵包括40*9999的元素,再通过求平均,频域信号矩阵包括1*9999的元素。这一行按序排列的元素即为突变点序列。
可选地,信号处理还包括自相关处理,自相关处理可以通过自相关函数运算实现。突变点序列经过自相关函数运算后,从一半位置取预定数量的点得到峰值点序列。由于突变点序列经过自相关函数运算,得到的序列前一半与后一半相同,因此从一半位置选取峰值点序列。
对于峰值点序列中的各个峰值点,可以看作分别与各个节奏点对应。
步骤202,从峰值点序列中确定出第一峰值点和第二峰值点。
第一峰值点是峰值点序列中的第一序列范围内取值最大的点,第二峰值点是峰值点序列中的第二序列范围内取值最大的点,第一序列范围中包含的峰值点的数量比第二序列范围中包含的峰值点的数量少,第二序列范围的起始点为第一峰值点。
在实际应用中,由于自相关函数运算得到的序列中间位置的取值最大,峰值点序列是从突变点序列经过自相关函数运算得到的序列的中间位置向后选取预定数量的点得到的,为了避免中间位置取值较大的点对峰值点的确定产生影响,因此第一序列范围通常不从第1个点开始,而是避开峰值点序列起始的几个点,将后面的点作为起始点,比如第10个点。
第一序列范围包含的峰值点的数量较少,比如,第一序列范围可以是峰值点序列中从第10个点开始的100个点的范围内,即第一序列范围对应的序列位置范围是第10个点到第109个点。
第二序列范围的起始点为第一峰值点,假设第一峰值点的序列位置为50,峰值点序列总共包含1000个点,则第二序列范围可以是第50个点到第1000个点。
可选的,由于音乐的节拍通常按一定的规律循环,在实际应用中,2拍型和3拍型的音乐通过8个节奏点通常就能够表达出规律,因此,第二序列范围在选取的时候,可以选取从第一峰值点到8乘以第一峰值点的序列位置加上预定误差的序列范围。
第一序列范围内取值最大的点作为选取的一个节奏点,也即,选取的是第一序列范围内节拍能量最强的一个点;第二序列范围内取值最大的点作为选取的另一个节奏点,也即,选取的是第二序列范围内节拍能量最强的一个点,则第二峰值点很有可能对应节拍能量最强的节奏点。
步骤203,根据第一峰值点的序列位置和第二峰值点的序列位置确定节拍型。
在流行音乐中,节拍型通常只包括2拍型和3拍型。
可选地,步骤203可以具体实现成如图2B所示的步骤:
步骤203a,对第二峰值点的序列位置除以第一峰值点的序列位置的结果进行四舍五入取整,得到第一数值。
举例说明,假设第一峰值点的序列位置为60,第二峰值点的序列位置为180,则第一数值为3。
步骤203b,判断第一数值是否是3的整数倍。
由于流行音乐的节拍型只包括2拍型和3拍型,因此通过判断第一数值是否是3的倍数,可以快速确定出节拍型是2拍型还是3拍型。
步骤203c,当第一数值是3的整数倍时,确定节拍型为3拍型。
步骤203d,当第一数值不是3的整数倍时,确定节拍型为2拍型。
对于步骤203a至步骤203d中节拍型的确定,可以简化为如下公式:
其中,bm表示节拍型的取值,round(x)表示对x进行四舍五入取整,mod(a,b)表示取a除以b的余数,p1表示第一峰值点的序列位置,P2表示第二峰值点的序列位置。
步骤204,根据第一峰值点的序列位置和取值、第二峰值点的序列位置和取值以及节拍型确定出第一候选点和第二候选点。
第一候选点和第二候选点是用于计算BPM的峰值点。
可选地,当第一数值是2的整数倍或是3的整数倍时,即节拍型确定出为2拍型或3拍型时,步骤204可以替换成如图2B所示的步骤:
步骤204a,根据第一峰值点的序列位置和节拍型确定第三峰值点和第四峰值点。
第三峰值点和第四峰值点是与第一峰值点相关的峰值点。
可选地,第三峰值点的确定可以包括以下步骤:
S1,根据第一峰值点的序列位置和节拍型确定第一序列位置。
比如,第一峰值点的序列位置为p1,节拍型为bm,则第一序列位置为bm*P1
S2,根据第一序列位置和预定误差范围确定第三序列范围。
预定误差范围是根据经验值选取的范围,比如预定误差范围是±20,则第三序列范围是bm*P1±20。
S3,将第三序列范围内取值最大的点确定为第三峰值点。
第三峰值点为选取的又一个节奏点。
可选地,第四峰值点的确定可以包括以下步骤:
S4,将第一序列位置乘以预定系数得到第二序列位置,预定系数为大于1的整数。
通过将第一序列位置乘以预定系数可以得到与第一序列位置相关的第二序列位置,由于第一序列位置是根据第一峰值点的序列位置和节拍型确定的,因此,第二序列位置与第一峰值点的序列位置和节拍型相关。
假设预定系数为2,第一序列位置是bm*P1,则第二序列位置为2*bm*P1
S5,根据第二序列位置和预定误差范围确定第四序列范围。
预定误差范围是根据经验值选取的范围,用于确定出第四序列范围的预定误差范围可以与用于确定出第三序列范围的预定误差范围相同,也可以不同。
S6,将第四序列范围内取值最大的点确定为第四峰值点。
第四峰值点为选取的再一个节奏点。
步骤204b,根据第一策略从第一峰值点、第三峰值点和第四峰值点中确定出第一候选点和第二候选点。
在选取第一候选点和第二候选点时,第一峰值点的优先级高于第三峰值点的优先级,第三峰值点的优先级高于第四峰值点的优先级。
可选地,第一策略的具体实现方式包括:
s1,利用第一系数乘以第一峰值点的取值,得到第一峰值。
s2,利用第二系数乘以第三峰值点的取值,得到第二峰值。
s3,利用第三系数乘以第四峰值点的取值,得到第三峰值。
其中,第一系数大于第二系数,第二系数大于第三系数。
比如,第一系数为1,第二系数为0.8,第三系数为0.6,第一峰值点的取值为E1,第三峰值点的取值为E3,第四峰值点的取值为E4,则第一峰值为1*E1,第二峰值为0.8*E3,第三峰值为0.6*E4
选取第一候选点和第二候选点的策略是将与计算得到的第一峰值、第二峰值、第三峰值中较大的一个对应的峰值点作为第一候选点,将第一峰值点、第三峰值点、第四峰值点中最靠近第一候选点序列位置的峰值点作为第二候选点。具体请参见s4至s7:
s4,确定出第一峰值、第二峰值和第三峰值中的最大值。
s5,当最大值为第一峰值时,将第一峰值点确定为第一候选点,将第三峰值点确定为第二候选点。
s6,当最大值为第二峰值时,将第三峰值点确定为第一候选点,将第一峰值点确定为第二候选点。
由于第一峰值点的优先级高于第四峰值点,因此在第三峰值点为第一候选点时,第一峰值点为第二候选点。
s7,当最大值为第四峰值时,将第四峰值点确定为第一候选点,将第三峰值点确定为第二候选点。
可选地,当第一数值不是2的整数倍或不是3的整数倍时,确定出节拍型为2拍型,步骤204可以替换成如图2B所示的步骤:
步骤204c,根据第一峰值点的序列位置、第二峰值点的序列位置和节拍型确定第五峰值点和第六峰值点。
第五峰值点是与第一峰值点相关的峰值点,第六峰值点是与第二峰值点相关的峰值点。
由于第一数值不是3的整数倍,表明节拍型为2拍型。由于第一数值不是2的整数倍,表明第一峰值点和第二峰值点中的一个点可能选取的不准确,对于不准确的峰值点的识别需要通过进一步的比较过程来确定。具体的比较过程请参见步骤s8至步骤s9。
根据第一峰值点可以确定出与第一峰值点相关的第五峰值点。可选地,第五峰值点的确定可以包括以下步骤:
S7,根据第一峰值点的序列位置和节拍型确定第三序列位置。
比如,第一峰值点的序列位置为P1,由于节拍型为2拍型,则第三序列位置为2*P1
S8,根据第三序列位置和预定误差范围确定第五序列范围。
预定误差范围是根据经验值选取的范围,比如预定误差范围是±20,则第五序列范围是2*P1±20。
S9,将第五序列范围内取值最大的点确定为第五峰值点。
第五峰值点为选取的又一个节奏点。
根据第二峰值点可以确定出与第二峰值点相关的第六峰值点。可选地,第六峰值点的确定可以包括以下步骤:
S10,根据第二峰值点的序列位置和节拍型确定第四序列位置。
由于第一峰值点的选取可能不合适,从第二峰值点位置向前倒推出可能的节奏点。
比如,第二峰值点的序列位置为P2,由于节拍型为2拍型,则第四序列位置是对的四舍五入取整,即
S11,根据第四序列位置和预定误差范围确定第六序列范围。
预定误差范围是根据经验值选取的范围,用于确定出第六序列范围的预定误差范围可以与用于确定出第五序列范围的预定误差范围相同,也可以不同。
S12,将第六序列范围内取值最大的点确定为第六峰值点。
第六峰值点为选取的再一个节奏点。
步骤204d,根据第二策略从第一峰值点、第二峰值点、第五峰值点和第六峰值点中确定出第一候选点和第二候选点。
可选地,第二策略的具体实现方式包括:
s8,当第二峰值点的序列位置与第一峰值点的序列位置的间隔小于预定阈值时,将第一峰值点确定为第一候选点,将第五峰值点确定为第二候选点。
可选地,在判断第二峰值点的序列位置与第一峰值点的序列位置的间隔是否小于预定阈值时,可以转换为判断第二峰值点的序列位置是否小于预定阈值。
s9,当第二峰值点的序列位置与第一峰值点的序列位置的间隔不小于预定阈值时,利用第四系数乘以第一峰值点的取值,得到第四峰值,利用第五系数乘以第二峰值点的取值,得到第五峰值;当第四峰值大于第五峰值时,将第一峰值点确定为第一候选点,将第五峰值点确定为第二候选点;当第四峰值小于第五峰值时,将第二峰值点确定为第一候选点,将第六峰值点确定为第二候选点。
其中,第四系数大于第五系数。
比如,第四系数为1,第五系数为0.6,第一峰值点的取值为E1,第二峰值点的取值为E2,则第四峰值为1*E1,第五峰值点为0.6*E2
当第二峰值点的序列位置与第一峰值点的序列位置的间隔不小于预定阈值时,表明第一峰值点与第二峰值点相隔较远。
将第四峰值与第五峰值进行大小比较,与第四峰值和第五峰值中较大的一个对应的峰值点被确定为准确选取的峰值点,则该峰值点作为第一候选点,若第一候选点为第一峰值点,则根据第一峰值点确定出的第五峰值点作为第二候选点,若第一候选点为第二峰值点,则根据第二峰值点确定出的第六峰值点作为第二候选点。
步骤205,根据第一候选点、第二候选点和节拍型计算BPM。
在计算BPM时,第一候选点的优先级高于第二候选点的优先级。
可选地,步骤205可以替换成如图2B所示的步骤:
步骤205a,将第一候选点的序列位置代入转换公式,计算得到第一BPM。
步骤205b,将第二候选点的序列位置代入转换公式,计算得到第二BPM。
可选地,转换公式为:其中,m表示采样频率,n表示步进值,P表示候选点的序列位置。
步骤205c,判断第一BPM是否在预定范围内。
预定范围中流行音乐的BPM的合理范围,如[30,250]。
步骤205d,当第一BPM在预定范围内时,将第一BPM确定为音频信号片段的BPM。
若计算出的第一BPM在流行音乐的BPM的合理范围内,则直接将第一BPM作为音频信号片段的BPM。
步骤205e,当第一BPM不在预定范围内时,判断第二BPM是否在预定范围内。
步骤205f,当第二BPM在预定范围内时,将第二BPM确定为音频信号片段的BPM。
若第一BPM不在流行音乐的BPM的合理范围内,而第二BPM在流行音乐的BPM的合理范围内,则直接将第二BPM作为音频信号片段的BPM。
步骤205g,当第一BPM和第二BPM均不在预定范围内时,将第一BPM与预定范围的上限值和下限值进行比较。
若第一BPM和第二BPM均不在流行音乐的BPM的合理范围内,则需要判断BPM是过大还是过小。
步骤205h,当第一BPM小于预定范围的下限值时,利用第一BPM乘以节拍型,得到音频信号片段的BPM。
当第一BPM小于预定范围的下限值时,表明第一BPM过小,需要对第一BPM进行调整优化,利用第一BPM乘以节拍型。
在一种可能的实现方式中,若第一BPM在乘以节拍型后得到的BPM仍小于预定范围的下限值,则利用得到的BPM继续乘以节拍型,直至再次计算的BPM在预定范围内。
步骤205i,当第一BPM大于预定范围的上限值时,利用第一BPM除以节拍型,得到音频信号片段的BPM。
当第一BPM大于预定范围的上限值时,表明第一BPM过大,需要对第一BPM进行调整优化,利用第一BPM除以节拍型。
在一种可能的实现方式中,若第一BPM在除以节拍型后得到的BPM仍大于预定范围的上限值,则利用得到的BPM继续除以节拍型,直至再次计算的BPM在预定范围内。
由于第一候选点的优先级高于第二候选点的优先级,通常在第一BPM和第二BPM均不在预定范围内时,只对第一BPM进行调整优化,在实际应用中,也可以对第二BPM进行调整优化。
综上所述,本发明实施例提供的BPM检测方法,通过从信号处理后得到的峰值点序列中确定出第一峰值点和第二峰值点,根据第一峰值点和第二峰值点确定出节拍型,然后根据第一峰值点、第二峰值点和节拍型确定出第一候选点和第二候选点,根据第一候选点、第二候选点和节拍型计算BPM,由于第一候选点和第二候选点是根据第一峰值点、第二峰值点和节拍型确定出来的,第一峰值点是第一序列范围内取值最大的点,第二峰值点是第二序列范围内取值最大的点,即使是对整体能量幅度比较平均的音乐进行检测,对于第一峰值点和第二峰值点的选取也比较准确,也就避免了将能量幅度低于预定阈值的位置作为停顿点时产生的误差,导致根据停顿点的周期计算得到的BPM准确率较低的问题,从而提高了BPM检测的准确率。
另外,通过对第二峰值点的序列位置除以第一峰值点的序列位置的结果进行取整,并判断取整后的数值是否是3的倍数,从而快速确定出节拍型是2拍型还是3拍型。
另外,在已经确定出节拍型是2拍型还是3拍型后,根据第一策略确定出用于计算BPM的第一候选点和第二候选点。由于选取的第一候选点和第二候选点是按照第一策略进行过选择,使得根据第一候选点和第二候选点计算得到的BPM的准确率更高。
另外,在确定出节拍型是2拍型但第一数值不是2的整数倍时,表明第一峰值点选取的可能不准确,根据第二策略确定用于计算BPM的第一候选点和第二候选点。由于在第一峰值点选取的可能不准确的情况下,按照第二策略选取合适的第一候选点和第二候选点,使得根据第一候选点和第二候选点计算得到的BPM的准确率更高。
另外,在根据第一候选点计算得到第一BPM,根据第二候选点计算得到第二BPM后,在第一BPM和第二BPM中进行选择,确定出合适的BPM,在计算得到的第一BPM和第二BPM不在预定范围内时,通过将第一BPM乘以节拍型或除以节拍型,使得最终得到的BPM能够在预定范围内。
以下为本发明实施例的装置实施例,对于装置实施例中未详细描述的细节,可以参考上述一一对应的方法实施例。
图3是本发明一个实施例提供的BPM检测装置的结构方框图。该BPM检测装置能够通过软件、硬件或者两者的结合实现成为终端的全部或一部分。该BPM检测装置包括:处理模块310、第一确定模块320、第二确定模块330、第三确定模块340和计算模块350。
处理模块310,用于对音频信号片段进行信号处理,得到峰值点序列。
第一确定模块320,用于从处理模块310得到的峰值点序列中确定出第一峰值点和第二峰值点,第一峰值点是峰值点序列中的第一序列范围内取值最大的点,第二峰值点是峰值点序列中的第二序列范围内取值最大的点,第一序列范围中包含的峰值点的数量比第二序列范围中包含的峰值点的数量少,第二序列范围的起始点为第一峰值点。
第二确定模块330,用于根据第一确定模块320确定出的第一峰值点的序列位置和第二峰值点的序列位置确定节拍型。
第三确定模块340,用于根据第一确定模块320确定出的第一峰值点的序列位置和取值、第二峰值点的序列位置和取值以及第二确定模块330确定出的节拍型确定出第一候选点和第二候选点。
计算模块350,用于根据第三确定模块340确定出的第一候选点、第二候选点和第二确定模块330确定出的节拍型计算BPM。
综上所述,本发明实施例提供的BPM检测装置,通过从信号处理后得到的峰值点序列中确定出第一峰值点和第二峰值点,根据第一峰值点和第二峰值点确定出节拍型,然后根据第一峰值点、第二峰值点和节拍型确定出第一候选点和第二候选点,根据第一候选点、第二候选点和节拍型计算BPM,由于第一候选点和第二候选点是根据第一峰值点、第二峰值点和节拍型确定出来的,第一峰值点是第一序列范围内取值最大的点,第二峰值点是第二序列范围内取值最大的点,即使是对整体能量幅度比较平均的音乐进行检测,对于第一峰值点和第二峰值点的选取也比较准确,也就避免了将能量幅度低于预定阈值的位置作为停顿点时产生的误差,导致根据停顿点的周期计算得到的BPM准确率较低的问题,从而提高了BPM检测的准确率。
图4是本发明另一个实施例提供的BPM检测装置的结构方框图。该BPM检测装置能够通过软件、硬件或者两者的结合实现成为终端的全部或一部分。该BPM检测装置包括:处理模块310、第一确定模块320、第二确定模块330、第三确定模块340和计算模块350。
处理模块310,用于对音频信号片段进行信号处理,得到峰值点序列。
第一确定模块320,用于从处理模块310得到的峰值点序列中确定出第一峰值点和第二峰值点,第一峰值点是峰值点序列中的第一序列范围内取值最大的点,第二峰值点是峰值点序列中的第二序列范围内取值最大的点,第一序列范围中包含的峰值点的数量比第二序列范围中包含的峰值点的数量少,第二序列范围的起始点为第一峰值点。
第二确定模块330,用于根据第一确定模块320确定出的第一峰值点的序列位置和第二峰值点的序列位置确定节拍型。
第三确定模块340,用于根据第一确定模块320确定出的第一峰值点的序列位置和取值、第二峰值点的序列位置和取值以及第二确定模块330确定出的节拍型确定出第一候选点和第二候选点。
计算模块350,用于根据第三确定模块340确定出的第一候选点、第二候选点和第二确定模块330确定出的节拍型计算BPM。
可选地,第二确定模块330,包括:第一计算单元331、第一判断单元332、第一确定单元333和第二确定单元334。
第一计算单元331,用于对第二峰值点的序列位置除以第一峰值点的序列位置的结果进行四舍五入取整,得到第一数值。
第一判断单元332,用于判断第一计算单元331计算的第一数值是否是3的整数倍。
第一确定单元333,用于当第一判断单元332判断出第一计算单元331计算的第一数值是3的整数倍时,确定节拍型为3拍型。
第二确定单元334,用于当第一判断单元332判断出第一计算单元331计算的第一数值不是3的整数倍时,确定节拍型为2拍型。
可选地,第三确定模块340,包括:第三确定单元341和第四确定单元342。
第三确定单元341,用于根据第一峰值点的序列位置和节拍型确定第三峰值点和第四峰值点。
第四确定单元342,用于根据第一策略从第一峰值点、第三确定单元341确定出的第三峰值点和第四峰值点中确定出第一候选点和第二候选点。
可选地,第三确定单元341还用于根据第一峰值点的序列位置和节拍型确定第一序列位置;根据第一序列位置和预定误差范围确定第三序列范围;将第三序列范围内取值最大的点确定为第三峰值点;将第一序列位置乘以预定系数得到第二序列位置,预定系数为大于1的整数;根据第二序列位置和预定误差范围确定第四序列范围;将第四序列范围内取值最大的点确定为第四峰值点。
可选地,第四确定单元342还用于利用第一系数乘以第一峰值点的取值,得到第一峰值;利用第二系数乘以第三峰值点的取值,得到第二峰值;利用第三系数乘以第四峰值点的取值,得到第三峰值;确定出第一峰值、第二峰值和第三峰值中的最大值;当最大值为第一峰值时,将第一峰值点确定为第一候选点,将第三峰值点确定为第二候选点;当最大值为第二峰值时,将第三峰值点确定为第一候选点,将第一峰值点确定为第二候选点;当最大值为第四峰值时,将第四峰值点确定为第一候选点,将第三峰值点确定为第二候选点;其中,第一系数大于第二系数,第二系数大于第三系数。
可选地,第三确定模块340,还包括:第五确定单元343和第六确定单元344。
第五确定单元343,用于根据第一峰值点的序列位置、第二峰值点的序列位置和节拍型确定第五峰值点和第六峰值点。
第六确定单元344,用于根据第二策略从第一峰值点、第二峰值点、第五峰值点和第六峰值点中确定出第一候选点和第二候选点。
可选地,第五确定单元343还用于根据第一峰值点的序列位置和节拍型确定第三序列位置;根据第三序列位置和预定误差范围确定第五序列范围;将第五序列范围内取值最大的点确定为第五峰值点;根据第二峰值点的序列位置和节拍型确定第四序列位置;根据第四序列位置和预定误差范围确定第六序列范围;将第六序列范围内取值最大的点确定为第六峰值点。
可选地,第六确定单元344还用于当第二峰值点的序列位置与第一峰值点的序列位置的间隔小于预定阈值时,将第一峰值点确定为第一候选点,将第五峰值点确定为第二候选点;当第二峰值点的序列位置与第一峰值点的序列位置的间隔不小于预定阈值时,利用第四系数乘以第一峰值点的取值,得到第四峰值,利用第五系数乘以第二峰值点的取值,得到第五峰值;当第四峰值大于第五峰值时,将第一峰值点确定为第一候选点,将第五峰值点确定为第二候选点;当第四峰值小于第五峰值时,将第二峰值点确定为第一候选点,将第六峰值点确定为第二候选点;其中,第四系数大于第五系数。
计算模块350,包括:第二计算单元351、第三计算单元352、第二判断单元353、第七确定单元354、第三判断单元355、第八确定单元356、比较单元357、第四计算单元358和第五计算单元359。
第二计算单元351,用于将第一候选点的序列位置代入转换公式,计算得到第一BPM。
第三计算单元352,用于将第二候选点的序列位置代入转换公式,计算得到第二BPM。
第二判断单元353,用于判断第二计算单元351计算得到的第一BPM是否在预定范围内。
第七确定单元354,用于当第二判断单元353判断出第一BPM在预定范围内时,将第二计算单元351计算得到的第一BPM确定为音频信号片段的BPM。
第三判断单元355,用于当第二判断单元353判断出第一BPM不在预定范围内时,判断第三计算单元352计算得到的第二BPM是否在预定范围内。
第八确定单元356,用于当第三判断单元355判断出第二BPM在预定范围内时,将第三计算单元352计算得到的第二BPM确定为音频信号片段的BPM。
比较单元357,用于当第一BPM和第二BPM均不在预定范围内时,将第二计算单元351计算得到的第一BPM与预定范围的上限值和下限值进行比较。
第四计算单元358,用于当第一BPM小于预定范围的下限值时,利用第二计算单元351计算得到的第一BPM乘以节拍型,得到音频信号片段的BPM。
第五计算单元359,用于当第一BPM大于预定范围的上限值时,利用第二计算单元351计算得到的第一BPM除以节拍型,得到音频信号片段的BPM。
综上所述,本发明实施例提供的BPM检测装置,通过从信号处理后得到的峰值点序列中确定出第一峰值点和第二峰值点,根据第一峰值点和第二峰值点确定出节拍型,然后根据第一峰值点、第二峰值点和节拍型确定出第一候选点和第二候选点,根据第一候选点、第二候选点和节拍型计算BPM,由于第一候选点和第二候选点是根据第一峰值点、第二峰值点和节拍型确定出来的,第一峰值点是第一序列范围内取值最大的点,第二峰值点是第二序列范围内取值最大的点,即使是对整体能量幅度比较平均的音乐进行检测,对于第一峰值点和第二峰值点的选取也比较准确,也就避免了将能量幅度低于预定阈值的位置作为停顿点时产生的误差,导致根据停顿点的周期计算得到的BPM准确率较低的问题,从而提高了BPM检测的准确率。
另外,通过对第二峰值点的序列位置除以第一峰值点的序列位置的结果进行取整,并判断取整后的数值是否是3的倍数,从而快速确定出节拍型是2拍型还是3拍型。
另外,在已经确定出节拍型是2拍型还是3拍型后,根据第一策略确定出用于计算BPM的第一候选点和第二候选点。由于选取的第一候选点和第二候选点是按照第一策略进行过选择,使得根据第一候选点和第二候选点计算得到的BPM的准确率更高。
另外,在确定出节拍型是2拍型但第一数值不是2的整数倍时,表明第一峰值点选取的可能不准确,根据第二策略确定用于计算BPM的第一候选点和第二候选点。由于在第一峰值点选取的可能不准确的情况下,按照第二策略选取合适的第一候选点和第二候选点,使得根据第一候选点和第二候选点计算得到的BPM的准确率更高。
另外,在根据第一候选点计算得到第一BPM,根据第二候选点计算得到第二BPM后,在第一BPM和第二BPM中进行选择,确定出合适的BPM,在计算得到的第一BPM和第二BPM不在预定范围内时,通过将第一BPM乘以节拍型或除以节拍型,使得最终得到的BPM能够在预定范围内。
需要说明的是:上述实施例中提供的BPM检测装置在检测BPM时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将终端的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的BPM检测装置与BPM检测方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
请参见图5所示,其示出了本发明部分实施例中提供的终端的结构方框图。该终端500用于实施上述实施例提供的BPM检测方法。本发明中的终端500可以包括一个或多个如下组成部分:用于执行计算机程序指令以完成各种流程和方法的处理器,用于信息和存储程序指令随机接入存储器(RAM)和只读存储器(ROM),用于存储数据和信息的存储器,I/O设备,界面,天线等。具体来讲:
终端500可以包括RF(Radio Frequency,射频)电路510、存储器520、输入单元530、显示单元540、传感器550、音频电路560、WiFi(wireless fidelity,无线保真)模块570、处理器580、电源582、摄像头590等部件。本领域技术人员可以理解,图5中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图5对终端500的各个构成部件进行具体的介绍:
RF电路510可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器580处理;另外,将设计上行的数据发送给基站。通常,RF电路包括但不限于天线、至少一个放大器、收发信机、耦合器、LNA(Low Noise Amplifier,低噪声放大器)、双工器等。此外,RF电路510还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于GSM(Global System of Mobilecommunication,全球移动通讯系统)、GPRS(General Packet Radio Service,通用分组无线服务)、CDMA(Code Division Multiple Access,码分多址)、WCDMA(Wideband CodeDivision Multiple Access,宽带码分多址)、LTE(Long Term Evolution,长期演进)、电子邮件、SMS(Short Messaging Service,短消息服务)等。
存储器520可用于存储软件程序以及模块,处理器580通过运行存储在存储器520的软件程序以及模块,从而执行终端500的各种功能应用以及数据处理。存储器520可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端500的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器520可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元530可用于接收输入的数字或字符信息,以及产生与终端500的用户设置以及功能控制有关的键信号输入。具体地,输入单元530可包括触控面板531以及其他输入设备532。触控面板531,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板531上或在触控面板531附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板531可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器580,并能接收处理器580发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板531。除了触控面板531,输入单元530还可以包括其他输入设备532。具体地,其他输入设备532可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元540可用于显示由用户输入的信息或提供给用户的信息以及终端500的各种菜单。显示单元540可包括显示面板541,可选的,可以采用LCD(Liquid CrystalDisplay,液晶显示器)、OLED(Organic Light-Emitting Diode,有机发光二极管)等形式来配置显示面板541。进一步的,触控面板531可覆盖显示面板541,当触控面板531检测到在其上或附近的触摸操作后,传送给处理器580以确定触摸事件的类型,随后处理器580根据触摸事件的类型在显示面板541上提供相应的视觉输出。虽然在图5中,触控面板531与显示面板541是作为两个独立的部件来实现终端500的输入和输入功能,但是在某些实施例中,可以将触控面板531与显示面板541集成而实现终端500的输入和输出功能。
终端500还可包括至少一种传感器550,比如陀螺仪传感器、磁感应传感器、光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板541的亮度,接近传感器可在终端500移动到耳边时,关闭显示面板541和/或背光。作为运动传感器的一种,加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别电子设备姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于终端500还可配置的气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路560、扬声器561,传声器562可提供用户与终端500之间的音频接口。音频电路560可将接收到的音频数据转换后的电信号,传输到扬声器561,由扬声器561转换为声音信号输出;另一方面,传声器562将收集的声音信号转换为电信号,由音频电路560接收后转换为音频数据,再将音频数据输出处理器580处理后,经RF电路510以发送给比如另一终端,或者将音频数据输出至存储器520以便进一步处理。
WiFi属于短距离无线传输技术,终端500通过WiFi模块570可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图5示出了WiFi模块570,但是可以理解的是,其并不属于终端500的必须构成,完全可以根据需要在不改变公开的本质的范围内而省略。
处理器580是终端500的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器520内的软件程序和/或模块,以及调用存储在存储器520内的数据,执行终端500的各种功能和处理数据,从而对电子设备进行整体监控。可选的,处理器580可包括一个或多个处理单元;优选的,处理器580可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器580中。
终端500还包括给各个部件供电的电源582(比如电池),优选的,电源可以通过电源管理系统与处理器580逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
摄像头590一般由镜头、图像传感器、接口、数字信号处理器、CPU、显示屏幕等组成。其中,镜头固定在图像传感器的上方,可以通过手动调节镜头来改变聚焦;图像传感器相当于传统相机的“胶卷”,是摄像头采集图像的心脏;接口用于把摄像头利用排线、板对板连接器、弹簧式连接方式与电子设备主板连接,将采集的图像发送给所述存储器520;数字信号处理器通过数学运算对采集的图像进行处理,将采集的模拟图像转换为数字图像并通过接口发送给存储器520。
尽管未示出,终端500还可以包括蓝牙模块等,在此不再赘述。
本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中的存储器中所包含的计算机可读存储介质;也可以是单独存在,未装配入终端中的计算机可读存储介质。该计算机可读存储介质存储有一个或者一个以上程序,该一个或者一个以上程序被一个或者一个以上的处理器用来执行上述BPM检测方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (24)

1.一种BPM检测方法,其特征在于,所述方法包括:
对音频信号片段进行信号处理,得到峰值点序列;
从所述峰值点序列中确定出第一峰值点和第二峰值点,所述第一峰值点是所述峰值点序列中的第一序列范围内取值最大的点,所述第二峰值点是所述峰值点序列中的第二序列范围内取值最大的点,所述第一序列范围中包含的峰值点的数量比所述第二序列范围中包含的峰值点的数量少,所述第二序列范围的起始点为所述第一峰值点;
根据所述第一峰值点的序列位置和所述第二峰值点的序列位置确定节拍型;
根据所述第一峰值点的序列位置和取值、所述第二峰值点的序列位置和取值以及所述节拍型确定出第一候选点和第二候选点;
根据所述第一候选点、所述第二候选点和所述节拍型计算BPM。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一峰值点的序列位置和所述第二峰值点的序列位置确定节拍型,包括:
对所述第二峰值点的序列位置除以所述第一峰值点的序列位置的结果进行四舍五入取整,得到第一数值;
判断所述第一数值是否是3的整数倍;
当所述第一数值是3的整数倍时,确定所述节拍型为3拍型;
当所述第一数值不是3的整数倍时,确定所述节拍型为2拍型。
3.根据权利要求2所述的方法,其特征在于,所述第一数值是2的整数倍或是3的整数倍;
所述根据所述第一峰值点的序列位置和取值、所述第二峰值点的序列位置和取值以及所述节拍型确定出第一候选点和第二候选点,包括:
根据所述第一峰值点的序列位置和所述节拍型确定第三峰值点和第四峰值点;
根据第一策略从所述第一峰值点、所述第三峰值点和所述第四峰值点中确定出所述第一候选点和所述第二候选点。
4.根据权利要求3所述的方法,其特征在于,所述根据所述第一峰值点的序列位置和所述节拍型确定第三峰值点和第四峰值点,包括:
根据所述第一峰值点的序列位置和所述节拍型确定第一序列位置;
根据所述第一序列位置和预定误差范围确定第三序列范围;
将所述第三序列范围内取值最大的点确定为所述第三峰值点;
将所述第一序列位置乘以预定系数得到第二序列位置,所述预定系数为大于1的整数;
根据所述第二序列位置和所述预定误差范围确定第四序列范围;
将所述第四序列范围内取值最大的点确定为所述第四峰值点。
5.根据权利要求3所述的方法,其特征在于,所述根据第一策略从所述第一峰值点、所述第三峰值点和所述第四峰值点中确定出所述第一候选点和所述第二候选点,包括:
利用第一系数乘以所述第一峰值点的取值,得到第一峰值;
利用第二系数乘以所述第三峰值点的取值,得到第二峰值;
利用第三系数乘以所述第四峰值点的取值,得到第三峰值;
确定出所述第一峰值、所述第二峰值和所述第三峰值中的最大值;
当所述最大值为所述第一峰值时,将所述第一峰值点确定为所述第一候选点,将所述第三峰值点确定为所述第二候选点;
当所述最大值为所述第二峰值时,将所述第三峰值点确定为所述第一候选点,将所述第一峰值点确定为所述第二候选点;
当所述最大值为所述第四峰值时,将所述第四峰值点确定为所述第一候选点,将所述第三峰值点确定为所述第二候选点;
其中,所述第一系数大于所述第二系数,所述第二系数大于所述第三系数。
6.根据权利要求2所述的方法,其特征在于,所述第一数值不是2的整数倍或不是3的整数倍;
所述根据所述第一峰值点的序列位置和取值、所述第二峰值点的序列位置和取值以及所述节拍型确定出第一候选点和第二候选点,包括:
根据所述第一峰值点的序列位置、所述第二峰值点的序列位置和所述节拍型确定第五峰值点和第六峰值点;
根据第二策略从所述第一峰值点、所述第二峰值点、所述第五峰值点和所述第六峰值点中确定出所述第一候选点和所述第二候选点。
7.根据权利要求6所述的方法,其特征在于,所述根据所述第一峰值点的序列位置、所述第二峰值点的序列位置和所述节拍型确定第五峰值点和第六峰值点,包括:
根据所述第一峰值点的序列位置和所述节拍型确定第三序列位置;
根据所述第三序列位置和预定误差范围确定第五序列范围;
将所述第五序列范围内取值最大的点确定为所述第五峰值点;
根据第二峰值点的序列位置和所述节拍型确定第四序列位置;
根据所述第四序列位置和所述预定误差范围确定第六序列范围;
将所述第六序列范围内取值最大的点确定为所述第六峰值点。
8.根据权利要求6所述的方法,其特征在于,所述根据第二策略从所述第一峰值点、所述第二峰值点、所述第五峰值点和所述第六峰值点中确定出所述第一候选点和所述第二候选点,包括:
当所述第二峰值点的序列位置与所述第一峰值点的序列位置的间隔小于预定阈值时,将所述第一峰值点确定为所述第一候选点,将所述第五峰值点确定为所述第二候选点;
当所述第二峰值点的序列位置与所述第一峰值点的序列位置的间隔不小于所述预定阈值时,利用第四系数乘以所述第一峰值点的取值,得到第四峰值,利用第五系数乘以所述第二峰值点的取值,得到第五峰值;当所述第四峰值大于所述第五峰值时,将所述第一峰值点确定为所述第一候选点,将所述第五峰值点确定为所述第二候选点;当所述第四峰值小于所述第五峰值时,将所述第二峰值点确定为所述第一候选点,将所述第六峰值点确定为所述第二候选点;
其中,所述第四系数大于所述第五系数。
9.根据权利要求1所述的方法,其特征在于,所述根据所述第一候选点、所述第二候选点和所述节拍型计算BPM,包括:
将所述第一候选点的序列位置代入转换公式,计算得到第一BPM;
将所述第二候选点的序列位置代入转换公式,计算得到第二BPM;
判断所述第一BPM是否在所述预定范围内;
当所述第一BPM在所述预定范围内时,将所述第一BPM确定为所述音频信号片段的BPM。
10.根据权利要求9所述的方法,其特征在于,所述判断所述第一BPM是否在所述预定范围内之后,还包括:
当所述第一BPM不在所述预定范围内时,判断所述第二BPM是否在所述预定范围内;
当所述第二BPM在所述预定范围内时,将所述第二BPM确定为所述音频信号片段的BPM。
11.根据权利要求10所述的方法,其特征在于,所述判断所述第二BPM是否在所述预定范围内之后,还包括:
当所述第一BPM和所述第二BPM均不在所述预定范围内时,将所述第一BPM与所述预定范围的上限值和下限值进行比较;
当所述第一BPM小于所述预定范围的下限值时,利用所述第一BPM乘以所述节拍型,得到所述音频信号片段的BPM;
当所述第一BPM大于所述预定范围的上限值时,利用所述第一BPM除以所述节拍型,得到所述音频信号片段的BPM。
12.根据权利要求9所述的方法,其特征在于,所述信号处理至少包括对所述音频信号片段的采样,所述采样的参数至少包括采样频率和步进值;
所述转换公式为:其中,m表示所述采样频率,n表示所述步进值,P表示候选点的序列位置。
13.一种BPM检测装置,其特征在于,所述装置包括:
处理模块,用于对音频信号片段进行信号处理,得到峰值点序列;
第一确定模块,用于从所述处理模块得到的所述峰值点序列中确定出第一峰值点和第二峰值点,所述第一峰值点是所述峰值点序列中的第一序列范围内取值最大的点,所述第二峰值点是所述峰值点序列中的第二序列范围内取值最大的点,所述第一序列范围中包含的峰值点的数量比所述第二序列范围中包含的峰值点的数量少,所述第二序列范围的起始点为所述第一峰值点;
第二确定模块,用于根据所述第一确定模块确定出的所述第一峰值点的序列位置和所述第二峰值点的序列位置确定节拍型;
第三确定模块,用于根据所述第一确定模块确定出的所述第一峰值点的序列位置和取值、所述第二峰值点的序列位置和取值以及所述第二确定模块确定出的所述节拍型确定出第一候选点和第二候选点;
计算模块,用于根据所述第三确定模块确定出的所述第一候选点、所述第二候选点和所述第二确定模块确定出的所述节拍型计算BPM。
14.根据权利要求13所述的装置,其特征在于,所述第二确定模块,包括:
第一计算单元,用于对所述第二峰值点的序列位置除以所述第一峰值点的序列位置的结果进行四舍五入取整,得到第一数值;
第一判断单元,用于判断所述第一计算单元计算的所述第一数值是否是3的整数倍;
第一确定单元,用于当所述第一判断单元判断出所述第一计算单元计算的所述第一数值是3的整数倍时,确定所述节拍型为3拍型;
第二确定单元,用于当所述第一判断单元判断出所述第一计算单元计算的所述第一数值不是3的整数倍时,确定所述节拍型为2拍型。
15.根据权利要求14所述的装置,其特征在于,所述第一数值是2的整数倍或是3的整数倍;
所述第三确定模块,包括:
第三确定单元,用于根据所述第一峰值点的序列位置和所述节拍型确定第三峰值点和第四峰值点;
第四确定单元,用于根据第一策略从所述第一峰值点、所述第三确定单元确定出的所述第三峰值点和所述第四峰值点中确定出所述第一候选点和所述第二候选点。
16.根据权利要求15所述的装置,其特征在于,所述第三确定单元还用于
根据所述第一峰值点的序列位置和所述节拍型确定第一序列位置;
根据所述第一序列位置和预定误差范围确定第三序列范围;
将所述第三序列范围内取值最大的点确定为所述第三峰值点;
将所述第一序列位置乘以预定系数得到第二序列位置,所述预定系数为大于1的整数;
根据所述第二序列位置和所述预定误差范围确定第四序列范围;
将所述第四序列范围内取值最大的点确定为所述第四峰值点。
17.根据权利要求15所述的装置,其特征在于,所述第四确定单元还用于
利用第一系数乘以所述第一峰值点的取值,得到第一峰值;
利用第二系数乘以所述第三峰值点的取值,得到第二峰值;
利用第三系数乘以所述第四峰值点的取值,得到第三峰值;
确定出所述第一峰值、所述第二峰值和所述第三峰值中的最大值;
当所述最大值为所述第一峰值时,将所述第一峰值点确定为所述第一候选点,将所述第三峰值点确定为所述第二候选点;
当所述最大值为所述第二峰值时,将所述第三峰值点确定为所述第一候选点,将所述第一峰值点确定为所述第二候选点;
当所述最大值为所述第四峰值时,将所述第四峰值点确定为所述第一候选点,将所述第三峰值点确定为所述第二候选点;
其中,所述第一系数大于所述第二系数,所述第二系数大于所述第三系数。
18.根据权利要求14所述的方法,其特征在于,所述第一数值不是2的整数倍或不是3的整数倍;
所述第三确定模块,包括:
第五确定单元,用于根据所述第一峰值点的序列位置、所述第二峰值点的序列位置和所述节拍型确定第五峰值点和第六峰值点;
第六确定单元,用于根据第二策略从所述第一峰值点、所述第二峰值点、所述第五峰值点和所述第六峰值点中确定出所述第一候选点和所述第二候选点。
19.根据权利要求18所述的装置,其特征在于,所述第五确定单元还用于
根据所述第一峰值点的序列位置和所述节拍型确定第三序列位置;
根据所述第三序列位置和预定误差范围确定第五序列范围;
将所述第五序列范围内取值最大的点确定为所述第五峰值点;
根据第二峰值点的序列位置和所述节拍型确定第四序列位置;
根据所述第四序列位置和所述预定误差范围确定第六序列范围;
将所述第六序列范围内取值最大的点确定为所述第六峰值点。
20.根据权利要求18所述的装置,其特征在于,所述第六确定单元还用于
当所述第二峰值点的序列位置与所述第一峰值点的序列位置的间隔小于预定阈值时,将所述第一峰值点确定为所述第一候选点,将所述第五峰值点确定为所述第二候选点;
当所述第二峰值点的序列位置与所述第一峰值点的序列位置的间隔不小于所述预定阈值时,利用第四系数乘以所述第一峰值点的取值,得到第四峰值,利用第五系数乘以所述第二峰值点的取值,得到第五峰值;当所述第四峰值大于所述第五峰值时,将所述第一峰值点确定为所述第一候选点,将所述第五峰值点确定为所述第二候选点;当所述第四峰值小于所述第五峰值时,将所述第二峰值点确定为所述第一候选点,将所述第六峰值点确定为所述第二候选点;
其中,所述第四系数大于所述第五系数。
21.根据权利要求13所述的装置,其特征在于,所述计算模块,包括:
第二计算单元,用于将所述第一候选点的序列位置代入转换公式,计算得到第一BPM;
第三计算单元,用于将所述第二候选点的序列位置代入转换公式,计算得到第二BPM;
第二判断单元,用于判断所述第二计算单元计算得到的所述第一BPM是否在所述预定范围内;
第七确定单元,用于当所述第二判断单元判断出所述第一BPM在所述预定范围内时,将所述第二计算单元计算得到的所述第一BPM确定为所述音频信号片段的BPM。
22.根据权利要求21所述的装置,其特征在于,所述计算模块,还包括:
第三判断单元,用于当所述第二判断单元判断出所述第一BPM不在所述预定范围内时,判断所述第三计算单元计算得到的所述第二BPM是否在所述预定范围内;
第八确定单元,用于当所述第三判断单元判断出所述第二BPM在所述预定范围内时,将所述第三计算单元计算得到的所述第二BPM确定为所述音频信号片段的BPM。
23.根据权利要求22所述的装置,其特征在于,所述计算模块,还包括:
比较单元,用于当所述第一BPM和所述第二BPM均不在所述预定范围内时,将所述第二计算单元计算得到的所述第一BPM与所述预定范围的上限值和下限值进行比较;
第四计算单元,用于当所述第一BPM小于所述预定范围的下限值时,利用所述第二计算单元计算得到的所述第一BPM乘以所述节拍型,得到所述音频信号片段的BPM;
第五计算单元,用于当所述第一BPM大于所述预定范围的上限值时,利用所述第二计算单元计算得到的所述第一BPM除以所述节拍型,得到所述音频信号片段的BPM。
24.根据权利要求21所述的装置,其特征在于,所述信号处理至少包括对所述音频信号片段的采样,所述采样的参数至少包括采样频率和步进值;
所述转换公式为:其中,m表示所述采样频率,n表示所述步进值,P表示候选点的序列位置。
CN201611233924.1A 2016-12-28 2016-12-28 Bpm检测方法及装置 Active CN106652981B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611233924.1A CN106652981B (zh) 2016-12-28 2016-12-28 Bpm检测方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611233924.1A CN106652981B (zh) 2016-12-28 2016-12-28 Bpm检测方法及装置

Publications (2)

Publication Number Publication Date
CN106652981A true CN106652981A (zh) 2017-05-10
CN106652981B CN106652981B (zh) 2019-09-13

Family

ID=58832148

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611233924.1A Active CN106652981B (zh) 2016-12-28 2016-12-28 Bpm检测方法及装置

Country Status (1)

Country Link
CN (1) CN106652981B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108108457A (zh) * 2017-12-28 2018-06-01 广州市百果园信息技术有限公司 从音乐节拍点中提取大节拍信息的方法、存储介质和终端
CN109308910A (zh) * 2018-09-20 2019-02-05 广州酷狗计算机科技有限公司 确定音频的bpm的方法和装置
CN111081271A (zh) * 2019-11-29 2020-04-28 福建星网视易信息系统有限公司 基于频域和时域的音乐节奏检测方法及存储介质
CN112908289A (zh) * 2021-03-10 2021-06-04 百果园技术(新加坡)有限公司 节拍确定方法、装置、设备和存储介质
CN113411663A (zh) * 2021-04-30 2021-09-17 成都东方盛行电子有限责任公司 一种用于非编工程中的音乐节拍提取方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1764940A (zh) * 2003-03-31 2006-04-26 索尼株式会社 拍子分析装置和拍子分析方法
JP2008107569A (ja) * 2006-10-25 2008-05-08 Korg Inc テンポ検出装置
CN102347022A (zh) * 2010-08-02 2012-02-08 索尼公司 音乐速度检测装置、音乐速度检测方法和程序
CN102543052A (zh) * 2011-12-13 2012-07-04 北京百度网讯科技有限公司 一种分析音乐bpm的方法和装置
CN103839538A (zh) * 2012-11-22 2014-06-04 腾讯科技(深圳)有限公司 音乐节奏检测方法及检测装置
CN105513583A (zh) * 2015-11-25 2016-04-20 福建星网视易信息系统有限公司 一种歌曲节奏的显示方法及其系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1764940A (zh) * 2003-03-31 2006-04-26 索尼株式会社 拍子分析装置和拍子分析方法
JP2008107569A (ja) * 2006-10-25 2008-05-08 Korg Inc テンポ検出装置
CN102347022A (zh) * 2010-08-02 2012-02-08 索尼公司 音乐速度检测装置、音乐速度检测方法和程序
CN102543052A (zh) * 2011-12-13 2012-07-04 北京百度网讯科技有限公司 一种分析音乐bpm的方法和装置
CN103839538A (zh) * 2012-11-22 2014-06-04 腾讯科技(深圳)有限公司 音乐节奏检测方法及检测装置
CN105513583A (zh) * 2015-11-25 2016-04-20 福建星网视易信息系统有限公司 一种歌曲节奏的显示方法及其系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
杨洁 等: "一种高效的音乐节拍检测算法及其在DSP中的实现", 《信号处理》 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108108457A (zh) * 2017-12-28 2018-06-01 广州市百果园信息技术有限公司 从音乐节拍点中提取大节拍信息的方法、存储介质和终端
US11386876B2 (en) 2017-12-28 2022-07-12 Bigo Technology Pte. Ltd. Method for extracting big beat information from music beat points, storage medium and terminal
CN109308910A (zh) * 2018-09-20 2019-02-05 广州酷狗计算机科技有限公司 确定音频的bpm的方法和装置
CN109308910B (zh) * 2018-09-20 2022-03-22 广州酷狗计算机科技有限公司 确定音频的bpm的方法和装置
CN111081271A (zh) * 2019-11-29 2020-04-28 福建星网视易信息系统有限公司 基于频域和时域的音乐节奏检测方法及存储介质
CN111081271B (zh) * 2019-11-29 2022-09-06 福建星网视易信息系统有限公司 基于频域和时域的音乐节奏检测方法及存储介质
CN112908289A (zh) * 2021-03-10 2021-06-04 百果园技术(新加坡)有限公司 节拍确定方法、装置、设备和存储介质
CN112908289B (zh) * 2021-03-10 2023-11-07 百果园技术(新加坡)有限公司 节拍确定方法、装置、设备和存储介质
CN113411663A (zh) * 2021-04-30 2021-09-17 成都东方盛行电子有限责任公司 一种用于非编工程中的音乐节拍提取方法

Also Published As

Publication number Publication date
CN106652981B (zh) 2019-09-13

Similar Documents

Publication Publication Date Title
CN106652981B (zh) Bpm检测方法及装置
CN106782460B (zh) 生成乐谱的方法和装置
CN105245496B (zh) 一种播放音频数据的方法和装置
CN104902116B (zh) 一种音频数据与参考信号的时间对齐方法及装置
CN106231379A (zh) 一种播放直播视频的方法、装置和系统
WO2019128639A1 (zh) 音频信号底鼓节拍点的检测方法以及终端
CN107831995A (zh) 一种终端操作控制方法、终端及计算机可读存储介质
CN109753327A (zh) 一种控件布局方法、终端及计算机可读存储介质
CN106869253B (zh) 基于浴缸的放水控制方法和装置
CN108073437A (zh) 一种应用推荐方法及移动终端
CN106210266B (zh) 一种音频信号处理方法及音频信号处理装置
CN107809536A (zh) 显示屏指纹识别处理方法、移动终端及存储介质
CN107613128A (zh) 一种音量调节方法、终端及计算机可读存储介质
CN107613146A (zh) 一种音量调整方法、装置及移动终端
CN108196775A (zh) 截图控制方法、柔性屏终端以及计算机可读存储介质
CN107798107A (zh) 歌曲推荐的方法和移动设备
CN106599204A (zh) 多媒体内容推荐方法及装置
CN106201816A (zh) 提醒方法及装置
CN106940997A (zh) 一种向语音识别系统发送语音信号的方法和装置
CN107715449A (zh) 一种账号登录方法及相关设备
CN109582817A (zh) 一种歌曲推荐方法、终端及计算机可读存储介质
CN105550316B (zh) 音频列表的推送方法及装置
US20150127278A1 (en) Method and device for ascertaining required charging time
CN103455751B (zh) 一种密码提示的生成方法、装置和终端设备
CN107680614A (zh) 音频信号处理方法、装置和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 510660 Guangzhou City, Guangzhou, Guangdong, Whampoa Avenue, No. 315, self - made 1-17

Applicant after: Guangzhou KuGou Networks Co., Ltd.

Address before: 510000 B1, building, No. 16, rhyme Road, Guangzhou, Guangdong, China 13F

Applicant before: Guangzhou KuGou Networks Co., Ltd.

GR01 Patent grant
GR01 Patent grant