亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種基頻序列處理方法及裝置與流程

文檔序號(hào):12464832閱讀:485來(lái)源:國(guó)知局
一種基頻序列處理方法及裝置與流程

本發(fā)明實(shí)施例涉及信號(hào)處理技術(shù)領(lǐng)域,具體涉及一種基頻序列處理方法及裝置。



背景技術(shù):

基于內(nèi)容的音頻檢索(英文全稱為Content Based Music Information Retrieval,英文簡(jiǎn)稱為CBMIR)是一種新的音樂(lè)檢索方式,不同于傳統(tǒng)的文本檢索方式,基于內(nèi)容的音頻檢索利用音樂(lè)本身的特征對(duì)其進(jìn)行自動(dòng)分類和匹配,從而取代文本描述的方式檢索音樂(lè),給用戶帶來(lái)更多的便利和更好的用戶體驗(yàn)。哼唱檢索(英文全稱為Query By Singing/Humming,英文簡(jiǎn)稱為QBSH)是一種基于內(nèi)容的音頻檢索方式,其通過(guò)用戶哼唱歌曲片段的方式進(jìn)行檢索,是對(duì)傳統(tǒng)文本檢索的擴(kuò)展,給用戶帶來(lái)了很大的便利。

現(xiàn)有技術(shù)中,哼唱檢索一般是從用戶哼唱的旋律中提取基頻序列,然后將基頻序列與預(yù)設(shè)的曲庫(kù)中的音樂(lè)進(jìn)行相似度計(jì)算,從而獲得匹配結(jié)果。基頻序列提取結(jié)果正確與否對(duì)后續(xù)的匹配結(jié)果影響很大,因此基頻提取就成為一個(gè)重要的研究課題。然而,現(xiàn)有技術(shù)存在的基頻提取方法在準(zhǔn)確率方面還沒(méi)有達(dá)到一個(gè)十分令人滿意的水平。發(fā)明人在實(shí)現(xiàn)本發(fā)明的過(guò)程中發(fā)現(xiàn),當(dāng)語(yǔ)音是一個(gè)干凈的語(yǔ)音時(shí),大部分的基頻提取算法的結(jié)果都很好,但是當(dāng)語(yǔ)音中混有較強(qiáng)的噪聲,或者語(yǔ)音是多個(gè)語(yǔ)音的混合,從而同時(shí)含有多個(gè)基頻的時(shí)候,現(xiàn)有技術(shù)的基頻提取結(jié)果都不十分準(zhǔn)確。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明實(shí)施例提供了一種基頻序列處理方法及裝置,可以提高提取的基頻序列的準(zhǔn)確性。

為此,本發(fā)明實(shí)施例提供如下技術(shù)方案:

一方面,本發(fā)明實(shí)施例提供了一種基頻序列處理方法,所述方法包括:

獲取哼唱旋律對(duì)應(yīng)的基頻序列;

對(duì)所述基頻序列進(jìn)行平滑處理;

刪除平滑處理后的基頻序列的首部和/或尾部存在的靜音部分;

變換處理后的基頻序列,生成音符序列。

進(jìn)一步地,所述對(duì)所述基頻序列進(jìn)行平滑處理包括:

對(duì)所述基頻序列進(jìn)行中值濾波處理和/或線性濾波處理。

進(jìn)一步地,所述對(duì)所述基頻序列進(jìn)行中值濾波處理包括:

獲取所述基頻序列第一時(shí)刻的基頻值;

以所述第一時(shí)刻為中心確定滑動(dòng)時(shí)間窗,獲取所述滑動(dòng)時(shí)間窗內(nèi)各時(shí)刻的基頻值,確定所述各時(shí)刻的基頻值對(duì)應(yīng)的基頻中值;

使用所述基頻中值替換所述第一時(shí)刻的基頻值。

進(jìn)一步地,所述對(duì)所述基頻序列進(jìn)行線性濾波處理包括:

獲取所述基頻序列中第一時(shí)刻的基頻值;

以所述第一時(shí)刻為中心確定滑動(dòng)時(shí)間窗,獲取所述滑動(dòng)時(shí)間窗內(nèi)各時(shí)刻的基頻值,確定所述各時(shí)刻的基頻值對(duì)應(yīng)的加權(quán)平均值;

使用所述加權(quán)平均值替換所述第一時(shí)刻的基頻值。

進(jìn)一步地,所述刪除滑處理后的基頻序列的首部和/或尾部存在的靜音部分包括:

掃描所述基頻序列,將所述基頻序列第一個(gè)非零點(diǎn)之前的部分和/或所述基頻序列最后一個(gè)非零點(diǎn)之后的部分刪除。

進(jìn)一步地,在對(duì)所述基頻序列進(jìn)行平滑處理之后、在變換處理后的基頻序列之前,所述方法還包括:

對(duì)平滑處理后的基頻序列的中間部分存在的靜音部分進(jìn)行補(bǔ)齊處理。

進(jìn)一步地,將平滑處理后的基頻序列的中間部分存在的靜音部分進(jìn)行補(bǔ)齊處理包括:

掃描所述基頻序列,獲取所述基頻序列第一個(gè)非零點(diǎn)之后的零點(diǎn)的位置;

獲取所述零點(diǎn)之前的前N個(gè)點(diǎn)的平均值;N為正整數(shù);

使用所述平均值替換所述零點(diǎn)的值。

進(jìn)一步地,所述變換處理后的基頻序列,生成音符序列包括:

將所述基頻序列從頻率域轉(zhuǎn)換到對(duì)數(shù)域;

獲取基頻軌跡變化點(diǎn),生成基頻階梯;

對(duì)所述基頻階梯進(jìn)行平滑處理,生成音符序列;

合并所述音符序列中的短音符,生成完整的音符序列。

進(jìn)一步地,所述獲取基頻軌跡變化點(diǎn),生成基頻階梯包括:

獲取所述基頻序列中第i個(gè)基頻點(diǎn)的基頻值與第i-1個(gè)基頻點(diǎn)的基頻值之間的差值di,以及,所述基頻序列中第i個(gè)基頻點(diǎn)的基頻值與第i+1個(gè)基頻點(diǎn)的基頻值之間的差值di+1;

當(dāng)確定所述差值di以及差值di+1均大于第一閾值時(shí),則確定所述第i個(gè)基頻點(diǎn)為基頻軌跡變化點(diǎn);

獲取差值di與差值di+1之間的較小值對(duì)應(yīng)的基頻值,使用所述較小值對(duì)應(yīng)的基頻值替換所述基頻軌跡變化點(diǎn)的基頻值。

進(jìn)一步地,所述對(duì)所述基頻階梯進(jìn)行平滑處理,生成音符序列包括:

確定起始位置點(diǎn);

遍歷起始位置點(diǎn)之后的基頻點(diǎn),當(dāng)確定當(dāng)前基頻點(diǎn)與前一基頻點(diǎn)之間的差值大于第二閾值時(shí),獲取起始位置點(diǎn)與所述當(dāng)前基頻點(diǎn)之間的各基頻點(diǎn)的基頻值對(duì)應(yīng)的中值;

