新四季網

BPM檢測方法及裝置與流程

2023-05-30 21:50:58 2


本發明實施例涉及信號處理技術領域,特別涉及一種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 Mobile communication,全球移動通訊系統)、GPRS(General Packet Radio Service,通用分組無線服務)、CDMA(Code Division Multiple Access,碼分多址)、WCDMA(Wideband Code Division 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 Crystal Display,液晶顯示器)、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檢測方法。

上述本發明實施例序號僅僅為了描述,不代表實施例的優劣。

本領域普通技術人員可以理解實現上述實施例的全部或部分步驟可以通過硬體來完成,也可以通過程序來指令相關的硬體完成,所述的程序可以存儲於一種計算機可讀存儲介質中,上述提到的存儲介質可以是只讀存儲器,磁碟或光碟等。

以上所述僅為本發明的較佳實施例,並不用以限制本發明,凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護範圍之內。

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