專利名稱:一種基于哼唱輸入的記譜方法及裝置的制作方法
技術領域:
本發(fā)明涉及哼唱識別技術領域,尤其涉及一種基于哼唱輸入的記譜方法及裝置。
背景技術:
隨著數字音效處理以及音樂呈現技術的進步,音樂創(chuàng)作和保存方式也不斷更新。 對于專業(yè)的音樂人,常常會突發(fā)靈感而即興哼唱,想用某種樂器演奏這段旋律但一時找不到這種樂器;對于沒有任何樂理知識的普通人,往往也會在興致來臨時隨意哼唱,當他想用某種樂器比如鋼琴再現之前哼唱的曲調時,卻因為缺乏鋼琴演奏技能而無法盡興。此時,就需要一種能夠將接收到的語音信號迅速轉換為樂譜輸出的可隨身攜帶的設備。目前,人們已經能夠通過哼唱識別技術將哼唱的信號改編成音樂樂譜。但是現有技術存在下列缺點哼唱識別的精確度不高;識別算法過于復雜,需要占用較大的系統(tǒng)內存。如在申請?zhí)枮?00610086470. X的專利公開文件中,公開了一種音高跟蹤和播放方法和系統(tǒng),其主要通過在音高檢測的預處理時采用兩階低通濾波器進行濾波,隔點進行互相關函數的計算,縮小基音頻率的搜索范圍等措施達到適用于嵌入式系統(tǒng)的目的,但由于算法精度不夠高且較為復雜,依然存在著識別精度低,計算速度慢的缺點。
發(fā)明內容
本發(fā)明實施例所要解決的技術問題在于,提供一種基于哼唱輸入的記譜方法及裝置,可以實現對哼唱輸入的高精度快速識別及樂譜轉換。為解決上述問題,本發(fā)明實施例提供了一種基于哼唱輸入的記譜方法,包括根據預置的窗函數對接收到的語音信號進行分幀處理,獲得多個對應的語音幀;對每一語音幀進行靜音檢測,得到每一語音幀的能量;對每一語音幀進行濾波處理,并對濾波后的信號進行三電平削波處理,得到每一語音幀對應的削波信號;對每一語音幀對應的削波信號進行標準自相關計算,根據計算結果提取得到每一語音幀的音高幀序列;根據每一語音幀的能量及音高對所述語音信號進行音符切分,得到切分結果,所述切分結果包括音符、與所述音符一一對應的音符強度及音符時長;根據用戶設置的樂器類型及所述切分結果,得到樂譜并輸出。其中,在所述根據預設的窗函數對接收到的語音信號進行分幀處理,獲得多個對應的語音幀的步驟,具體包括根據預設的窗函數對接收到的語音信號進行分幀處理,獲得多個對應的語音幀;根據預設的幀移長度對每一語音幀進行幀移處理,使所述語音幀相互重疊。其中,所述對每一語音幀進行靜音檢測,得到每一語音幀的能量的步驟,具體包括計算每一語音幀的能量并保存;
將每一語音幀的能量和預設的閾值做比較,若當前語音幀的能量大于所述閾值, 則進行下一步的所述濾波處理,否則,直接將當前語音幀的音高設置為0。其中,所述對每一語音幀對應的削波信號進行標準自相關計算,根據計算結果提取得到每一語音幀的音高的步驟,具體包括A 采用標準自相關函數對所述每一語音幀對應的削波信號進行計算,得到每一語音幀對應的自相關函數,并根據特定的采樣率在每一語音幀中選出對應的自相關函數;B 根據預設的分段值,將選出的當前語音幀的自相關函數均分;C:分別依次比較當前語音幀中每段自相關函數中的每兩個自相關函數值的大小, 將每段中值最大的自相關函數值作為峰值,得到當前語音幀的自相關函數峰值序列;D 記錄所述當前語音幀的自相關函數峰值序列中每一峰值所對應的位置信息;E 對所述當前語音幀的自相關函數峰值序列進行遍歷,確定音高位置,將特定采樣率及音高位置代入音高計算公式,得到當前語音幀的音高,重復執(zhí)行所述A至E過程,直至得到每一語音幀的音高。其中,根據每一語音幀的能量及音高對所述語音信號進行音符切分,得到切分結果的步驟,具體包括依次比較每一語音幀的能量大小,將能量既大于前兩個語音幀又大于后兩個語音幀的當前語音幀的能量作為峰值,直至對比到最后一個語音幀,得到整個語音信號的能量峰值序列;根據所述能量峰值序列中每一個峰值對應的音高,計算得到音符;根據所述能量峰值序列中每一個峰值,計算得到與所述音符一一對應的音符強度;根據所述能量峰值序列中每兩個峰值之間的時間間隔,得到與所述音符一一對應的音符時長。相應地,本發(fā)明實施例還提供了一種基于哼唱輸入的記譜裝置,所述基于哼唱輸入的樂曲合成裝置包括分幀模塊、檢測模塊、處理模塊、計算模塊、切分模塊以及輸出模塊,其中所述分幀模塊,用于根據預置的窗函數對接收到的語音信號進行分幀處理,獲得多個對應的語音幀;所述檢測模塊,用于對所述分幀模塊得到的每一語音幀進行靜音檢測,得到每一語音幀的能量;所述處理模塊,用于對所述分幀模塊得到的每一語音幀進行濾波處理,并對濾波后的信號進行三電平削波處理,得到每一語音幀對應的削波信號;所述計算模塊,用于對所述處理模塊得到的每一語音幀對應的削波信號進行標準自相關計算,根據計算結果提取得到每一語音幀的音高幀序列;所述切分模塊,用于根據所述檢測模塊得到的每一語音幀的能量及所述計算模塊得到的每一語音幀的音高對所述語音信號進行音符切分,得到切分結果,所述切分結果包括音符、與所述音符一一對應的音符強度及音符時長;所述輸出模塊,用于根據用戶設置的樂器類型及所述切分模塊得到的切分結果, 得到樂譜并輸出。
其中,所述分幀模塊包括加窗單元及幀移單元,其中所述加窗單元,用于根據預設的窗函數對接收到的語音信號進行分幀處理,獲得多個對應的語音幀;所述幀移單元,用于根據預設的幀移長度對所述加窗單元得到的每一語音幀進行幀移處理,使所述語音幀相互重疊。其中,所述檢測模塊包括計算存儲單元、比較單元及設置單元,其中所述計算存儲單元,用于計算所述分幀模塊得到的每一語音幀的能量并保存;所述比較單元,用于比較所述計算存儲單元得到的每一語音幀的能量和預設的閾值的大??;所述設置單元,用于將能量小于預設的閾值的語音幀的音高設置為0。其中,所述計算模塊包括采樣單元、分段單元、第一對比單元、記錄單元以及確定單元,其中所述采樣單元,用于采用標準自相關函數對所述處理模塊得到每一語音幀對應的削波信號進行計算,得到每一語音幀對應的自相關函數,并根據特定的采樣率在每一語音幀中選出對應的自相關函數;所述分段單元,用于根據預設的分段值,將選出的當前語音幀的自相關函數均分;所述第一對比單元,用于分別依次比較當前語音幀中所述分段單元得到的每段自相關函數中的每兩個自相關函數值的大小,將每段中值最大的自相關函數值作為峰值,得到當前語音幀的自相關函數峰值序列;所述記錄單元,用于記錄所述對比單元得到的當前語音幀的自相關函數峰值序列中每一峰值所對應的位置信息;所述確定單元,用于對所述對比單元得到的當前語音幀的自相關函數峰值序列進行遍歷,確定音高位置,將特定采樣率及音高位置代入音高計算公式,得到當前語音幀的音
尚ο其中,所述切分模塊包括第二對比單元、音符單元、音符強度單元以及音符時長單元,其中所述第二對比單元,用于依次比較所述計算存儲單元得到的每一語音幀的能量大小,將能量既大于前兩個語音幀又大于后兩個語音幀的當前語音幀的能量作為峰值,直至對比到最后一個語音幀,得到整個語音信號的能量峰值序列;所述音符單元,用于根據所述第二對比單元得到的能量峰值序列中每一個峰值對應的音高,計算得到音符;所述音符強度單元,用于根據所述第二對比單元得到的能量峰值序列中每一個峰值,計算得到與所述音符一一對應的音符強度;所述音符時長單元,用于根據所述第二對比單元得到的能量峰值序列中每兩個峰值之間的時間間隔,得到與所述音符一一對應的音符時長。實施本發(fā)明實施例,具有如下有益效果本發(fā)明實施例通過對接收的語音信號逐步進行包括分幀、幀移、靜音檢測、濾波、 三電平削波、標準自相關計算、峰值選取、中值濾波的處理方式,能得到每一語音幀的能量
7及音高,并通過對能量及音高的進一步切分識別,得到獲取樂曲所需的音符、音符強度、 音符時長、節(jié)拍和調號等信息,迅速,準確,靈活,結合用戶設置的樂器類型,既能夠得到 MIDI (Musica4 Instrument Digita nterface,樂器數字接口)文件,又能得到簡譜和五線
■;並尤其,采用三電平削波,不但能消除語音信號中的共振峰對音高提取的影響,還能降低求自相關函數的計算量。
為了更清楚地說明本發(fā)明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。圖1為本發(fā)明基于哼唱輸入的記譜裝置的第一實施例的結構示意圖;圖2為本發(fā)明基于哼唱輸入的記譜裝置的第二實施例的結構示意圖;圖3為圖2中的分幀模塊的一個實施例的結構示意圖;圖4為圖2中的檢測模塊的一個實施例的結構示意圖;圖5為圖2中的計算模塊的一個實施例的結構示意圖;圖6為圖2中的切分模塊的一個實施例的結構示意圖;圖7為本發(fā)明基于哼唱輸入的記譜方法的第一實施例的流程圖;圖8為本發(fā)明基于哼唱輸入的記譜方法的第二實施例的流程圖;圖9為本發(fā)明的基于哼唱輸入的記譜方法的對每一語音幀進行靜音檢測,得到每一語音幀的能量的流程圖;圖10為本發(fā)明的基于哼唱輸入的記譜方法的對每一語音幀對應的削波信號進行標準自相關計算,根據計算結果提取得到每一語音幀的音高的流程圖;圖11為本發(fā)明的基于哼唱輸入的記譜方法的根據每一語音幀的能量及音高對所述語音信號進行音符切分,得到切分結果的流程圖。
具體實施例方式下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。下面結合附圖對本發(fā)明的具體實施例進行詳細說明。請參見圖1,為本發(fā)明基于哼唱輸入的樂曲合成裝置的第一實施例的結構示意圖, 所述基于哼唱輸入的樂曲合成裝置包括分幀模塊10、檢測模塊20、處理模塊30、計算模塊 40、切分模塊50以及輸出模塊60,其中所述分幀模塊10,用于根據預置的窗函數對接收到的語音信號進行分幀處理,獲得多個對應的語音幀。具體的,用戶在任意時刻任意地點對著本發(fā)明實施例提供的基于哼唱輸入的樂曲合成裝置隨意哼唱,所述分幀模塊10即可接收到用戶哼唱的語音信號,并采用窗函數對所述語音信號進行分幀處理。所述分幀模塊10具體通過對所述語音信號加一個長度為N的窗函數,將所述語音信號分為多幀進行處理。分幀后的多個語音幀可用式2-1表達Xn (m) = w (m) X χ (n+m),0 彡 m 彡 N—1 (式 2—1)其中,Xn(m)表示幀號為η的第m個采樣值,N為幀長,w(m)為窗函數,在本實施例中,采用矩形窗,窗函數如式2-2
權利要求
1.一種基于哼唱輸入的記譜方法,其特征在于,包括根據預置的窗函數對接收到的語音信號進行分幀處理,獲得多個對應的語音幀; 對每一語音幀進行靜音檢測,得到每一語音幀的能量;對每一語音幀進行濾波處理,并對濾波后的信號進行三電平削波處理,得到每一語音幀對應的削波信號;對每一語音幀對應的削波信號進行標準自相關計算,根據計算結果提取得到每一語音幀的音高;根據每一語音幀的能量及音高對所述語音信號進行音符切分,得到切分結果,所述切分結果包括音符、與所述音符一一對應的音符強度及音符時長; 根據用戶設置的樂器類型及所述切分結果,得到樂譜并輸出。
2.如權利要求1所述的方法,其特征在于,所述根據預設的窗函數對接收到的語音信號進行分幀處理,獲得多個對應的語音幀的步驟,具體包括根據預設的窗函數對接收到的語音信號進行分幀處理,獲得多個對應的語音幀; 根據預設的幀移長度對每一語音幀進行幀移處理,使所述語音幀相互重疊。
3.如權利要求2所述的方法,其特征在于,所述對每一語音幀進行靜音檢測,得到每一語音幀的能量的步驟,具體包括計算每一語音幀的能量并保存;將每一語音幀的能量和預設的閾值做比較,若當前語音幀的能量大于所述閾值,則進行下一步的所述濾波處理,否則,直接將當前語音幀的音高設置為0。
4.如權利要求3所述的方法,其特征在于,所述對每一語音幀對應的削波信號進行標準自相關計算,根據計算結果提取得到每一語音幀的音高的步驟,具體包括A 采用標準自相關函數對所述每一語音幀對應的削波信號進行計算,得到每一語音幀對應的自相關函數,并根據特定的采樣率在每一語音幀中選出對應的自相關函數; B 根據預設的分段值,將選出的當前語音幀的自相關函數均分; C:分別依次比較當前語音幀中每段自相關函數中的每兩個自相關函數值的大小,將每段中值最大的自相關函數值作為峰值,得到當前語音幀的自相關函數峰值序列; D 記錄所述當前語音幀的自相關函數峰值序列中每一峰值所對應的位置信息; E 對所述當前語音幀的自相關函數峰值序列進行遍歷,確定音高位置,將特定采樣率及音高位置代入音高計算公式,得到當前語音幀的音高,重復執(zhí)行所述A至E過程,直至得到每一語音幀的音高。
5.如權利要求4所述的方法,其特征在于,所述根據每一語音幀的能量及音高對所述語音信號進行音符切分,得到切分結果的步驟,具體包括依次比較每一語音幀的能量大小,將能量既大于前兩個語音幀又大于后兩個語音幀的當前語音幀的能量作為峰值,直至對比到最后一個語音幀,得到整個語音信號的能量峰值序列;根據所述能量峰值序列中每一個峰值對應的音高,計算得到音符; 根據所述能量峰值序列中每一個峰值,計算得到與所述音符一一對應的音符強度; 根據所述能量峰值序列中每兩個峰值之間的時間間隔,得到與所述音符一一對應的音符時長。
6.一種基于哼唱輸入的記譜裝置,其特征在于,包括分幀模塊、檢測模塊、處理模塊、 計算模塊、切分模塊以及輸出模塊,其中所述分幀模塊,用于根據預置的窗函數對接收到的語音信號進行分幀處理,獲得多個對應的語音幀;所述檢測模塊,用于對所述分幀模塊得到的每一語音幀進行靜音檢測,得到每一語音幀的能量;所述處理模塊,用于對所述分幀模塊得到的每一語音幀進行濾波處理,并對濾波后的信號進行三電平削波處理,得到每一語音幀對應的削波信號;所述計算模塊,用于對所述處理模塊得到的每一語音幀對應的削波信號進行標準自相關計算,根據計算結果提取得到每一語音幀的音高;所述切分模塊,用于根據所述檢測模塊得到的每一語音幀的能量及所述計算模塊得到的每一語音幀的音高對所述語音信號進行音符切分,得到切分結果,所述切分結果包括音符、與所述音符一一對應的音符強度及音符時長;所述輸出模塊,用于根據用戶設置的樂器類型及所述切分模塊得到的切分結果,得到樂譜并輸出。
7.如權利要求6所述的裝置,其特征在于,所述分幀模塊包括加窗單元及幀移單元, 其中所述加窗單元,用于根據預設的窗函數對接收到的語音信號進行分幀處理,獲得多個對應的語音幀;所述幀移單元,用于根據預設的幀移長度對所述加窗單元得到的每一語音幀進行幀移處理,使所述語音幀相互重疊。
8.如權利要求7所述的裝置,其特征在于,所述檢測模塊包括計算存儲單元、比較單元及設置單元,其中所述計算存儲單元,用于計算所述分幀模塊得到的每一語音幀的能量并保存; 所述比較單元,用于比較所述計算存儲單元得到的每一語音幀的能量和預設的閾值的大??;所述設置單元,用于將能量小于預設的閾值的語音幀的音高設置為0。
9.如權利要求8所述的裝置,其特征在于,所述計算模塊包括采樣單元、分段單元、第一對比單元、記錄單元以及確定單元,其中所述采樣單元,用于采用標準自相關函數對所述處理模塊得到每一語音幀對應的削波信號進行計算,得到每一語音幀對應的自相關函數,并根據特定的采樣率在每一語音幀中選出對應的自相關函數;所述分段單元,用于根據預設的分段值,將選出的當前語音幀的自相關函數均分; 所述第一對比單元,用于分別依次比較當前語音幀中所述分段單元得到的每段自相關函數中的每兩個自相關函數值的大小,將每段中值最大的自相關函數值作為峰值,得到當前語音幀的自相關函數峰值序列;所述記錄單元,用于記錄所述對比單元得到的當前語音幀的自相關函數峰值序列中每一峰值所對應的位置信息;所述確定單元,用于對所述對比單元得到的當前語音幀的自相關函數峰值序列進行遍歷,確定音高位置,將特定采樣率及音高位置代入音高計算公式,得到當前語音幀的音高。
10.如權利要求9所述的裝置,其特征在于,所述切分模塊包括第二對比單元、音符單元、音符強度單元以及音符時長單元,其中所述第二對比單元,用于依次比較所述計算存儲單元得到的每一語音幀的能量大小, 將能量既大于前兩個語音幀又大于后兩個語音幀的當前語音幀的能量作為峰值,直至對比到最后一個語音幀,得到整個語音信號的能量峰值序列;所述音符單元,用于根據所述第二對比單元得到的能量峰值序列中每一個峰值對應的音高,計算得到音符;所述音符強度單元,用于根據所述第二對比單元得到的能量峰值序列中每一個峰值, 計算得到與所述音符一一對應的音符強度;所述音符時長單元,用于根據所述第二對比單元得到的能量峰值序列中每兩個峰值之間的時間間隔,得到與所述音符一一對應的音符時長。
全文摘要
本發(fā)明提供了一種基于哼唱輸入的記譜方法及裝置,所述方法包括根據預置的窗函數對接收到的語音信號進行分幀處理,獲得多個語音幀;對每一語音幀進行靜音檢測,得到每一語音幀的能量;對每一語音幀進行濾波處理,并對濾波后的信號進行三電平削波,得到每一語音幀對應的削波信號;對每一語音幀對應的削波信號進行標準自相關計算,根據計算結果提取得到每一語音幀的音高;根據每一語音幀的能量及音高對語音信號進行音符切分,得到切分結果;根據用戶設置的樂器類型及切分結果,得到樂譜并輸出。本發(fā)明還提供了一種基于哼唱輸入的記譜裝置。本發(fā)明的目的在于提供一種基于哼唱輸入的記譜方法及裝置,可實現對哼唱輸入的高精度快速識別及樂譜轉換。
文檔編號G10H5/00GK102568456SQ20111043749
公開日2012年7月11日 申請日期2011年12月23日 優(yōu)先權日2011年12月23日
發(fā)明者趙偉峰 申請人:深圳市萬興軟件有限公司