使用所述中值替換所述起始位置點(diǎn)與所述當(dāng)前基頻點(diǎn)之間的各基頻點(diǎn)的基頻值。

進(jìn)一步地,所述合并所述音符序列中的短音符,生成完整的音符序列包括:

確定音符序列中的短音符;

使用與所述短音符的鄰近音符中與其距離最小的音符對(duì)應(yīng)的基頻值替換所述短音符的基頻值。

進(jìn)一步地,在對(duì)所述基頻序列進(jìn)行平滑處理之后,在刪除平滑處理后的基頻序列的首部和/或尾部存在的靜音部分之前,所述方法還包括:

對(duì)所述基頻序列進(jìn)行降采樣處理。

另一方面,本發(fā)明實(shí)施例還提供了一種基頻序列處理裝置,所述裝置包括:

基頻序列獲取單元,用于獲取哼唱旋律對(duì)應(yīng)的基頻序列;

第一平滑單元,用于對(duì)所述基頻序列進(jìn)行平滑處理;

靜音刪除單元,用于刪除平滑處理后的基頻序列的首部和/或尾部存在的靜音部分;

生成單元,用于變換處理后的基頻序列,生成音符序列。

另一方面,本發(fā)明實(shí)施例還提供了一種用于基頻序列處理的裝置,包括有存儲(chǔ)器,以及一個(gè)或者一個(gè)以上的程序,其中一個(gè)或者一個(gè)以上程序存儲(chǔ)于存儲(chǔ)器中,且經(jīng)配置以由一個(gè)或者一個(gè)以上處理器執(zhí)行所述一個(gè)或者一個(gè)以上程序包含用于進(jìn)行以下操作的指令:

獲取哼唱旋律對(duì)應(yīng)的基頻序列;

對(duì)所述基頻序列進(jìn)行平滑處理;

刪除平滑處理后的基頻序列的首部和/或尾部存在的靜音部分;

變換處理后的基頻序列,生成音符序列。

進(jìn)一步地,所述處理器還用于執(zhí)行所述一個(gè)或者一個(gè)以上程序包含用于進(jìn)行以下操作的指令:對(duì)所述基頻序列進(jìn)行中值濾波處理和/或線性濾波處理。

進(jìn)一步地,所述處理器還用于執(zhí)行所述一個(gè)或者一個(gè)以上程序包含用于進(jìn)行以下操作的指令:

對(duì)平滑處理后的基頻序列的中間部分存在的靜音部分進(jìn)行補(bǔ)齊處理。

進(jìn)一步地,所述處理器還用于執(zhí)行所述一個(gè)或者一個(gè)以上程序包含用于進(jìn)行以下操作的指令:

掃描所述基頻序列,獲取所述基頻序列第一個(gè)非零點(diǎn)之后的零點(diǎn)的位置;

獲取所述零點(diǎn)之前的前N個(gè)點(diǎn)的平均值;N為正整數(shù);

使用所述平均值替換所述零點(diǎn)的值。

進(jìn)一步地,所述處理器還用于執(zhí)行所述一個(gè)或者一個(gè)以上程序包含用于進(jìn)行以下操作的指令:

將所述基頻序列從頻率域轉(zhuǎn)換到對(duì)數(shù)域;

獲取基頻軌跡變化點(diǎn),生成基頻階梯;

對(duì)所述基頻階梯進(jìn)行平滑處理,生成音符序列;

合并所述音符序列中的短音符,生成完整的音符序列。

進(jìn)一步地,所述處理器還用于執(zhí)行所述一個(gè)或者一個(gè)以上程序包含用于進(jìn) 行以下操作的指令:

在對(duì)所述基頻序列進(jìn)行平滑處理之后,在刪除平滑處理后的基頻序列的首部和/或尾部存在的靜音部分之前,對(duì)所述基頻序列進(jìn)行降采樣處理。

本發(fā)明實(shí)施例提供的基頻序列處理方法及裝置,可以通過(guò)對(duì)提取的基頻序列進(jìn)行平滑處理以消除基頻序列中的異常點(diǎn),提高提取的基頻序列的準(zhǔn)確性。此外,本發(fā)明實(shí)施例提供的方法和裝置還可以通過(guò)靜音刪除和補(bǔ)齊處理,生成完整的基頻序列以便于與實(shí)際的音符序列進(jìn)行比較,提高匹配準(zhǔn)確性。進(jìn)一步地,本發(fā)明實(shí)施例提供的方法和裝置可以通過(guò)對(duì)基頻序列進(jìn)行變換處理,生成音符序列,以更接近普通的曲庫(kù)中的樂(lè)曲,提高匹配準(zhǔn)確性。

附圖說(shuō)明

為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明中記載的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。

圖1為本發(fā)明一實(shí)施例提供的基頻序列處理方法流程圖;

圖2為本發(fā)明另一實(shí)施例提供的基頻序列處理方法流程圖;

圖3為本發(fā)明實(shí)施例提取的原始基頻序列示意圖;

圖4為本發(fā)明實(shí)施例經(jīng)過(guò)中值濾波、降采樣處理后的基頻序列示意圖;

圖5為本發(fā)明實(shí)施例經(jīng)過(guò)前后靜音刪除、中間靜音補(bǔ)齊處理以及轉(zhuǎn)換處理后的基頻序列示意圖;

圖6為本發(fā)明實(shí)施例生成的基頻階梯示意圖;

圖7為對(duì)基頻階梯進(jìn)行平滑處理后的效果示意圖;

圖8為合并短音符后的音符序列示意圖;

圖9為本發(fā)明實(shí)施例提供的基頻序列處理裝置示意圖;

圖10是根據(jù)一示例性實(shí)施例示出的一種用于基頻序列處理的裝置的框圖。

具體實(shí)施方式

基頻提取在語(yǔ)音信號(hào)處理領(lǐng)域是一個(gè)基礎(chǔ)的課題。人在發(fā)音時(shí),根據(jù)聲帶是否震動(dòng)可以將語(yǔ)音信號(hào)分為清音跟濁音兩種。濁音又稱有聲語(yǔ)言,攜帶著語(yǔ)言中大部分的能量,濁音在時(shí)域上呈現(xiàn)出明顯的周期性;而清音類似于白噪聲,沒(méi)有明顯的周期性。發(fā)濁音時(shí),氣流通過(guò)聲門使聲帶產(chǎn)生張弛震蕩式振動(dòng),產(chǎn)生準(zhǔn)周期的激勵(lì)脈沖串。這種聲帶振動(dòng)的頻率稱為基音頻率,相應(yīng)的周期就成為基音周期。基頻提取的最終目的是為了找出和聲帶振動(dòng)頻率完全一致或盡可能相吻合的軌跡曲線。

