1.一種BPM檢測方法,其特征在于,所述方法包括:
對音頻信號片段進(jìn)行信號處理,得到峰值點序列;
從所述峰值點序列中確定出第一峰值點和第二峰值點,所述第一峰值點是所述峰值點序列中的第一序列范圍內(nèi)取值最大的點,所述第二峰值點是所述峰值點序列中的第二序列范圍內(nèi)取值最大的點,所述第一序列范圍中包含的峰值點的數(shù)量比所述第二序列范圍中包含的峰值點的數(shù)量少,所述第二序列范圍的起始點為所述第一峰值點;
根據(jù)所述第一峰值點的序列位置和所述第二峰值點的序列位置確定節(jié)拍型;
根據(jù)所述第一峰值點的序列位置和取值、所述第二峰值點的序列位置和取值以及所述節(jié)拍型確定出第一候選點和第二候選點;
根據(jù)所述第一候選點、所述第二候選點和所述節(jié)拍型計算BPM。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述第一峰值點的序列位置和所述第二峰值點的序列位置確定節(jié)拍型,包括:
對所述第二峰值點的序列位置除以所述第一峰值點的序列位置的結(jié)果進(jìn)行四舍五入取整,得到第一數(shù)值;
判斷所述第一數(shù)值是否是3的整數(shù)倍;
當(dāng)所述第一數(shù)值是3的整數(shù)倍時,確定所述節(jié)拍型為3拍型;
當(dāng)所述第一數(shù)值不是3的整數(shù)倍時,確定所述節(jié)拍型為2拍型。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述第一數(shù)值是2的整數(shù)倍或是3的整數(shù)倍;
所述根據(jù)所述第一峰值點的序列位置和取值、所述第二峰值點的序列位置和取值以及所述節(jié)拍型確定出第一候選點和第二候選點,包括:
根據(jù)所述第一峰值點的序列位置和所述節(jié)拍型確定第三峰值點和第四峰值點;
根據(jù)第一策略從所述第一峰值點、所述第三峰值點和所述第四峰值點中確定出所述第一候選點和所述第二候選點。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述根據(jù)所述第一峰值點的序列位置和所述節(jié)拍型確定第三峰值點和第四峰值點,包括:
根據(jù)所述第一峰值點的序列位置和所述節(jié)拍型確定第一序列位置;
根據(jù)所述第一序列位置和預(yù)定誤差范圍確定第三序列范圍;
將所述第三序列范圍內(nèi)取值最大的點確定為所述第三峰值點;
將所述第一序列位置乘以預(yù)定系數(shù)得到第二序列位置,所述預(yù)定系數(shù)為大于1的整數(shù);
根據(jù)所述第二序列位置和所述預(yù)定誤差范圍確定第四序列范圍;
將所述第四序列范圍內(nèi)取值最大的點確定為所述第四峰值點。
5.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述根據(jù)第一策略從所述第一峰值點、所述第三峰值點和所述第四峰值點中確定出所述第一候選點和所述第二候選點,包括:
利用第一系數(shù)乘以所述第一峰值點的取值,得到第一峰值;
利用第二系數(shù)乘以所述第三峰值點的取值,得到第二峰值;
利用第三系數(shù)乘以所述第四峰值點的取值,得到第三峰值;
確定出所述第一峰值、所述第二峰值和所述第三峰值中的最大值;
當(dāng)所述最大值為所述第一峰值時,將所述第一峰值點確定為所述第一候選點,將所述第三峰值點確定為所述第二候選點;
當(dāng)所述最大值為所述第二峰值時,將所述第三峰值點確定為所述第一候選點,將所述第一峰值點確定為所述第二候選點;
當(dāng)所述最大值為所述第四峰值時,將所述第四峰值點確定為所述第一候選點,將所述第三峰值點確定為所述第二候選點;
其中,所述第一系數(shù)大于所述第二系數(shù),所述第二系數(shù)大于所述第三系數(shù)。
6.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述第一數(shù)值不是2的整數(shù)倍或不是3的整數(shù)倍;
所述根據(jù)所述第一峰值點的序列位置和取值、所述第二峰值點的序列位置和取值以及所述節(jié)拍型確定出第一候選點和第二候選點,包括:
根據(jù)所述第一峰值點的序列位置、所述第二峰值點的序列位置和所述節(jié)拍型確定第五峰值點和第六峰值點;
根據(jù)第二策略從所述第一峰值點、所述第二峰值點、所述第五峰值點和所述第六峰值點中確定出所述第一候選點和所述第二候選點。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述根據(jù)所述第一峰值點的序列位置、所述第二峰值點的序列位置和所述節(jié)拍型確定第五峰值點和第六峰值點,包括:
根據(jù)所述第一峰值點的序列位置和所述節(jié)拍型確定第三序列位置;
根據(jù)所述第三序列位置和預(yù)定誤差范圍確定第五序列范圍;
將所述第五序列范圍內(nèi)取值最大的點確定為所述第五峰值點;
根據(jù)第二峰值點的序列位置和所述節(jié)拍型確定第四序列位置;
根據(jù)所述第四序列位置和所述預(yù)定誤差范圍確定第六序列范圍;
將所述第六序列范圍內(nèi)取值最大的點確定為所述第六峰值點。
8.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述根據(jù)第二策略從所述第一峰值點、所述第二峰值點、所述第五峰值點和所述第六峰值點中確定出所述第一候選點和所述第二候選點,包括:
當(dāng)所述第二峰值點的序列位置與所述第一峰值點的序列位置的間隔小于預(yù)定閾值時,將所述第一峰值點確定為所述第一候選點,將所述第五峰值點確定為所述第二候選點;
當(dāng)所述第二峰值點的序列位置與所述第一峰值點的序列位置的間隔不小于所述預(yù)定閾值時,利用第四系數(shù)乘以所述第一峰值點的取值,得到第四峰值,利用第五系數(shù)乘以所述第二峰值點的取值,得到第五峰值;當(dāng)所述第四峰值大于所述第五峰值時,將所述第一峰值點確定為所述第一候選點,將所述第五峰值點確定為所述第二候選點;當(dāng)所述第四峰值小于所述第五峰值時,將所述第二峰值點確定為所述第一候選點,將所述第六峰值點確定為所述第二候選點;
其中,所述第四系數(shù)大于所述第五系數(shù)。
9.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述第一候選點、所述第二候選點和所述節(jié)拍型計算BPM,包括:
將所述第一候選點的序列位置代入轉(zhuǎn)換公式,計算得到第一BPM;
將所述第二候選點的序列位置代入轉(zhuǎn)換公式,計算得到第二BPM;
判斷所述第一BPM是否在所述預(yù)定范圍內(nèi);
當(dāng)所述第一BPM在所述預(yù)定范圍內(nèi)時,將所述第一BPM確定為所述音頻信號片段的BPM。
10.根據(jù)權(quán)利要求9所述的方法,其特征在于,所述判斷所述第一BPM是否在所述預(yù)定范圍內(nèi)之后,還包括:
當(dāng)所述第一BPM不在所述預(yù)定范圍內(nèi)時,判斷所述第二BPM是否在所述預(yù)定范圍內(nèi);
當(dāng)所述第二BPM在所述預(yù)定范圍內(nèi)時,將所述第二BPM確定為所述音頻信號片段的BPM。
11.根據(jù)權(quán)利要求10所述的方法,其特征在于,所述判斷所述第二BPM是否在所述預(yù)定范圍內(nèi)之后,還包括:
當(dāng)所述第一BPM和所述第二BPM均不在所述預(yù)定范圍內(nèi)時,將所述第一BPM與所述預(yù)定范圍的上限值和下限值進(jìn)行比較;
當(dāng)所述第一BPM小于所述預(yù)定范圍的下限值時,利用所述第一BPM乘以所述節(jié)拍型,得到所述音頻信號片段的BPM;
當(dāng)所述第一BPM大于所述預(yù)定范圍的上限值時,利用所述第一BPM除以所述節(jié)拍型,得到所述音頻信號片段的BPM。
12.根據(jù)權(quán)利要求9所述的方法,其特征在于,所述信號處理至少包括對所述音頻信號片段的采樣,所述采樣的參數(shù)至少包括采樣頻率和步進(jìn)值;
所述轉(zhuǎn)換公式為:其中,m表示所述采樣頻率,n表示所述步進(jìn)值,P表示候選點的序列位置。
13.一種BPM檢測裝置,其特征在于,所述裝置包括:
處理模塊,用于對音頻信號片段進(jìn)行信號處理,得到峰值點序列;
第一確定模塊,用于從所述處理模塊得到的所述峰值點序列中確定出第一峰值點和第二峰值點,所述第一峰值點是所述峰值點序列中的第一序列范圍內(nèi)取值最大的點,所述第二峰值點是所述峰值點序列中的第二序列范圍內(nèi)取值最大的點,所述第一序列范圍中包含的峰值點的數(shù)量比所述第二序列范圍中包含的峰值點的數(shù)量少,所述第二序列范圍的起始點為所述第一峰值點;
第二確定模塊,用于根據(jù)所述第一確定模塊確定出的所述第一峰值點的序列位置和所述第二峰值點的序列位置確定節(jié)拍型;
第三確定模塊,用于根據(jù)所述第一確定模塊確定出的所述第一峰值點的序列位置和取值、所述第二峰值點的序列位置和取值以及所述第二確定模塊確定出的所述節(jié)拍型確定出第一候選點和第二候選點;
計算模塊,用于根據(jù)所述第三確定模塊確定出的所述第一候選點、所述第二候選點和所述第二確定模塊確定出的所述節(jié)拍型計算BPM。
14.根據(jù)權(quán)利要求13所述的裝置,其特征在于,所述第二確定模塊,包括:
第一計算單元,用于對所述第二峰值點的序列位置除以所述第一峰值點的序列位置的結(jié)果進(jìn)行四舍五入取整,得到第一數(shù)值;
第一判斷單元,用于判斷所述第一計算單元計算的所述第一數(shù)值是否是3的整數(shù)倍;
第一確定單元,用于當(dāng)所述第一判斷單元判斷出所述第一計算單元計算的所述第一數(shù)值是3的整數(shù)倍時,確定所述節(jié)拍型為3拍型;
第二確定單元,用于當(dāng)所述第一判斷單元判斷出所述第一計算單元計算的所述第一數(shù)值不是3的整數(shù)倍時,確定所述節(jié)拍型為2拍型。
15.根據(jù)權(quán)利要求14所述的裝置,其特征在于,所述第一數(shù)值是2的整數(shù)倍或是3的整數(shù)倍;
所述第三確定模塊,包括:
第三確定單元,用于根據(jù)所述第一峰值點的序列位置和所述節(jié)拍型確定第三峰值點和第四峰值點;
第四確定單元,用于根據(jù)第一策略從所述第一峰值點、所述第三確定單元確定出的所述第三峰值點和所述第四峰值點中確定出所述第一候選點和所述第二候選點。
16.根據(jù)權(quán)利要求15所述的裝置,其特征在于,所述第三確定單元還用于
根據(jù)所述第一峰值點的序列位置和所述節(jié)拍型確定第一序列位置;
根據(jù)所述第一序列位置和預(yù)定誤差范圍確定第三序列范圍;
將所述第三序列范圍內(nèi)取值最大的點確定為所述第三峰值點;
將所述第一序列位置乘以預(yù)定系數(shù)得到第二序列位置,所述預(yù)定系數(shù)為大于1的整數(shù);
根據(jù)所述第二序列位置和所述預(yù)定誤差范圍確定第四序列范圍;
將所述第四序列范圍內(nèi)取值最大的點確定為所述第四峰值點。
17.根據(jù)權(quán)利要求15所述的裝置,其特征在于,所述第四確定單元還用于
利用第一系數(shù)乘以所述第一峰值點的取值,得到第一峰值;
利用第二系數(shù)乘以所述第三峰值點的取值,得到第二峰值;
利用第三系數(shù)乘以所述第四峰值點的取值,得到第三峰值;
確定出所述第一峰值、所述第二峰值和所述第三峰值中的最大值;
當(dāng)所述最大值為所述第一峰值時,將所述第一峰值點確定為所述第一候選點,將所述第三峰值點確定為所述第二候選點;
當(dāng)所述最大值為所述第二峰值時,將所述第三峰值點確定為所述第一候選點,將所述第一峰值點確定為所述第二候選點;
當(dāng)所述最大值為所述第四峰值時,將所述第四峰值點確定為所述第一候選點,將所述第三峰值點確定為所述第二候選點;
其中,所述第一系數(shù)大于所述第二系數(shù),所述第二系數(shù)大于所述第三系數(shù)。
18.根據(jù)權(quán)利要求14所述的方法,其特征在于,所述第一數(shù)值不是2的整數(shù)倍或不是3的整數(shù)倍;
所述第三確定模塊,包括:
第五確定單元,用于根據(jù)所述第一峰值點的序列位置、所述第二峰值點的序列位置和所述節(jié)拍型確定第五峰值點和第六峰值點;
第六確定單元,用于根據(jù)第二策略從所述第一峰值點、所述第二峰值點、所述第五峰值點和所述第六峰值點中確定出所述第一候選點和所述第二候選點。
19.根據(jù)權(quán)利要求18所述的裝置,其特征在于,所述第五確定單元還用于
根據(jù)所述第一峰值點的序列位置和所述節(jié)拍型確定第三序列位置;
根據(jù)所述第三序列位置和預(yù)定誤差范圍確定第五序列范圍;
將所述第五序列范圍內(nèi)取值最大的點確定為所述第五峰值點;
根據(jù)第二峰值點的序列位置和所述節(jié)拍型確定第四序列位置;
根據(jù)所述第四序列位置和所述預(yù)定誤差范圍確定第六序列范圍;
將所述第六序列范圍內(nèi)取值最大的點確定為所述第六峰值點。
20.根據(jù)權(quán)利要求18所述的裝置,其特征在于,所述第六確定單元還用于
當(dāng)所述第二峰值點的序列位置與所述第一峰值點的序列位置的間隔小于預(yù)定閾值時,將所述第一峰值點確定為所述第一候選點,將所述第五峰值點確定為所述第二候選點;
當(dāng)所述第二峰值點的序列位置與所述第一峰值點的序列位置的間隔不小于所述預(yù)定閾值時,利用第四系數(shù)乘以所述第一峰值點的取值,得到第四峰值,利用第五系數(shù)乘以所述第二峰值點的取值,得到第五峰值;當(dāng)所述第四峰值大于所述第五峰值時,將所述第一峰值點確定為所述第一候選點,將所述第五峰值點確定為所述第二候選點;當(dāng)所述第四峰值小于所述第五峰值時,將所述第二峰值點確定為所述第一候選點,將所述第六峰值點確定為所述第二候選點;
其中,所述第四系數(shù)大于所述第五系數(shù)。
21.根據(jù)權(quán)利要求13所述的裝置,其特征在于,所述計算模塊,包括:
第二計算單元,用于將所述第一候選點的序列位置代入轉(zhuǎn)換公式,計算得到第一BPM;
第三計算單元,用于將所述第二候選點的序列位置代入轉(zhuǎn)換公式,計算得到第二BPM;
第二判斷單元,用于判斷所述第二計算單元計算得到的所述第一BPM是否在所述預(yù)定范圍內(nèi);
第七確定單元,用于當(dāng)所述第二判斷單元判斷出所述第一BPM在所述預(yù)定范圍內(nèi)時,將所述第二計算單元計算得到的所述第一BPM確定為所述音頻信號片段的BPM。
22.根據(jù)權(quán)利要求21所述的裝置,其特征在于,所述計算模塊,還包括:
第三判斷單元,用于當(dāng)所述第二判斷單元判斷出所述第一BPM不在所述預(yù)定范圍內(nèi)時,判斷所述第三計算單元計算得到的所述第二BPM是否在所述預(yù)定范圍內(nèi);
第八確定單元,用于當(dāng)所述第三判斷單元判斷出所述第二BPM在所述預(yù)定范圍內(nèi)時,將所述第三計算單元計算得到的所述第二BPM確定為所述音頻信號片段的BPM。
23.根據(jù)權(quán)利要求22所述的裝置,其特征在于,所述計算模塊,還包括:
比較單元,用于當(dāng)所述第一BPM和所述第二BPM均不在所述預(yù)定范圍內(nèi)時,將所述第二計算單元計算得到的所述第一BPM與所述預(yù)定范圍的上限值和下限值進(jìn)行比較;
第四計算單元,用于當(dāng)所述第一BPM小于所述預(yù)定范圍的下限值時,利用所述第二計算單元計算得到的所述第一BPM乘以所述節(jié)拍型,得到所述音頻信號片段的BPM;
第五計算單元,用于當(dāng)所述第一BPM大于所述預(yù)定范圍的上限值時,利用所述第二計算單元計算得到的所述第一BPM除以所述節(jié)拍型,得到所述音頻信號片段的BPM。
24.根據(jù)權(quán)利要求21所述的裝置,其特征在于,所述信號處理至少包括對所述音頻信號片段的采樣,所述采樣的參數(shù)至少包括采樣頻率和步進(jìn)值;
所述轉(zhuǎn)換公式為:其中,m表示所述采樣頻率,n表示所述步進(jìn)值,P表示候選點的序列位置。