現(xiàn)有技術(shù)存在的基頻提取方法在準(zhǔn)確率方面還沒(méi)有達(dá)到一個(gè)十分令人滿意的水平。發(fā)明人在實(shí)現(xiàn)本發(fā)明的過(guò)程中發(fā)現(xiàn),當(dāng)語(yǔ)音是一個(gè)干凈的語(yǔ)音時(shí),大部分的基頻提取算法的結(jié)果都很好,但是當(dāng)語(yǔ)音中混有較強(qiáng)的噪聲,或者語(yǔ)音是多個(gè)語(yǔ)音的混合,從而同時(shí)含有多個(gè)基頻的時(shí)候,現(xiàn)有技術(shù)的基頻提取結(jié)果都不十分準(zhǔn)確。其中,發(fā)生基頻提取錯(cuò)誤的類型可以包括:(1)倍頻或者半倍頻,也即提取的基頻是正確基頻值的二倍或者二分之一;(2)基頻丟失;(3)靜音段包含基頻等。

基于此,本發(fā)明實(shí)施例提供了一種基頻序列處理方法及裝置,可以提高提取的基頻序列的準(zhǔn)確性。

為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明中的技術(shù)方案,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本發(fā)明保護(hù)的范圍。

參見(jiàn)圖1,為本發(fā)明一實(shí)施例提供的基頻序列處理方法流程圖。如圖1所示,所述方法可以包括:

S101,獲取哼唱旋律對(duì)應(yīng)的基頻序列。

獲取用戶的哼唱旋律,對(duì)所述哼唱旋律進(jìn)行基頻提取,獲得與所述哼唱旋 律對(duì)應(yīng)的基頻序列(或者稱為基頻軌跡)?;l提取的方法具體可以是靈活多樣的,在此不進(jìn)行限制。較佳地,可以應(yīng)用第一方式提取出第一基頻序列,應(yīng)用第二方式提取出第二基頻序列,應(yīng)用第三方式提取出第三基頻序列。比較所述第一基頻序列、第二基頻序列、第三基頻序列,確定所述第一基頻序列、第二基頻序列、第三基頻序列的基頻值中的中值,由確定的所述中值作為基頻值構(gòu)成第四基頻序列,將所述第四基頻序列作為最終提取的與所述哼唱旋律對(duì)應(yīng)的基頻序列。其中,第一方式、第二方式、第三方式為不同的基頻提取方式。所述第一基頻序列、第二基頻序列、第三基頻序列的基頻值中的中值為將第一基頻序列、第二基頻序列、第三基頻序列的基頻值按照升序或者降序排列處于中間位置的基頻值。舉例說(shuō)明,對(duì)應(yīng)ti時(shí)刻或者第i個(gè)基頻點(diǎn),第一基頻序列的基頻值為f1,第二基頻序列的基頻值為f2,第二基頻序列的基頻值為f3,則將f1、f2、f3按照升序或者降序排列,確定處于中間位置的值為f1,則用所述中值f1作為所述基頻序列在ti時(shí)刻或者第i個(gè)基頻點(diǎn)的基頻值。以此類推,可以確定任意時(shí)刻或者第N個(gè)基頻點(diǎn)的基頻值,由此確定最終的基頻序列。

S102,對(duì)所述基頻序列進(jìn)行平滑處理。

在對(duì)哼唱旋律進(jìn)行基頻提取時(shí),不可避免會(huì)產(chǎn)生一些異常值,表現(xiàn)為在某一時(shí)刻提取的基頻值偏離正常的基頻軌跡,通常是正?;l的兩倍或者二分之一。為了消除這些異常點(diǎn)的影響,本發(fā)明實(shí)施例具體實(shí)現(xiàn)時(shí),對(duì)所述基頻序列進(jìn)行平滑處理,具體例如可以包括:對(duì)所述基頻序列進(jìn)行中值濾波處理和/或線性濾波處理。

其中,中值濾波就是將某個(gè)時(shí)刻t的基頻值替換成以該時(shí)刻為中點(diǎn)的窗內(nèi)中值。具體地,對(duì)應(yīng)第一時(shí)刻,所述第一時(shí)刻可以是基頻序列的任意時(shí)刻,獲取所述基頻序列第一時(shí)刻的基頻值,以所述第一時(shí)刻為中心確定滑動(dòng)時(shí)間窗,獲取所述滑動(dòng)時(shí)間窗內(nèi)各時(shí)刻的基頻值,確定所述各時(shí)刻的基頻值對(duì)應(yīng)的基頻中值;使用所述基頻中值替換所述第一時(shí)刻的基頻值。舉例說(shuō)明,以時(shí)間窗的長(zhǎng)度為5為例進(jìn)行說(shuō)明,對(duì)應(yīng)ti時(shí)刻或者第i個(gè)基頻點(diǎn),待處理的基頻序列的基頻值為f1,以所述ti時(shí)刻或者第i個(gè)基頻點(diǎn)為中心確定滑動(dòng)時(shí)間窗,獲得時(shí)間窗內(nèi)各時(shí)刻的基頻值。例如,ti-2時(shí)刻的基頻值為fi-2,ti-1時(shí)刻的基頻值為fi-1,ti時(shí)刻的基頻值為fi,ti+1時(shí)刻的基頻值為fi+1,,ti+2時(shí)刻的基頻值為fi+2,將 fi-2、fi-1、fi、fi+1、fi+2按照升序或者降序排列,獲取它們的中值作為基頻中值。然后,使用獲取的基頻中值作為ti時(shí)刻或者第i個(gè)基頻點(diǎn)的基頻值,即使用基頻中值替換fi。為了達(dá)到更好的效果,可以對(duì)提取的基頻序列進(jìn)行多次中值濾波處理,對(duì)異常點(diǎn)進(jìn)行校正。

其中,線性濾波就是將某個(gè)時(shí)刻t的基頻值替換成以該時(shí)刻為中點(diǎn)的窗內(nèi)平均值。具體地,對(duì)應(yīng)第一時(shí)刻,所述第一時(shí)刻可以是基頻序列的任意時(shí)刻,獲取所述基頻序列中第一時(shí)刻的基頻值;以所述第一時(shí)刻為中心確定滑動(dòng)時(shí)間窗,獲取所述滑動(dòng)時(shí)間窗內(nèi)各時(shí)刻的基頻值,確定所述各時(shí)刻的基頻值對(duì)應(yīng)的加權(quán)平均值;使用所述加權(quán)平均值替換所述第一時(shí)刻的基頻值。舉例說(shuō)明,以時(shí)間窗的長(zhǎng)度為3為例進(jìn)行說(shuō)明,對(duì)應(yīng)ti時(shí)刻或者第i個(gè)基頻點(diǎn),待處理的基頻序列的基頻值為f1,以所述ti時(shí)刻或者第i個(gè)基頻點(diǎn)為中心確定滑動(dòng)時(shí)間窗,獲得時(shí)間窗內(nèi)各時(shí)刻的基頻值。例如,ti-1時(shí)刻的基頻值為fi-1,ti時(shí)刻的基頻值為fi,ti+1時(shí)刻的基頻值為fi+1,,獲取它們的加權(quán)平均值作為基頻平均值。然后,使用獲取的基頻平均值作為ti時(shí)刻或者第i個(gè)基頻點(diǎn)的基頻值,即使用基頻平均值替換fi。為了達(dá)到更好的效果,可以對(duì)提取的基頻序列進(jìn)行多次線性濾波處理,對(duì)異常點(diǎn)進(jìn)行校正。

當(dāng)然,為了達(dá)到更好的效果,可以進(jìn)行多次平滑處理,每一次處理的方式可以不同,例如可以先對(duì)基頻序列進(jìn)行中值濾波處理,再對(duì)基頻序列進(jìn)行線性濾波處理,反之亦然,由此獲得更好的效果。

S103,刪除平滑處理后的基頻序列的首部和/或尾部存在的靜音部分。

通常,在用戶哼唱旋律的開(kāi)始部分和/或結(jié)束部分會(huì)產(chǎn)生靜音段,為了提高匹配的準(zhǔn)確性,需要將靜音部分刪除。在提取基頻時(shí),靜音段或者靜音部分提取的基頻值為0,因此需要將基頻序列中表示靜音的前置0和/或后置0刪除。前置0是指基頻序列的首部對(duì)應(yīng)的靜音部分意即基頻序列第一個(gè)非零點(diǎn)之前的部分,后置0是指基頻序列的尾部對(duì)應(yīng)的靜音部分意即所述基頻序列最后一個(gè)非零點(diǎn)之后的部分。具體實(shí)現(xiàn)時(shí),可以掃描所述基頻序列,將所述基頻序列第一個(gè)非零點(diǎn)之前的部分和/或所述基頻序列最后一個(gè)非零點(diǎn)之后的部分刪除。需要說(shuō)明的是,可能存在僅在基頻序列的首部或者尾部存在靜音部分的情況,因此只對(duì)基頻序列的首部或者尾部存在的靜音部分進(jìn)行處理即可。

優(yōu)選地,在某些實(shí)施例中,在對(duì)所述基頻序列進(jìn)行平滑處理之后、在變換處理后的基頻序列之前,還可以包括如下步驟:

S104(如圖中虛線框所示,用于表明不是必須的而是優(yōu)選的步驟),對(duì)平滑處理后的基頻序列中間部分存在的靜音部分進(jìn)行補(bǔ)齊處理。

通常,在用戶哼唱過(guò)程中短暫換氣也會(huì)產(chǎn)生短暫的靜音部分。這時(shí),需要對(duì)基頻序列中間部分存在的靜音部分進(jìn)行補(bǔ)齊處理。基頻序列中間部分為基頻序列第一個(gè)非零點(diǎn)之后、最后第一個(gè)非零點(diǎn)之前的那一部分。具體實(shí)現(xiàn)時(shí),可以掃描基頻序列,獲取所述基頻序列第一個(gè)非零點(diǎn)之后的零點(diǎn)的位置;獲取所述零點(diǎn)之前的前N個(gè)點(diǎn)的平均值;使用所述平均值替換所述零點(diǎn)的值。其中,N為正整數(shù)。優(yōu)選的,N為奇數(shù),例如N等于3。需要說(shuō)明的是,在基頻序列中間部分存在的靜音部分進(jìn)行補(bǔ)齊處理時(shí),對(duì)所述中間部分的靜音部分的處理是順序執(zhí)行的,比如基頻序列中間共存在M個(gè)連續(xù)的零點(diǎn),那么先對(duì)第一個(gè)零點(diǎn)進(jìn)行處理,然后執(zhí)行下一個(gè),直到M個(gè)連續(xù)零點(diǎn)全部處理完成。之所以采取當(dāng)前零點(diǎn)的前面N個(gè)點(diǎn)的平均值作為零點(diǎn)的值的原因在于:這種方式對(duì)于序列中間出現(xiàn)連續(xù)多個(gè)零點(diǎn)的情況比較有益。

具體實(shí)現(xiàn)時(shí),S103和S104的順序可以顛倒地執(zhí)行,或者并行地執(zhí)行。

S105,變換處理后的基頻序列,生成音符序列。

由于曲庫(kù)通常是midi格式的,midi格式存儲(chǔ)的是音符,用戶哼唱和音符之間的差異還非常大,需要進(jìn)一步對(duì)用戶哼唱中提取的基頻序列進(jìn)行處理。

具體實(shí)現(xiàn)時(shí),變換處理后的基頻序列,生成音符序列具體可以包括:

S105A,將所述基頻序列從頻率域轉(zhuǎn)換到對(duì)數(shù)域。

原始的基頻序列一般在頻率域,而音符在對(duì)數(shù)域,因此需要將基頻序列從頻率域轉(zhuǎn)換到對(duì)數(shù)域。轉(zhuǎn)換公式為:

N=12*log2(f/440)+69

其中,f是基頻值,N是轉(zhuǎn)換之后的音符值。

S105B,獲取基頻軌跡變化點(diǎn),生成基頻階梯。

當(dāng)基頻軌跡變化比較明顯時(shí),往往意味著用戶在唱下一個(gè)音,利用這個(gè)特點(diǎn)形成基頻階梯。由于提取的基頻序列對(duì)應(yīng)的基頻軌跡往往是一個(gè)漸變的過(guò)程,而音符旋律是一個(gè)個(gè)跳變的音階組成的,因此,本發(fā)明實(shí)施例即試圖通過(guò) 獲取基頻軌跡變化點(diǎn),又可以稱為基頻跳變點(diǎn),將跳變點(diǎn)的部分切斷,以形成音符階梯,使之更接近音符序列。

具體實(shí)現(xiàn)時(shí),獲取所述基頻序列中第i個(gè)基頻點(diǎn)的基頻值與第i-1個(gè)基頻點(diǎn)的基頻值之間的差值di,以及,所述基頻序列中第i個(gè)基頻點(diǎn)的基頻值與第i+1個(gè)基頻點(diǎn)的基頻值之間的差值di+1;當(dāng)確定所述差值di以及差值di+1均大于第一閾值時(shí),則確定所述第i個(gè)基頻點(diǎn)為基頻軌跡變化點(diǎn);獲取差值di與差值di+1之間的較小值對(duì)應(yīng)的基頻值,使用所述較小值對(duì)應(yīng)的基頻值替換所述基頻軌跡變化點(diǎn)的基頻值。舉例說(shuō)明,從前往后遍歷基頻序列或者基頻軌跡,當(dāng)遍歷到第i個(gè)基頻點(diǎn)的時(shí)候,判斷它與兩側(cè)的基頻點(diǎn)的距離是否都大于給定的閾值,如果大于則執(zhí)行替換操作,否則遍歷下一個(gè)點(diǎn)。替換操作為:將第i個(gè)點(diǎn)替換為兩側(cè)中與它更接近的點(diǎn)。

S105C,對(duì)所述基頻階梯進(jìn)行平滑處理,生成音符序列。

通過(guò)S105B獲得的基頻階梯還有很明顯的起伏,與音符相差還較遠(yuǎn),需要進(jìn)一步的平滑處理,順序掃描基頻序列,當(dāng)前后基頻的差值較大時(shí)則對(duì)前面的基頻序列進(jìn)行排序,并用中值替換該部分所有的基頻,形成比例離散的音符序列。具體實(shí)現(xiàn)時(shí),確定起始位置點(diǎn);遍歷起始位置點(diǎn)之后的基頻點(diǎn),當(dāng)確定當(dāng)前基頻點(diǎn)與前一基頻點(diǎn)之間的差值大于第二閾值時(shí),獲取起始位置點(diǎn)與所述當(dāng)前基頻點(diǎn)之間的各基頻點(diǎn)的基頻值對(duì)應(yīng)的中值;使用所述中值替換所述起始位置點(diǎn)與所述當(dāng)前基頻點(diǎn)之間的各基頻點(diǎn)的基頻值。然后,再將當(dāng)前基頻點(diǎn)作為起始位置點(diǎn),繼續(xù)遍歷后續(xù)基頻點(diǎn),直到處理到最后一個(gè)基頻點(diǎn)。舉例說(shuō)明,確定基頻序列的第一個(gè)點(diǎn)為起始位置start=0。從前往后遍歷基頻軌跡,當(dāng)遍歷到第i個(gè)基頻點(diǎn)的時(shí)候,判斷它與前一個(gè)點(diǎn)的距離是否大于給定閾值,如果大于則將從start位置開(kāi)始到當(dāng)前位置結(jié)束的基頻軌跡進(jìn)行排序,獲取該段基頻軌跡的基頻值的中值,并將該段中的基頻值全部替換為中值。修改start位置為當(dāng)前基頻點(diǎn)所在的位置,繼續(xù)遍歷,直到結(jié)束。

S105D,合并所述音符序列中的短音符,生成完整的音符序列。

具體實(shí)現(xiàn)時(shí),確定音符序列中的短音符;使用與所述短音符的鄰近音符中與其距離最小的音符對(duì)應(yīng)的基頻值替換所述短音符的基頻值。一般地,計(jì)算短音符與鄰近音符的距離時(shí),是使用音符的縱坐標(biāo)的差值來(lái)計(jì)算的。例如,獲取 所述短音符與前一音符的差值的絕對(duì)值,以及,所述短音符與后一音符的差值的絕對(duì)值,絕對(duì)值小則認(rèn)為距離越小,將兩個(gè)絕對(duì)值中較小值對(duì)應(yīng)的音符作為與所述短音符距離最小的音符。這樣,通過(guò)將較短的音符與相鄰兩側(cè)音符中距離較小的合并,形成規(guī)整的音符序列。其中,確定音符序列中的短音符的方式可以通過(guò)判斷相同基頻值的連續(xù)點(diǎn)是否過(guò)少。舉例說(shuō)明,遍歷基頻序列,確定具有相同基頻值的點(diǎn)的個(gè)數(shù),如果所述點(diǎn)的個(gè)數(shù)小于設(shè)定閾值,則認(rèn)為所述基頻值對(duì)應(yīng)的點(diǎn)為短音符。又如,可以判斷基頻值相同的點(diǎn)是否連續(xù),連續(xù)的點(diǎn)的個(gè)數(shù)是否超過(guò)設(shè)定閾值,如果未超過(guò),則認(rèn)為這幾個(gè)點(diǎn)對(duì)應(yīng)的基頻值為短音符。設(shè)定閾值可以根據(jù)經(jīng)驗(yàn)設(shè)定,例如等于3。如果規(guī)定閾值為1個(gè)點(diǎn),則等價(jià)于尋找孤立點(diǎn)。

在本發(fā)明實(shí)施例中,通過(guò)對(duì)提取的基頻序列進(jìn)行平滑處理以消除基頻序列中的異常點(diǎn),提高提取的基頻序列的準(zhǔn)確性。此外,本發(fā)明實(shí)施例提供的方法和裝置還可以通過(guò)靜音刪除和補(bǔ)齊處理,生成完整的基頻序列以便于與實(shí)際的音符序列進(jìn)行比較,提高匹配準(zhǔn)確性。進(jìn)一步地,本發(fā)明實(shí)施例提供的方法和裝置可以通過(guò)對(duì)基頻序列進(jìn)行變換處理,生成音符序列,以更接近普通的曲庫(kù)中的樂(lè)曲,提高匹配準(zhǔn)確性。

下面結(jié)合附圖2、3、4、5、6、7、8對(duì)本發(fā)明另一實(shí)施例提供的基頻序列處理方法進(jìn)行描述。參見(jiàn)圖2,為本發(fā)明另一實(shí)施例提供的基頻序列處理方法流程圖,所示方法例如可以包括:

S201,獲取哼唱旋律對(duì)應(yīng)的基頻序列。

具體實(shí)現(xiàn)方式可以參照?qǐng)D1所示實(shí)施例的實(shí)現(xiàn),在此不再贅述。參見(jiàn)圖3,為本發(fā)明實(shí)施例提取的原始基頻序列示意圖。其中,橫坐標(biāo)為時(shí)間(S),縱坐標(biāo)為頻率(Hz),提取的步幅為10ms,意即每10ms進(jìn)行一次基頻提取,提取一個(gè)基頻值。

S202,對(duì)所述基頻序列進(jìn)行中值濾波處理。

在這一實(shí)施例中,可以對(duì)提取的基頻序列進(jìn)行多次中值濾波,以對(duì)異常點(diǎn)進(jìn)行校正。當(dāng)然,本領(lǐng)域技術(shù)人員可以理解,還可以對(duì)所述基頻序列進(jìn)行線性濾波處理,或者二者結(jié)合使用。

S203,對(duì)基頻序列進(jìn)行降采樣處理。

在基頻序列提取過(guò)程中,為了使提取結(jié)果更加準(zhǔn)確,通常提取的步幅會(huì)選擇得很小,例如常見(jiàn)的步幅為10ms,即每10ms提取一個(gè)基頻值。這就會(huì)導(dǎo)致基頻序列非常長(zhǎng)。過(guò)長(zhǎng)的基頻序列會(huì)導(dǎo)致匹配時(shí)間的增加,因此需要對(duì)基頻序列進(jìn)行降采樣。降采樣就是在不影響匹配準(zhǔn)確率的情況下減少基頻序列的長(zhǎng)度。通常的做法是將連續(xù)n個(gè)基頻點(diǎn)求平均值,并用平均值代替。這樣就會(huì)使基頻序列的總長(zhǎng)度減小到原來(lái)的1/n。參見(jiàn)圖4,為本發(fā)明實(shí)施例經(jīng)過(guò)中值濾波、降采樣處理后的基頻序列示意圖。

S204,刪除所述基頻序列的首部和/或尾部存在的靜音部分。

S205,將所述基頻序列中間部分存在的靜音部分進(jìn)行補(bǔ)齊處理。

S206,將處理后的基頻序列從頻率域轉(zhuǎn)換到對(duì)數(shù)域。

參見(jiàn)圖5,為本發(fā)明實(shí)施例經(jīng)過(guò)前后靜音刪除、中間靜音補(bǔ)齊處理以及從頻率域轉(zhuǎn)換到對(duì)數(shù)域后的基頻序列示意圖。由圖4可以看出,提取的基頻序列仍有中間的間斷部分,經(jīng)過(guò)前后靜音刪除和中間靜音補(bǔ)齊處理后,已形成連續(xù)的基頻序列,更接近音符。

S207,獲取基頻軌跡變化點(diǎn),生成基頻階梯。

參見(jiàn)圖6,為本發(fā)明實(shí)施例生成的基頻階梯示意圖。由于提取的基頻序列對(duì)應(yīng)的基頻軌跡往往是一個(gè)漸變的過(guò)程,而音符旋律是一個(gè)個(gè)跳變的音階組成的。故經(jīng)過(guò)上述處理,可以將漸變的基頻軌跡轉(zhuǎn)換成跳變的基頻階梯,使之更接近音符序列。

S208,對(duì)所述基頻階梯進(jìn)行平滑處理,生成音符序列。

參見(jiàn)圖7,為對(duì)基頻階梯進(jìn)行平滑處理后的效果示意圖。由于圖6所示的基頻階梯還有很明顯的起伏,與音符相差還較遠(yuǎn),因此需要對(duì)其進(jìn)行平滑處理。具體是通過(guò)順序掃描基頻序列,當(dāng)前后基頻的差值較大時(shí)則對(duì)前面的基頻序列進(jìn)行排序,并用中值替換該部分所有的基頻,形成比例離散的音符序列。如圖7所示,已形成較離散的音符序列。

S209,合并所述音符序列中的短音符,生成完整的音符序列。

參見(jiàn)圖8,為合并短音符后的音符序列示意圖。對(duì)比圖3中的原始基頻序列,經(jīng)過(guò)各個(gè)步驟的處理,圖8生成的音符序列已經(jīng)有了明顯的區(qū)別。

在這一實(shí)施例中,通過(guò)對(duì)提取的基頻序列進(jìn)行平滑處理,可以將基頻提取部分的異常點(diǎn)刪除。此外,通過(guò)靜音補(bǔ)齊處理,可以將哼唱過(guò)程中的微小間斷補(bǔ)齊。再者,本發(fā)明實(shí)施例通過(guò)對(duì)基頻序列進(jìn)行變換處理,產(chǎn)生音符序列,與一般的midi曲庫(kù)更加相似,從而提高匹配的準(zhǔn)確性。

參見(jiàn)圖9,為本發(fā)明實(shí)施例提供的基頻序列處理裝置示意圖,所示基頻序列處理裝置900可以包括:

基頻序列獲取單元901,用于獲取哼唱旋律對(duì)應(yīng)的基頻序列。

第一平滑單元902,用于對(duì)所述基頻序列進(jìn)行平滑處理。

靜音刪除單元903,用于刪除平滑處理后的基頻序列的首部和/或尾部存在的靜音部分。

生成單元904,用于變換處理后的基頻序列,生成音符序列。

進(jìn)一步地,所述第一平滑單元包括:

中值濾波單元,用于對(duì)所述基頻序列進(jìn)行中值濾波處理;和/或

線性濾波單元,用于對(duì)所述基頻序列進(jìn)行線性濾波處理。

進(jìn)一步地,所述中值濾波單元包括:

第一獲取單元,用于獲取所述基頻序列第一時(shí)刻的基頻值;

第一中值確定單元,用于以所述第一時(shí)刻為中心確定滑動(dòng)時(shí)間窗,獲取所述滑動(dòng)時(shí)間窗內(nèi)各時(shí)刻的基頻值,確定所述各時(shí)刻的基頻值對(duì)應(yīng)的基頻中值;

第一替換單元,用于使用所述基頻中值替換所述第一時(shí)刻的基頻值。

進(jìn)一步地,所述線性濾波單元包括:

第二獲取單元,用于獲取所述基頻序列中第一時(shí)刻的基頻值;

平均值確定單元,用于以所述第一時(shí)刻為中心確定滑動(dòng)時(shí)間窗,獲取所述滑動(dòng)時(shí)間窗內(nèi)各時(shí)刻的基頻值,確定所述各時(shí)刻的基頻值對(duì)應(yīng)的加權(quán)平均值;

第二替換單元,用于使用所述加權(quán)平均值替換所述第一時(shí)刻的基頻值。

進(jìn)一步地,所述靜音刪除單元具體用于:

掃描所述基頻序列,將所述基頻序列第一個(gè)非零點(diǎn)之前的部分和所述基頻序列最后一個(gè)非零點(diǎn)之后的部分刪除。

進(jìn)一步地,所述裝置還包括:

靜音補(bǔ)齊單元,用于對(duì)平滑處理后的所述基頻序列中間部分存在的靜音部分進(jìn)行補(bǔ)齊處理。

進(jìn)一步地,所述靜音補(bǔ)齊單元具體用于:

掃描所述基頻序列,獲取所述基頻序列第一個(gè)非零點(diǎn)之后的零點(diǎn)的位置;獲取所述零點(diǎn)之前的前N個(gè)點(diǎn)的平均值;使用所述平均值替換所述零點(diǎn)的值;N為正整數(shù);。

進(jìn)一步地,所述生成單元包括:

轉(zhuǎn)換單元,用于將所述基頻序列從頻率域轉(zhuǎn)換到對(duì)數(shù)域;

基頻階梯生成單元,用于獲取基頻軌跡變化點(diǎn),生成基頻階梯;

第二平滑單元,用于對(duì)所述基頻階梯進(jìn)行平滑處理,生成音符序列;

合并單元,用于合并所述音符序列中的短音符,生成完整的音符序列。

進(jìn)一步地,所述基頻階梯生成單元包括:

差值獲取單元,用于獲取所述基頻序列中第i個(gè)基頻點(diǎn)的基頻值與第i-1個(gè)基頻點(diǎn)的基頻值之間的差值di,以及,所述基頻序列中第i個(gè)基頻點(diǎn)的基頻值與第i+1個(gè)基頻點(diǎn)的基頻值之間的差值di+1;

第三替換單元,用于當(dāng)確定所述差值di以及差值di+1均大于第一閾值時(shí),則確定所述第i個(gè)基頻點(diǎn)為基頻軌跡變化點(diǎn);獲取差值di與差值di+1之間的較小值對(duì)應(yīng)的基頻值,使用所述較小值對(duì)應(yīng)的基頻值替換所述基頻軌跡變化點(diǎn)的基頻值。

進(jìn)一步地,所述第二平滑單元包括:

確定單元,用于確定起始位置點(diǎn);

第二中值獲取單元,用于遍歷起始位置點(diǎn)之后的基頻點(diǎn),當(dāng)確定當(dāng)前基頻點(diǎn)與前一基頻點(diǎn)之間的差值大于第二閾值時(shí),獲取起始位置點(diǎn)與所述當(dāng)前基頻點(diǎn)之間的各基頻點(diǎn)的基頻值對(duì)應(yīng)的中值;

第四替換單元,用于使用所述中值替換所述起始位置點(diǎn)與所述當(dāng)前基頻點(diǎn)之間的各基頻點(diǎn)的基頻值。

進(jìn)一步地,所述合并單元包括:

短音符確定單元,用于確定音符序列中的短音符;

第五替換單元,用于使用與所述短音符的鄰近音符中與其距離最小的音符 對(duì)應(yīng)的基頻值替換所述短音符的基頻值。

進(jìn)一步地,所述裝置還包括:

降采樣單元,用于在對(duì)所述基頻序列進(jìn)行平滑處理之后,在刪除所述基頻序列的首部和尾部對(duì)應(yīng)的靜音部分之前,對(duì)所述基頻序列進(jìn)行降采樣處理。

其中,本發(fā)明裝置各單元或模塊的設(shè)置可以參照?qǐng)D1所示的方法而實(shí)現(xiàn),在此不贅述。

圖10是根據(jù)一示例性實(shí)施例示出的一種用于基頻序列處理的裝置1000的框圖。例如,裝置1000可以是移動(dòng)電話,計(jì)算機(jī),數(shù)字廣播終端,消息收發(fā)設(shè)備,游戲控制臺(tái),平板設(shè)備,醫(yī)療設(shè)備,健身設(shè)備,個(gè)人數(shù)字助理等。

參照?qǐng)D10,裝置1000可以包括以下一個(gè)或多個(gè)組件:處理組件1002,存儲(chǔ)器1004,電源組件1006,多媒體組件1008,音頻組件1010,輸入/輸出(I/O)的接口1012,傳感器組件1014,以及通信組件1016。

處理組件1002通常控制裝置1000的整體操作,諸如與顯示,電話呼叫,數(shù)據(jù)通信,相機(jī)操作和記錄操作相關(guān)聯(lián)的操作。處理組件1002可以包括一個(gè)或多個(gè)處理器1020來(lái)執(zhí)行指令,以完成上述的方法的全部或部分步驟。此外,處理組件1002可以包括一個(gè)或多個(gè)模塊,便于處理組件1002和其他組件之間的交互。例如,處理部件1002可以包括多媒體模塊,以方便多媒體組件1008和處理組件1002之間的交互。

存儲(chǔ)器1004被配置為存儲(chǔ)各種類型的數(shù)據(jù)以支持在設(shè)備1000的操作。這些數(shù)據(jù)的示例包括用于在裝置1000上操作的任何應(yīng)用程序或方法的指令,聯(lián)系人數(shù)據(jù),電話簿數(shù)據(jù),消息,圖片,視頻等。存儲(chǔ)器1004可以由任何類型的易失性或非易失性存儲(chǔ)設(shè)備或者它們的組合實(shí)現(xiàn),如靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM),電可擦除可編程只讀存儲(chǔ)器(EEPROM),可擦除可編程只讀存儲(chǔ)器(EPROM),可編程只讀存儲(chǔ)器(PROM),只讀存儲(chǔ)器(ROM),磁存儲(chǔ)器,快閃存儲(chǔ)器,磁盤或光盤。

電源組件1006為裝置1000的各種組件提供電力。電源組件1006可以包括電源管理系統(tǒng),一個(gè)或多個(gè)電源,及其他與為裝置1000生成、管理和分配電力相關(guān)聯(lián)的組件。

多媒體組件1008包括在所述裝置1000和用戶之間的提供一個(gè)輸出接口的 屏幕。在一些實(shí)施例中,屏幕可以包括液晶顯示器(LCD)和觸摸面板(TP)。如果屏幕包括觸摸面板,屏幕可以被實(shí)現(xiàn)為觸摸屏,以接收來(lái)自用戶的輸入信號(hào)。觸摸面板包括一個(gè)或多個(gè)觸摸傳感器以感測(cè)觸摸、滑動(dòng)和觸摸面板上的手勢(shì)。所述觸摸傳感器可以不僅感測(cè)觸摸或滑動(dòng)動(dòng)作的邊界,而且還檢測(cè)與所述觸摸或滑動(dòng)操作相關(guān)的持續(xù)時(shí)間和壓力。在一些實(shí)施例中,多媒體組件1008包括一個(gè)前置攝像頭和/或后置攝像頭。當(dāng)設(shè)備1000處于操作模式,如拍攝模式或視頻模式時(shí),前置攝像頭和/或后置攝像頭可以接收外部的多媒體數(shù)據(jù)。每個(gè)前置攝像頭和后置攝像頭可以是一個(gè)固定的光學(xué)透鏡系統(tǒng)或具有焦距和光學(xué)變焦能力。

音頻組件1010被配置為輸出和/或輸入音頻信號(hào)。例如,音頻組件1010包括一個(gè)麥克風(fēng)(MIC),當(dāng)裝置1000處于操作模式,如呼叫模式、記錄模式和語(yǔ)音識(shí)別模式時(shí),麥克風(fēng)被配置為接收外部音頻信號(hào)。所接收的音頻信號(hào)可以被進(jìn)一步存儲(chǔ)在存儲(chǔ)器1004或經(jīng)由通信組件1016發(fā)送。在一些實(shí)施例中,音頻組件1010還包括一個(gè)揚(yáng)聲器,用于輸出音頻信號(hào)。

I/O接口1012為處理組件1002和外圍接口模塊之間提供接口,上述外圍接口模塊可以是鍵盤,點(diǎn)擊輪,按鈕等。這些按鈕可包括但不限于:主頁(yè)按鈕、音量按鈕、啟動(dòng)按鈕和鎖定按鈕。

傳感器組件1014包括一個(gè)或多個(gè)傳感器,用于為裝置1000提供各個(gè)方面的狀態(tài)評(píng)估。例如,傳感器組件1014可以檢測(cè)到設(shè)備1000的打開(kāi)/關(guān)閉狀態(tài),組件的相對(duì)定位,例如所述組件為裝置1000的顯示器和小鍵盤,傳感器組件1014還可以檢測(cè)裝置1000或裝置1000一個(gè)組件的位置改變,用戶與裝置1000接觸的存在或不存在,裝置1000方位或加速/減速和裝置1000的溫度變化。傳感器組件1014可以包括接近傳感器,被配置用來(lái)在沒(méi)有任何的物理接觸時(shí)檢測(cè)附近物體的存在。傳感器組件1014還可以包括光傳感器,如CMOS或CCD圖像傳感器,用于在成像應(yīng)用中使用。在一些實(shí)施例中,該傳感器組件1014還可以包括加速度傳感器,陀螺儀傳感器,磁傳感器,壓力傳感器或溫度傳感器。

通信組件1016被配置為便于裝置1000和其他設(shè)備之間有線或無(wú)線方式的通信。裝置1000可以接入基于通信標(biāo)準(zhǔn)的無(wú)線網(wǎng)絡(luò),如WiFi,2G或3G,或 它們的組合。在一個(gè)示例性實(shí)施例中,通信部件1016經(jīng)由廣播信道接收來(lái)自外部廣播管理系統(tǒng)的廣播信號(hào)或廣播相關(guān)信息。在一個(gè)示例性實(shí)施例中,所述通信部件1016還包括近場(chǎng)通信(NFC)模塊,以促進(jìn)短程通信。例如,在NFC模塊可基于射頻識(shí)別(RFID)技術(shù),紅外數(shù)據(jù)協(xié)會(huì)(IrDA)技術(shù),超寬帶(UWB)技術(shù),藍(lán)牙(BT)技術(shù)和其他技術(shù)來(lái)實(shí)現(xiàn)。

在示例性實(shí)施例中,裝置1000可以被一個(gè)或多個(gè)應(yīng)用專用集成電路(ASIC)、數(shù)字信號(hào)處理器(DSP)、數(shù)字信號(hào)處理設(shè)備(DSPD)、可編程邏輯器件(PLD)、現(xiàn)場(chǎng)可編程門陣列(FPGA)、控制器、微控制器、微處理器或其他電子元件實(shí)現(xiàn),用于執(zhí)行上述方法。

具體地,本發(fā)明實(shí)施例提供了一種用于基頻序列處理的裝置1000,包括有存儲(chǔ)器1004,以及一個(gè)或者一個(gè)以上的程序,其中一個(gè)或者一個(gè)以上程序存儲(chǔ)于存儲(chǔ)器1004中,且經(jīng)配置以由一個(gè)或者一個(gè)以上處理器1020執(zhí)行所述一個(gè)或者一個(gè)以上程序包含用于進(jìn)行以下操作的指令:

獲取哼唱旋律對(duì)應(yīng)的基頻序列;

對(duì)所述基頻序列進(jìn)行平滑處理;

刪除平滑處理后的基頻序列的首部和/或尾部存在的靜音部分;

變換處理后的基頻序列,生成音符序列。

進(jìn)一步地,所述處理器1020還用于執(zhí)行所述一個(gè)或者一個(gè)以上程序包含用于進(jìn)行以下操作的指令:對(duì)所述基頻序列進(jìn)行中值濾波處理和/或線性濾波處理。

進(jìn)一步地,所述處理器1020還用于執(zhí)行所述一個(gè)或者一個(gè)以上程序包含用于進(jìn)行以下操作的指令:

對(duì)平滑處理后的基頻序列的中間部分存在的靜音部分進(jìn)行補(bǔ)齊處理。

進(jìn)一步地,所述處理器1020還用于執(zhí)行所述一個(gè)或者一個(gè)以上程序包含用于進(jìn)行以下操作的指令:

掃描所述基頻序列,獲取所述基頻序列第一個(gè)非零點(diǎn)之后的零點(diǎn)的位置;

獲取所述零點(diǎn)之前的前N個(gè)點(diǎn)的平均值;N為正整數(shù);

使用所述平均值替換所述零點(diǎn)的值。

進(jìn)一步地,所述處理器1020還用于執(zhí)行所述一個(gè)或者一個(gè)以上程序包含 用于進(jìn)行以下操作的指令:

將所述基頻序列從頻率域轉(zhuǎn)換到對(duì)數(shù)域;

獲取基頻軌跡變化點(diǎn),生成基頻階梯;

對(duì)所述基頻階梯進(jìn)行平滑處理,生成音符序列;

合并所述音符序列中的短音符,生成完整的音符序列。

進(jìn)一步地,所述處理器1020還用于執(zhí)行所述一個(gè)或者一個(gè)以上程序包含用于進(jìn)行以下操作的指令:

在對(duì)所述基頻序列進(jìn)行平滑處理之后,在刪除平滑處理后的基頻序列的首部和/或尾部存在的靜音部分之前,對(duì)所述基頻序列進(jìn)行降采樣處理。

在示例性實(shí)施例中,還提供了一種包括指令的非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),例如包括指令的存儲(chǔ)器1004,上述指令可由裝置1000的處理器1020執(zhí)行以完成上述方法。例如,所述非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是ROM、隨機(jī)存取存儲(chǔ)器(RAM)、CD-ROM、磁帶、軟盤和光數(shù)據(jù)存儲(chǔ)設(shè)備等。

一種非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),當(dāng)所述存儲(chǔ)介質(zhì)中的指令由電子設(shè)備的處理器執(zhí)行時(shí),使得電子設(shè)備能夠執(zhí)行一種基頻序列處理方法,所述方法包括:

獲取哼唱旋律對(duì)應(yīng)的基頻序列;

對(duì)所述基頻序列進(jìn)行平滑處理;

刪除平滑處理后的基頻序列的首部和尾部存在的靜音部分;

變換處理后的基頻序列,生成音符序列。

本領(lǐng)域技術(shù)人員在考慮說(shuō)明書(shū)及實(shí)踐這里公開(kāi)的發(fā)明后,將容易想到本發(fā)明的其它實(shí)施方案。本發(fā)明旨在涵蓋本發(fā)明的任何變型、用途或者適應(yīng)性變化,這些變型、用途或者適應(yīng)性變化遵循本發(fā)明的一般性原理并包括本公開(kāi)未公開(kāi)的本技術(shù)領(lǐng)域中的公知常識(shí)或慣用技術(shù)手段。說(shuō)明書(shū)和實(shí)施例僅被視為示例性的,本發(fā)明的真正范圍和精神由下面的權(quán)利要求指出。

應(yīng)當(dāng)理解的是,本發(fā)明并不局限于上面已經(jīng)描述并在附圖中示出的精確結(jié)構(gòu),并且可以在不脫離其范圍進(jìn)行各種修改和改變。本發(fā)明的范圍僅由所附的權(quán)利要求來(lái)限制

以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的 精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。

需要說(shuō)明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語(yǔ)僅僅用來(lái)將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開(kāi)來(lái),而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語(yǔ)“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒(méi)有明確列出的其他要素,或者是還包括為這種過(guò)程、方法、物品或者設(shè)備所固有的要素。在沒(méi)有更多限制的情況下,由語(yǔ)句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過(guò)程、方法、物品或者設(shè)備中還存在另外的相同要素。本發(fā)明可以在由計(jì)算機(jī)執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的一般上下文中描述,例如程序模塊。一般地,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等等。也可以在分布式計(jì)算環(huán)境中實(shí)踐本發(fā)明,在這些分布式計(jì)算環(huán)境中,由通過(guò)通信網(wǎng)絡(luò)而被連接的遠(yuǎn)程處理設(shè)備來(lái)執(zhí)行任務(wù)。在分布式計(jì)算環(huán)境中,程序模塊可以位于包括存儲(chǔ)設(shè)備在內(nèi)的本地和遠(yuǎn)程計(jì)算機(jī)存儲(chǔ)介質(zhì)中。

本說(shuō)明書(shū)中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,各個(gè)實(shí)施例之間相同相似的部分互相參見(jiàn)即可,每個(gè)實(shí)施例重點(diǎn)說(shuō)明的都是與其他實(shí)施例的不同之處。尤其,對(duì)于裝置實(shí)施例而言,由于其基本相似于方法實(shí)施例,所以描述得比較簡(jiǎn)單,相關(guān)之處參見(jiàn)方法實(shí)施例的部分說(shuō)明即可。以上所描述的裝置實(shí)施例僅僅是示意性的,其中所述作為分離部件說(shuō)明的單元可以是或者也可以不是物理上分開(kāi)的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部模塊來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動(dòng)的情況下,即可以理解并實(shí)施。以上所述僅是本發(fā)明的具體實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本發(fā)明的保護(hù)范圍。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1