演唱歌曲熟識(shí)廣度檢測(cè)方法和裝置的制造方法
【專利摘要】本發(fā)明涉及一種演唱歌曲熟識(shí)廣度檢測(cè)方法和裝置。所述方法包括:獲取演唱等級(jí),選取與所述演唱等級(jí)對(duì)應(yīng)的歌曲;獲取用戶根據(jù)所述選取的歌曲錄制的音頻數(shù)據(jù);提取所述錄制的音頻數(shù)據(jù)中的旋律特征,得到用戶的旋律特征;將所述用戶的旋律特征與所述選取的歌曲的原始旋律特征進(jìn)行比對(duì),得到相似度值;判斷所述相似度值是否大于預(yù)設(shè)的閾值,若是,則提示檢測(cè)結(jié)束,將所述演唱等級(jí)作為演唱歌曲熟識(shí)廣度等級(jí),并輸出所述演唱歌曲熟識(shí)廣度等級(jí),若否,則表示所述用戶通過(guò)所述演唱等級(jí),并獲取所述演唱等級(jí)的相鄰下一演唱等級(jí),繼續(xù)循環(huán)執(zhí)行。實(shí)現(xiàn)了檢測(cè)出用戶的演唱歌曲熟識(shí)廣度。
【專利說(shuō)明】
演唱歌曲熟識(shí)廣度檢測(cè)方法和裝置
技術(shù)領(lǐng)域
[0001] 本發(fā)明涉及計(jì)算機(jī)應(yīng)用領(lǐng)域,特別是涉及一種演唱歌曲熟識(shí)廣度檢測(cè)方法和裝 置。
【背景技術(shù)】
[0002] 隨著計(jì)算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù)的發(fā)展,越來(lái)越多的用戶通過(guò)網(wǎng)絡(luò)從事各種社交活 動(dòng),豐富自己的生活,同時(shí)也享受網(wǎng)絡(luò)帶來(lái)的便捷。例如,以往用戶通常在提供音樂(lè)設(shè)備的 場(chǎng)所演唱自己熟悉的歌曲,目前用戶可直接錄制歌曲并上傳到網(wǎng)絡(luò),然而用戶通常只會(huì)演 唱自己所熟悉的歌曲,無(wú)法了解自己對(duì)歌曲的熟識(shí)廣度。
【發(fā)明內(nèi)容】
[0003] 基于此,有必要針對(duì)用戶無(wú)法了解對(duì)歌曲的熟識(shí)廣度的問(wèn)題,提供一種演唱歌曲 熟識(shí)廣度檢測(cè)方法,能檢測(cè)出演唱歌曲熟識(shí)廣度。
[0004] 此外,還有必要提供一種演唱歌曲熟識(shí)廣度檢測(cè)裝置,能檢測(cè)出演唱歌曲熟識(shí)廣 度。
[0005] -種演唱歌曲熟識(shí)廣度檢測(cè)方法,包括:
[0006] 步驟A,獲取演唱等級(jí),選取與所述演唱等級(jí)對(duì)應(yīng)的歌曲;
[0007] 步驟B,獲取用戶根據(jù)所述選取的歌曲演唱并錄制的音頻數(shù)據(jù);
[0008] 步驟C,提取所述錄制的音頻數(shù)據(jù)中的旋律特征,得到用戶的旋律特征;
[0009] 步驟D,將所述用戶的旋律特征與所述選取的歌曲的原始旋律特征進(jìn)行比對(duì),得到 檢測(cè)值;
[0010] 步驟E,判斷所述檢測(cè)值是否大于預(yù)設(shè)的閾值,若是,則提示檢測(cè)結(jié)束,將所述演唱 等級(jí)作為演唱歌曲熟識(shí)廣度等級(jí),并輸出所述演唱歌曲熟識(shí)廣度等級(jí),若否,則表示所述用 戶通過(guò)所述演唱等級(jí),并獲取所述演唱等級(jí)的相鄰下一演唱等級(jí),繼續(xù)循環(huán)執(zhí)行步驟A至E。
[0011] -種演唱歌曲熟識(shí)廣度檢測(cè)裝置,包括:
[0012] 選取模塊,用于獲取演唱等級(jí),選取與所述演唱等級(jí)對(duì)應(yīng)的歌曲;
[0013] 音頻數(shù)據(jù)獲取模塊,用于獲取用戶根據(jù)所述選取的歌曲演唱并錄制的音頻數(shù)據(jù);
[0014] 提取模塊,用于提取所述錄制的音頻數(shù)據(jù)中的旋律特征,得到用戶的旋律特征;
[0015] 比對(duì)模塊,用于將所述用戶的旋律特征與所述選取的歌曲的原始旋律特征進(jìn)行比 對(duì),得到檢測(cè)值;
[0016] 判斷模塊,用于判斷所述檢測(cè)值是否大于預(yù)設(shè)的閾值;
[0017] 輸出模塊,用于在判斷出所述檢測(cè)值大于預(yù)設(shè)的閾值,提示檢測(cè)結(jié)束,將所述演唱 等級(jí)作為演唱歌曲熟識(shí)廣度等級(jí),并輸出所述演唱歌曲熟識(shí)廣度等級(jí);
[0018] 進(jìn)入模塊,用于在判斷出所述相似度值小于或等于預(yù)設(shè)的閾值,表示所述用戶通 過(guò)所述演唱等級(jí),并獲取所述演唱等級(jí)的相鄰下一演唱等級(jí),繼續(xù)由所述選取模塊、音頻數(shù) 據(jù)獲取模塊、提取模塊、比對(duì)模塊、判斷模塊、輸出模塊和進(jìn)入模塊循環(huán)執(zhí)行。
[0019] 上述演唱歌曲熟識(shí)廣度檢測(cè)方法和裝置,獲取演唱等級(jí),選取與演唱等級(jí)對(duì)應(yīng)的 歌曲,錄制用戶根據(jù)所選歌曲進(jìn)行演唱的音頻數(shù)據(jù),提取錄制的音頻數(shù)據(jù)中的旋律特征,得 到用戶旋律特征,將用戶旋律特征與原始旋律特征比對(duì)得到檢測(cè)值,檢測(cè)值大于預(yù)設(shè)的閾 值,則將該演唱等級(jí)作為演唱歌曲熟識(shí)廣度等級(jí),并輸出,作為該用戶的演唱歌曲熟識(shí)廣度 等級(jí),若小于或等于預(yù)設(shè)的閾值,則繼續(xù)獲取下一演唱等級(jí),再選取對(duì)應(yīng)的歌曲進(jìn)行檢測(cè), 直到檢測(cè)出該用戶的演唱歌曲熟識(shí)廣度等級(jí),實(shí)現(xiàn)了檢測(cè)出用戶的演唱歌曲熟識(shí)廣度。
【附圖說(shuō)明】
[0020] 圖1A為一個(gè)實(shí)施例中終端的內(nèi)部結(jié)構(gòu)示意圖;
[0021] 圖1B為一個(gè)實(shí)施例中服務(wù)器的內(nèi)部結(jié)構(gòu)示意圖;
[0022] 圖2為一個(gè)實(shí)施例中演唱歌曲熟識(shí)廣度檢測(cè)方法的流程圖;
[0023]圖3為一個(gè)實(shí)施例中提取該錄制的音頻數(shù)據(jù)中的旋律特征,得到用戶的旋律特征 的具體流程圖;
[0024] 圖4為一個(gè)實(shí)施例中將該用戶的旋律特征與該選取的歌曲的原始旋律特征進(jìn)行比 對(duì),得到檢測(cè)值的具體流程圖;
[0025] 圖5A為一個(gè)實(shí)施例中演唱歌曲熟識(shí)廣度檢測(cè)裝置的結(jié)構(gòu)框圖;
[0026] 圖5B為另一個(gè)實(shí)施例中演唱歌曲熟識(shí)廣度檢測(cè)裝置的結(jié)構(gòu)框圖;
[0027] 圖6為另一個(gè)實(shí)施例中演唱歌曲熟識(shí)廣度檢測(cè)裝置的結(jié)構(gòu)框圖;
[0028] 圖7為一個(gè)實(shí)施例中提取模塊的內(nèi)部結(jié)構(gòu)框圖;
[0029] 圖8為一個(gè)實(shí)施例中比對(duì)模塊的內(nèi)部結(jié)構(gòu)框圖;
[0030] 圖9為另一個(gè)實(shí)施例中演唱歌曲熟識(shí)廣度檢測(cè)裝置的結(jié)構(gòu)框圖。
【具體實(shí)施方式】
[0031] 為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì) 本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并 不用于限定本發(fā)明。
[0032] 圖1A為一個(gè)實(shí)施例中終端(或電子設(shè)備等)的內(nèi)部結(jié)構(gòu)示意圖。如圖1A所示,該終 端包括通過(guò)系統(tǒng)總線連接的處理器、非易失性存儲(chǔ)介質(zhì)、內(nèi)存儲(chǔ)器、網(wǎng)絡(luò)接口、聲音采集裝 置、揚(yáng)聲器、顯示屏和輸入裝置。其中,終端的非易失性存儲(chǔ)介質(zhì)存儲(chǔ)有操作系統(tǒng),還包括一 種演唱歌曲熟識(shí)廣度檢測(cè)裝置,該演唱歌曲熟識(shí)廣度檢測(cè)裝置用于實(shí)現(xiàn)一種演唱歌曲熟識(shí) 廣度檢測(cè)方法。該處理器用于提供計(jì)算和控制能力,支撐整個(gè)終端的運(yùn)行。終端中的內(nèi)存儲(chǔ) 器為非易失性存儲(chǔ)介質(zhì)中的演唱歌曲熟識(shí)廣度檢測(cè)裝置的運(yùn)行提供環(huán)境,該內(nèi)存儲(chǔ)器中可 儲(chǔ)存有計(jì)算機(jī)可讀指令,該計(jì)算機(jī)可讀指令被所述處理器執(zhí)行時(shí),可使得所述處理器執(zhí)行 一種演唱歌曲熟識(shí)廣度檢測(cè)方法。網(wǎng)絡(luò)接口用于與服務(wù)器進(jìn)行網(wǎng)絡(luò)通信等。終端的顯示屏 可以是液晶顯示屏或者電子墨水顯示屏等,輸入裝置可以是顯示屏上覆蓋的觸摸層,也可 以是終端外殼上設(shè)置的按鍵、軌跡球或觸控板,也可以是外接的鍵盤、觸控板或鼠標(biāo)等。該 終端可以是手機(jī)、平板電腦或者個(gè)人數(shù)字助理或穿戴式設(shè)備等。本領(lǐng)域技術(shù)人員可以理解, 圖1A中示出的結(jié)構(gòu),僅僅是與本申請(qǐng)方案相關(guān)的部分結(jié)構(gòu)的框圖,并不構(gòu)成對(duì)本申請(qǐng)方案 所應(yīng)用于其上的終端的限定,具體的終端可以包括比圖中所示更多或更少的部件,或者組 合某些部件,或者具有不同的部件布置。
[0033] 圖1B為一個(gè)實(shí)施例中服務(wù)器(或云端等)的內(nèi)部結(jié)構(gòu)示意圖。如圖1B所示,該服務(wù) 器包括通過(guò)系統(tǒng)總線連接的處理器、非易失性存儲(chǔ)介質(zhì)、內(nèi)存儲(chǔ)器和網(wǎng)絡(luò)接口。其中,該服 務(wù)器的非易失性存儲(chǔ)介質(zhì)存儲(chǔ)有操作系統(tǒng)、數(shù)據(jù)庫(kù)和演唱歌曲熟識(shí)廣度檢測(cè)裝置,數(shù)據(jù)庫(kù) 中存儲(chǔ)有歌曲、演唱等級(jí)、歌曲與演唱等級(jí)的對(duì)應(yīng)關(guān)系等,該演唱歌曲熟識(shí)廣度檢測(cè)裝置用 于實(shí)現(xiàn)適用于服務(wù)器的一種演唱歌曲熟識(shí)廣度檢測(cè)方法。該服務(wù)器的處理器用于提供計(jì)算 和控制能力,支撐整個(gè)服務(wù)器的運(yùn)行。該服務(wù)器的內(nèi)存儲(chǔ)器為非易失性存儲(chǔ)介質(zhì)中的演唱 歌曲熟識(shí)廣度檢測(cè)裝置的運(yùn)行提供環(huán)境,該內(nèi)存儲(chǔ)器中可儲(chǔ)存有計(jì)算機(jī)可讀指令,該計(jì)算 機(jī)可讀指令被所述處理器執(zhí)行時(shí),可使得所述處理器執(zhí)行一種演唱歌曲熟識(shí)廣度檢測(cè)方 法。該服務(wù)器的網(wǎng)絡(luò)接口用于據(jù)以與外部的終端通過(guò)網(wǎng)絡(luò)連接通信等。服務(wù)器可以用獨(dú)立 的服務(wù)器或者是多個(gè)服務(wù)器組成的服務(wù)器集群來(lái)實(shí)現(xiàn)。本領(lǐng)域技術(shù)人員可以理解,圖1B中 示出的結(jié)構(gòu),僅僅是與本申請(qǐng)方案相關(guān)的部分結(jié)構(gòu)的框圖,并不構(gòu)成對(duì)本申請(qǐng)方案所應(yīng)用 于其上的服務(wù)器的限定,具體的服務(wù)器可以包括比圖中所示更多或更少的部件,或者組合 某些部件,或者具有不同的部件布置。
[0034] 圖2為一個(gè)實(shí)施例中演唱歌曲熟識(shí)廣度檢測(cè)方法的流程圖。如圖2所示,一種演唱 歌曲熟識(shí)廣度檢測(cè)方法,包括:
[0035] 步驟202,獲取演唱等級(jí),選取與該演唱等級(jí)對(duì)應(yīng)的歌曲。
[0036]本實(shí)施例中,演唱等級(jí)是指將演唱歌曲分成多個(gè)演唱等級(jí)后,用戶待檢測(cè)的演唱 等級(jí)。
[0037]獲取用戶標(biāo)識(shí)所對(duì)應(yīng)的用戶已通過(guò)的演唱等級(jí)k,判斷已通過(guò)的演唱等級(jí)k是否為 最大演唱等級(jí),若是,則認(rèn)為用戶已經(jīng)通過(guò)全部的演唱等級(jí),結(jié)束本次檢測(cè),并提示已經(jīng)通 過(guò)全部的演唱等級(jí),若否,將已通過(guò)的演唱等級(jí)k增加1作為要檢測(cè)的演唱等級(jí),隨機(jī)從要檢 測(cè)的演唱等級(jí)k+Ι對(duì)應(yīng)的歌曲中選取一首或多首歌曲。
[0038] 可由終端獲取演唱等級(jí),選取與演唱等級(jí)對(duì)應(yīng)的歌曲;也可由終端獲取演唱等級(jí), 并上傳到服務(wù)器,由服務(wù)器根據(jù)上傳的演唱等級(jí),選取與該演唱等級(jí)對(duì)應(yīng)的歌曲,并返回選 取的歌曲到終端。
[0039] 在一個(gè)實(shí)施例中,在該獲取演唱等級(jí),選取與該演唱等級(jí)對(duì)應(yīng)的歌曲的步驟之前, 還包括:獲取音樂(lè)庫(kù)中的歌曲的流傳度;按照該歌曲的流傳度從高到低進(jìn)行排序;將排序后 的歌曲劃分為第一數(shù)量個(gè)演唱等級(jí),每個(gè)演唱等級(jí)包括第二數(shù)量首歌曲,且流傳度高的歌 曲所屬的演唱等級(jí)低。
[0040] 本實(shí)施例中,音樂(lè)庫(kù)是指用于存儲(chǔ)歌曲的數(shù)據(jù)庫(kù)。流傳度是指歌曲被流傳的程度。 第一數(shù)量和第二數(shù)量可根據(jù)需要設(shè)定。第一數(shù)量采用η表示,第二數(shù)量采用t表示。η和t均為 自然數(shù)。演唱等級(jí)越低的歌曲流傳度越高。演唱等級(jí)越低對(duì)應(yīng)的演唱難度越小。演唱等級(jí)可 采用1至η表示。演唱等級(jí)1級(jí)表示演唱等級(jí)最小,演唱等級(jí)η級(jí)表示演唱等級(jí)最大,也可采用 其他方式表不。
[0041] 在一個(gè)實(shí)施例中,上述演唱歌曲熟識(shí)廣度檢測(cè)方法還包括:獲取音樂(lè)庫(kù)中的歌曲 的流傳度之前,獲取音樂(lè)庫(kù)中各歌曲對(duì)應(yīng)的歌曲被演唱數(shù)量、歌曲已上線時(shí)間和歌曲收聽(tīng) 數(shù)量;根據(jù)各歌曲對(duì)應(yīng)的歌曲被演唱數(shù)量、歌曲已上線時(shí)間和歌曲收聽(tīng)數(shù)量通過(guò)加權(quán)得到 各歌曲對(duì)應(yīng)的流傳度。
[0042]歌曲被演唱數(shù)量是指歌曲被演唱的總次數(shù)。歌曲已上線時(shí)間是指歌曲位于指定網(wǎng) 絡(luò)平臺(tái)上的時(shí)長(zhǎng)。歌曲收聽(tīng)數(shù)量是指歌曲被收聽(tīng)的總次數(shù)。
[0043]根據(jù)歌曲對(duì)應(yīng)的歌曲被演唱數(shù)量、歌曲已上線時(shí)間和歌曲收聽(tīng)數(shù)量通過(guò)加權(quán)得到 各歌曲對(duì)應(yīng)的流傳度f(wàn)的計(jì)算公式如公式(1)。
[0044] f (X, y, z) = aox+aiy+a2Z+a3 (1)
[0045] 其中,x表示歌曲被演唱數(shù)量,y表示歌曲已上線時(shí)間,z表示歌曲收聽(tīng)數(shù)量,aom、 a2、a3均為系數(shù)。歌曲被演唱數(shù)量越大、歌曲被收聽(tīng)數(shù)量越大、歌曲已上線時(shí)間越短的歌曲的 流轉(zhuǎn)度越高。
[0046] 步驟204,獲取用戶根據(jù)該選取的歌曲錄制的音頻數(shù)據(jù)。
[0047] 在一個(gè)實(shí)施例中,可獲取用戶根據(jù)選取的歌曲進(jìn)行清唱并錄制的音頻數(shù)據(jù)。清唱 時(shí)不會(huì)播放所選取的歌曲,由用戶直接演唱。
[0048] 在一個(gè)實(shí)施例中,在獲取用戶根據(jù)選取的歌曲錄制的音頻數(shù)據(jù)之前,播放所述選 取的歌曲的伴奏。獲取用戶根據(jù)選取的歌曲并按照播放的伴奏錄制的音頻數(shù)據(jù)。
[0049] 在一個(gè)實(shí)施例中,在獲取用戶根據(jù)選取的歌曲錄制的音頻數(shù)據(jù)之前,根據(jù)選取的 歌曲播放用于伴唱的提示音。
[0050] 伴唱的提示音是用于輔助用戶尋找歌詞和曲調(diào)的。在終端上根據(jù)選取的歌曲播放 用于伴唱的提示音,該用于伴唱的提示音是所選歌曲的一部分內(nèi)容,例如前奏部分。在播放 提示音時(shí),在終端上展示選取的歌曲信息。該歌曲信息可包括歌曲名、歌手名、專輯名等。
[0051] 在一個(gè)實(shí)施例中,根據(jù)選取的歌曲播放用于伴唱的提示音包括:根據(jù)該選取的歌 曲播放不超過(guò)第一預(yù)設(shè)時(shí)長(zhǎng)的用于伴唱的提示音。
[0052] 獲取用戶根據(jù)該選取的歌曲錄制的音頻數(shù)據(jù)的步驟包括:獲取用戶根據(jù)該用于伴 唱的提示音錄制的超過(guò)第二預(yù)設(shè)時(shí)長(zhǎng)的音頻數(shù)據(jù)。
[0053]第一預(yù)設(shè)時(shí)長(zhǎng)和第二預(yù)設(shè)時(shí)長(zhǎng)可根據(jù)需要設(shè)定。如第一預(yù)設(shè)時(shí)長(zhǎng)可為15秒,第二 預(yù)設(shè)時(shí)長(zhǎng)可為20秒。歌曲被選取出來(lái)后,在終端上播放歌曲的一部分內(nèi)容,如前奏等。播放 的提示音不超過(guò)第一預(yù)設(shè)時(shí)長(zhǎng)是為了減少給用戶過(guò)多的提示,避免造成檢測(cè)的不準(zhǔn)確。獲 取用戶根據(jù)提示音進(jìn)行演唱該選取的歌曲的任意一段,并對(duì)用戶演唱的數(shù)據(jù)進(jìn)行錄制,錄 制的音頻數(shù)據(jù)要超過(guò)第二預(yù)設(shè)時(shí)長(zhǎng)。錄制的音頻數(shù)據(jù)超過(guò)第二預(yù)設(shè)時(shí)長(zhǎng)的目的是為了更多 的錄制用戶演唱歌曲的音頻數(shù)據(jù),避免錄制的音頻數(shù)據(jù)過(guò)短,后續(xù)檢測(cè)不準(zhǔn)確。
[0054]步驟206,提取該錄制的音頻數(shù)據(jù)中的旋律特征,得到用戶的旋律特征。
[0055] 本實(shí)施例中,旋律特征可包括三元組序列。三元組序列中的每個(gè)三元組包括三元 組的起始時(shí)間、三元組的音符值和三元組的持續(xù)時(shí)間。
[0056] 步驟208,將該用戶的旋律特征與該選取的歌曲的原始旋律特征進(jìn)行比對(duì),得到檢 測(cè)值。
[0057] 本實(shí)施例中,獲取選取的歌曲的原始旋律特征,將用戶的旋律特征與選取的歌曲 的原始旋律特征進(jìn)行比對(duì),即將用戶的三元組序列與選取的歌曲的原始三元組序列進(jìn)行計(jì) 算得到檢測(cè)值。該檢測(cè)值可為誤差值。檢測(cè)值可用來(lái)評(píng)測(cè)用戶是否通過(guò)演唱等級(jí)。
[0058]步驟210,判斷該檢測(cè)值是否大于預(yù)設(shè)的閾值,若是,執(zhí)行步驟212,若否,獲取該演 唱等級(jí)相鄰的下一演唱等級(jí),執(zhí)行步驟202。
[0059]本實(shí)施例中,預(yù)設(shè)的閾值可根據(jù)需要設(shè)定。
[0060] 步驟212,提示檢測(cè)結(jié)束,將該演唱等級(jí)作為演唱歌曲熟識(shí)廣度等級(jí),并輸出該演 唱歌曲熟識(shí)廣度等級(jí)。
[0061] 步驟206至步驟212可在終端或服務(wù)器上執(zhí)行。
[0062]判斷檢測(cè)值是否大于預(yù)設(shè)的閾值,若是,則提示檢測(cè)結(jié)束,將本次的演唱等級(jí)作為 演唱歌曲熟識(shí)廣度等級(jí),輸出該演唱歌曲熟識(shí)廣度等級(jí),若否,則表示該用戶通過(guò)該演唱等 級(jí),并將本次的演唱等級(jí)增加1,獲取本次的演唱等級(jí)的相鄰下一演唱等級(jí),繼續(xù)執(zhí)行步驟 202至步驟210,選取與相鄰下一演唱等級(jí)對(duì)應(yīng)的歌曲,獲取用戶根據(jù)選取的歌曲錄制的音 頻數(shù)據(jù),提取該錄制的音頻數(shù)據(jù)中的旋律特征,得到用戶的旋律特征,將該用戶的旋律特征 與選取的歌曲的原始旋律特征進(jìn)行比對(duì),得到檢測(cè)值,判斷檢測(cè)值是否大于預(yù)設(shè)的閾值,若 是,提示檢測(cè)結(jié)束,將該演唱等級(jí)作為演唱歌曲熟識(shí)廣度等級(jí),并輸出該演唱歌曲熟識(shí)廣度 等級(jí),若否,將本次演唱等級(jí)增加1,如此循環(huán),直到提示檢測(cè)結(jié)束,或者預(yù)設(shè)的所有的演唱 等級(jí)全部通過(guò)。
[0063] 上述演唱歌曲熟識(shí)廣度檢測(cè)方法,獲取演唱等級(jí),選取與演唱等級(jí)對(duì)應(yīng)的歌曲,錄 制用戶根據(jù)選取的歌曲演唱的音頻數(shù)據(jù),提取錄制的音頻數(shù)據(jù)中的旋律特征,得到用戶旋 律特征,將用戶旋律特征與原始旋律特征比對(duì)得到檢測(cè)值,檢測(cè)值大于預(yù)設(shè)的閾值,則將該 演唱等級(jí)作為演唱歌曲熟識(shí)廣度等級(jí),并輸出,作為該用戶的演唱歌曲熟識(shí)廣度等級(jí),若小 于或等于預(yù)設(shè)的閾值,則繼續(xù)獲取下一演唱等級(jí),再選取對(duì)應(yīng)的歌曲進(jìn)行檢測(cè),直到檢測(cè)出 該用戶的演唱歌曲熟識(shí)廣度等級(jí),實(shí)現(xiàn)了檢測(cè)出用戶的演唱歌曲熟識(shí)廣度。
[0064] 在一個(gè)實(shí)施例中,選取與演唱等級(jí)對(duì)應(yīng)的歌曲可為一首或多首。若選取的歌曲為 多首,則錄制用戶演唱的多首歌曲,分別得到各自的旋律特征。將各自的旋律與對(duì)應(yīng)的原始 旋律進(jìn)行比對(duì),得到各自的檢測(cè)值。各自的檢測(cè)值均與預(yù)設(shè)的閾值比較,若各自的檢測(cè)值均 不大于預(yù)設(shè)的閾值,則表示用戶通過(guò)該演唱等級(jí)。也就是說(shuō),選取了多首歌曲時(shí),該多首歌 曲全部通過(guò),則表示用戶通過(guò)該演唱等級(jí)。
[0065] 圖3為一個(gè)實(shí)施例中提取該錄制的音頻數(shù)據(jù)中的旋律特征,得到用戶的旋律特征 的具體流程圖。如圖3所示,該用戶的旋律特征包括三元組序列。該提取該錄制的音頻數(shù)據(jù) 中的旋律特征,得到用戶的旋律特征的步驟包括:
[0066]步驟302,提取該錄制的音頻數(shù)據(jù)中的基頻數(shù)據(jù)。
[0067] 本實(shí)施例中,在提取錄制的音頻數(shù)據(jù)中的基頻數(shù)據(jù)之前,可對(duì)音頻數(shù)據(jù)進(jìn)行規(guī)整 處理為指定采樣率采樣精度的格式的基頻數(shù)據(jù)。該指定采樣率采樣精度可根據(jù)需要設(shè)定, 如采樣率為16KB(千字節(jié)),采樣精度為16bit(位)。
[0068] 由于人在發(fā)聲時(shí)聲帶振動(dòng)產(chǎn)生的頻率經(jīng)過(guò)聲道過(guò)濾后會(huì)產(chǎn)生大量泛音,需要從音 頻數(shù)據(jù)中提取直接表現(xiàn)聲帶振動(dòng)頻率的基音?;羰侵刚駝?dòng)頻率最低的音?;l數(shù)據(jù)是指 基音數(shù)據(jù),可包括基頻點(diǎn)、基頻值、幀移和幀長(zhǎng)等。幀移和幀長(zhǎng)根據(jù)需要選定。如幀移為l〇ms (毫秒),幀長(zhǎng)為30ms。幀移是指前后兩幀的重疊量。幀長(zhǎng)是指每幀的長(zhǎng)度。
[0069] 步驟304,獲取該基頻數(shù)據(jù)中的奇異基頻點(diǎn),并將該奇異基頻點(diǎn)的基頻值置零。
[0070] 本實(shí)施例中,某個(gè)基頻點(diǎn)相鄰的前一基頻點(diǎn)的基頻值為零,相鄰的后一基頻點(diǎn)的 基頻值為零,該基頻點(diǎn)的基頻值不為零,則該基頻點(diǎn)為奇異基頻點(diǎn)。將該奇異基頻點(diǎn)的基頻 值置為零。
[0071] 步驟306,對(duì)該基頻數(shù)據(jù)進(jìn)行中值濾波處理。
[0072] 本實(shí)施例中,判斷基頻段長(zhǎng)度是否小于第一預(yù)設(shè)幀長(zhǎng),若是,則直接進(jìn)行窗長(zhǎng)為基 頻段長(zhǎng)度的中值濾波,若否,則每幀做第一預(yù)設(shè)點(diǎn)數(shù)的中值濾波。
[0073] 具體地,基頻段長(zhǎng)度是指基頻數(shù)據(jù)中連續(xù)相鄰基頻值不為零的基頻點(diǎn)連起來(lái)的長(zhǎng) 度。第一預(yù)設(shè)幀長(zhǎng)可根據(jù)需要設(shè)定,如為30幀、35幀等。
[0074]中值濾波是指將每一基頻點(diǎn)的基頻值設(shè)置為該基頻點(diǎn)某領(lǐng)域窗口內(nèi)的所有基頻 點(diǎn)基頻值的中值。
[0075]步驟308,對(duì)基頻值為零的基頻點(diǎn)進(jìn)行填充處理。
[0076]本實(shí)施例中,將基頻段后長(zhǎng)度小于第二預(yù)設(shè)幀長(zhǎng)的零基頻段的基頻值置為基頻段 最后一幀基頻值。零基頻段是由連續(xù)相鄰基頻值為零的基頻點(diǎn)連起來(lái)形成的。第二預(yù)設(shè)幀 長(zhǎng)可根據(jù)需要設(shè)定,如為15幀。
[0077]步驟310,對(duì)經(jīng)過(guò)中值濾波處理及填充處理后的基頻值進(jìn)行音符化,得到音符值。 [0078]本實(shí)施例中,對(duì)全部的基頻值進(jìn)行音符化,其計(jì)算公式為(2)。
[0080] 其中,X為基頻值。
[0081 ]步驟312,將時(shí)間上連續(xù)且音符值相同的點(diǎn)連在一起,得到該錄制的音頻數(shù)據(jù)的三 元組序列,該三元組序列中的各三元組包括三元組的起始時(shí)間、三元組的音符值和三元組 的持續(xù)時(shí)間。
[0082] 本實(shí)施例中,合并音符值,將時(shí)間上連續(xù)且音符值相同的點(diǎn)連在一起,得到錄制的 音頻數(shù)據(jù)的三元組序列⑴,其中,〇為三元組(s,m,l),s為三元組的起始時(shí)間(單位可為50毫 秒),m為該三元組的音符值,1為該三元組的持續(xù)時(shí)間(單位可為50毫秒)。其中,三元組的起 始時(shí)間單位和三元組的持續(xù)時(shí)間單位可根據(jù)需要選定,不限于此50毫秒。
[0083] 通過(guò)提取基頻數(shù)據(jù)中的三元組序列,作為用戶的旋律特征,便于與原始旋律特征 比對(duì),計(jì)算方便,且提取出基頻數(shù)據(jù),去除了泛音,提高比對(duì)的準(zhǔn)確性,同時(shí)對(duì)基頻數(shù)據(jù)進(jìn)行 奇異基頻點(diǎn)檢測(cè)及置零,中值濾波及零基頻點(diǎn)填充,去除噪聲,提高三元組序列的準(zhǔn)確性, 便于后續(xù)計(jì)算。
[0084] 步驟302至步驟312可在終端上或服務(wù)器上執(zhí)行。
[0085]在一個(gè)實(shí)施例中,在該獲取該基頻數(shù)據(jù)中的奇異基頻點(diǎn),并將該奇異基頻點(diǎn)的基 頻值置零的步驟之后,上述演唱歌曲熟識(shí)廣度檢測(cè)方法還包括:獲取該基頻數(shù)據(jù)中基頻值 非零的段落時(shí)間和;判斷該段落時(shí)間和是否大于或等于第三預(yù)設(shè)時(shí)長(zhǎng),若是,則執(zhí)行該對(duì)該 基頻數(shù)據(jù)進(jìn)行中值濾波處理的步驟,若否,則提示檢測(cè)結(jié)束,將該演唱等級(jí)作為演唱歌曲熟 識(shí)廣度等級(jí),并輸出該演唱歌曲熟識(shí)廣度等級(jí)。
[0086]本實(shí)施例中,第三預(yù)設(shè)時(shí)長(zhǎng)可根據(jù)需要設(shè)定,如10秒,15秒等。連續(xù)相鄰的基頻值 非零的基頻點(diǎn)連起來(lái)形成一個(gè)段落,采用時(shí)間表示該段落長(zhǎng)度。將各個(gè)基頻值非零的段落 時(shí)間加起來(lái)求和得到基頻值非零的段落時(shí)間和。小于第三預(yù)設(shè)時(shí)長(zhǎng),直接提示檢測(cè)結(jié)束,減 少后面的數(shù)據(jù)處理過(guò)程,節(jié)省計(jì)算資源及計(jì)算時(shí)間。
[0087]圖4為一個(gè)實(shí)施例中將該用戶的旋律特征與該選取的歌曲的原始旋律特征進(jìn)行比 對(duì),得到檢測(cè)值的具體流程圖。如圖4所示,將該用戶的旋律特征與該選取的歌曲的原始旋 律特征進(jìn)行比對(duì),得到檢測(cè)值的步驟包括:
[0088] 步驟402,獲取該選取的歌曲的第一原始三元組序列及該歌曲的分句信息。
[0089] 本實(shí)施例中,可從音樂(lè)庫(kù)中獲取選取的歌曲的第一原始三元組序列及歌曲的分句 信息。第一原始三元組序列可由歌曲的midi文件轉(zhuǎn)換得到。直接讀取midi文件即可形成。如 表1所示。
[0090] 表 1
[0092] 表1中的起始時(shí)間和持續(xù)時(shí)間的單位為50毫秒,通過(guò)對(duì)起始時(shí)間和持續(xù)時(shí)間進(jìn)行 規(guī)整單位處理得到對(duì)應(yīng)的整數(shù)值(采用四舍五入處理),如持續(xù)時(shí)間328/50約等于7。657/50 約等于13。在其他方式中也可以采用取整處理。
[0093] 歌曲的分句信息可包括各分句的起始時(shí)間和結(jié)束時(shí)間、分句數(shù)量等。
[0094]步驟404,根據(jù)該分句信息獲取該歌曲的分句數(shù)量及各分句對(duì)應(yīng)的第二原始三元 組序列。
[0095]本實(shí)施例中,根據(jù)三元組序列中各三元組的起始時(shí)間和結(jié)束時(shí)間與分句的起始時(shí) 間和結(jié)束時(shí)間進(jìn)行比較,三元組的起始時(shí)間和結(jié)束時(shí)間落在哪個(gè)分句中,則該三元組屬于 該分句。如此每個(gè)分句得到一個(gè)三元組序列,即為第二原始三元組序列。
[0096]步驟406,以各個(gè)分句為起點(diǎn),得到分句數(shù)量個(gè)第三原始三元組序列,且各個(gè)第三 原始三元組序列中原始三元組的個(gè)數(shù)與該錄制的音頻數(shù)據(jù)的三元組序列中三元組的個(gè)數(shù) 相同。
[0097]本實(shí)施例中,因用戶錄制的音頻數(shù)據(jù)可為從任意分句開(kāi)始演唱得到的,故以各個(gè) 分句為起點(diǎn),選取與錄制的音頻數(shù)據(jù)的三元組序列中三元組的個(gè)數(shù)相同的原始三元組組成 第三原始三元組序列。因有分句數(shù)量個(gè)分句,則得到分句數(shù)量個(gè)第三原始三元組序列。 [0098]步驟408,計(jì)算各個(gè)第三原始三元組序列與該錄制的音頻數(shù)據(jù)的三元組序列之間 的距離,選取最小的距離作為最優(yōu)距離。
[00"] 在一個(gè)實(shí)施例中,步驟408包括:計(jì)算第三原始三元組序列中原始三元組與對(duì)應(yīng)的 該錄制的音頻數(shù)據(jù)的三元組序列中三元組的音符值差的絕對(duì)值,再加上兩者持續(xù)時(shí)間差的 絕對(duì)值,得到兩者之間的距離;計(jì)算第三原始三元組序列與該錄制的音頻數(shù)據(jù)的三元組序 列一一對(duì)應(yīng)的三元組間的距離之和,得到第三原始三元組序列與該錄制的音頻數(shù)據(jù)的三元 組序列之間的距離。
[0?00] 具體地,例如錄制的音頻數(shù)據(jù)的三元組序列中包括三個(gè)三元組(sll,mil,111)、 (812,!1112,112)和(813,11113,113),第三原始三元組序列包括三個(gè)原始三元組(821,11121, 121)、(822,11122,122)和(823,11123,123),貝11(811,11111,111)與(821,11121,121)對(duì)應(yīng),(812, 11112,112)與(822,11122,122)對(duì)應(yīng),(813,11113,113)與(823,11123,123)對(duì)應(yīng)。(811,11111,111)與 (s21,m21,121)的距離為L(zhǎng)l= 1 + | 111-1211,(sl2,ml2,112)與(s22,m22,122)之間 的距離為L(zhǎng)2= |ml2-m22| + |ll2-122|,(sl3,ml3,113)與(s23,m23,123)之間的距離為L(zhǎng)3 = ml3-m23 I +1113-123 I,則第三原始三元組序列與該錄制的音頻數(shù)據(jù)的三元組序列之間的距 尚為L(zhǎng) = L1+L2+L3。
[0101] 步驟410,將該最優(yōu)距離除以該基頻數(shù)據(jù)中基頻值非零的段落時(shí)間和,得到誤差 率,將該誤差率作為檢測(cè)值。
[0102] 步驟402至步驟410可在終端或服務(wù)器上執(zhí)行。
[0103]上述通過(guò)原始三元組序列與錄制的音頻數(shù)據(jù)的三元組序列進(jìn)行比對(duì),得到最優(yōu)距 離,再將最優(yōu)距離除以基頻值非零的段落時(shí)間和,可得到平均距離,將該平均距離作為誤差 率,更加準(zhǔn)確反映誤差率。
[0104] 進(jìn)一步的,該判斷該檢測(cè)值是否大于預(yù)設(shè)的閾值的步驟包括:判斷該誤差率是否 大于預(yù)設(shè)的閾值。
[0105] 預(yù)設(shè)的閾值根據(jù)需要設(shè)定。
[0106] 在一個(gè)實(shí)施例中,上述演唱歌曲熟識(shí)廣度檢測(cè)方法還包括:獲取分享指令;根據(jù)該 分享指令將用戶標(biāo)識(shí)及對(duì)應(yīng)的演唱歌曲熟識(shí)廣度等級(jí)分享至社交平臺(tái)。
[0107] 本實(shí)施例中,終端獲取用戶觸發(fā)操作產(chǎn)生的分享指令,根據(jù)該分享指令將用戶標(biāo) 識(shí)及對(duì)應(yīng)的演唱歌曲熟識(shí)廣度等級(jí)分享到社交平臺(tái)。
[0108] 用戶標(biāo)識(shí)是用于唯一表示用戶身份的字符串等。社交平臺(tái)可包括即時(shí)通信應(yīng)用、 微博、朋友圈等中一種或多種。
[0109] 圖5A為一個(gè)實(shí)施例中演唱歌曲熟識(shí)廣度檢測(cè)裝置的結(jié)構(gòu)框圖。如圖5A所示,一種 演唱歌曲熟識(shí)廣度檢測(cè)裝置,包括選取模塊502、音頻數(shù)據(jù)獲取模塊504、提取模塊506、比對(duì) 模塊508、判斷模塊510、輸出模塊512和進(jìn)入模塊514。其中:
[0110]選取模塊502用于獲取演唱等級(jí),選取與該演唱等級(jí)對(duì)應(yīng)的歌曲。
[0111] 音頻數(shù)據(jù)獲取模塊504用于獲取用戶根據(jù)該選取的歌曲錄制的音頻數(shù)據(jù)。
[0112] 提取模塊506用于提取該錄制的音頻數(shù)據(jù)中的旋律特征,得到用戶的旋律特征。
[0113] 比對(duì)模塊508用于將該用戶的旋律特征與該選取的歌曲的原始旋律特征進(jìn)行比 對(duì),得到檢測(cè)值。
[0114] 判斷模塊510用于判斷該檢測(cè)值是否大于預(yù)設(shè)的閾值。
[0115] 輸出模塊512用于在判斷出該檢測(cè)值大于預(yù)設(shè)的閾值,提示檢測(cè)結(jié)束,將該演唱等 級(jí)作為演唱歌曲熟識(shí)廣度等級(jí),并輸出該演唱歌曲熟識(shí)廣度等級(jí)。
[0116] 進(jìn)入模塊514用于在判斷出該檢測(cè)值小于或等于預(yù)設(shè)的閾值,表示該用戶通過(guò)該 演唱等級(jí),并獲取該演唱等級(jí)的相鄰下一演唱等級(jí),繼續(xù)由該選取模塊502、音頻數(shù)據(jù)獲取 模塊504、提取模塊506、比對(duì)模塊508、判斷模塊510、輸出模塊512和進(jìn)入模塊514循環(huán)執(zhí)行。
[0117] 上述演唱歌曲熟識(shí)廣度檢測(cè)裝置,獲取演唱等級(jí),選取與演唱等級(jí)對(duì)應(yīng)的歌曲,錄 制用戶根據(jù)選取的歌曲演唱的音頻數(shù)據(jù),提取錄制的音頻數(shù)據(jù)中的旋律特征,得到用戶旋 律特征,將用戶旋律特征與原始旋律特征比對(duì)得到檢測(cè)值,檢測(cè)值大于預(yù)設(shè)的閾值,則將該 演唱等級(jí)作為演唱歌曲熟識(shí)廣度等級(jí),并輸出,作為該用戶的演唱歌曲熟識(shí)廣度等級(jí),若小 于或等于預(yù)設(shè)的閾值,則繼續(xù)獲取下一演唱等級(jí),再選取對(duì)應(yīng)的歌曲進(jìn)行檢測(cè),直到檢測(cè)出 該用戶的演唱歌曲熟識(shí)廣度等級(jí),實(shí)現(xiàn)了檢測(cè)出用戶的演唱歌曲熟識(shí)廣度。
[0118] 圖5B為另一個(gè)實(shí)施例中演唱歌曲熟識(shí)廣度檢測(cè)裝置的結(jié)構(gòu)框圖。如圖5B所示,一 種演唱歌曲熟識(shí)廣度檢測(cè)裝置,包括選取模塊502、音頻數(shù)據(jù)獲取模塊504、提取模塊506、比 對(duì)模塊508、判斷模塊510、輸出模塊512和進(jìn)入模塊514,還包括播放模塊503。
[0119] 音頻數(shù)據(jù)獲取模塊504還用于獲取用戶根據(jù)選取的歌曲進(jìn)行清唱并錄制的音頻數(shù) 據(jù)。
[0120] 在一個(gè)實(shí)施例中,播放模塊503用于播放該選取的歌曲的伴奏。音頻數(shù)據(jù)獲取模塊 504還用于獲取用戶根據(jù)選取的歌曲并按照播放的伴奏錄制的音頻數(shù)據(jù)。
[0121] 在一個(gè)實(shí)施例中,播放模塊503還用于在獲取用戶根據(jù)選取的歌曲錄制的音頻數(shù) 據(jù)之前,根據(jù)選取的歌曲播放用于伴唱的提示音。
[0122] 播放模塊503還用于根據(jù)該選取的歌曲播放不超過(guò)第一預(yù)設(shè)時(shí)長(zhǎng)的用于伴唱的提 示音。
[0123] 音頻數(shù)據(jù)獲取模塊504還用于獲取用戶根據(jù)該提示音演唱并錄制的超過(guò)第二預(yù)設(shè) 時(shí)長(zhǎng)的音頻數(shù)據(jù)。
[0124] 圖6為另一個(gè)實(shí)施例中演唱歌曲熟識(shí)廣度檢測(cè)裝置的結(jié)構(gòu)框圖。如圖6所示,一種 演唱歌曲熟識(shí)廣度檢測(cè)裝置,除了包括選取模塊502、音頻數(shù)據(jù)獲取模塊504、提取模塊506、 比對(duì)模塊508、判斷模塊510、輸出模塊512和進(jìn)入模塊514,還包括參數(shù)獲取模塊516、流轉(zhuǎn)度 計(jì)算模塊518、流轉(zhuǎn)度獲取模塊520、排序模塊522、等級(jí)劃分模塊524。其中:
[0125] 參數(shù)獲取模塊516用于獲取音樂(lè)庫(kù)中各歌曲對(duì)應(yīng)的歌曲被演唱數(shù)量、歌曲已上線 時(shí)間和歌曲收聽(tīng)數(shù)量。
[0126] 流轉(zhuǎn)度計(jì)算模塊518用于根據(jù)各歌曲對(duì)應(yīng)的歌曲被演唱數(shù)量、歌曲已上線時(shí)間和 歌曲收聽(tīng)數(shù)量通過(guò)加權(quán)得到各歌曲對(duì)應(yīng)的流傳度。
[0127] 流轉(zhuǎn)度獲取模塊520用于在該獲取演唱等級(jí),選取與該演唱等級(jí)對(duì)應(yīng)的歌曲之前, 獲取音樂(lè)庫(kù)中的歌曲的流傳度。
[0128] 排序模塊522用于按照該歌曲的流傳度從高到低進(jìn)行排序。
[0129] 等級(jí)劃分模塊524用于將排序后的歌曲劃分為第一數(shù)量個(gè)演唱等級(jí),每個(gè)演唱等 級(jí)包括第二數(shù)量首歌曲,且流傳度高的歌曲所屬的演唱等級(jí)低。
[0130] 通過(guò)提取基頻數(shù)據(jù)中的三元組序列,作為用戶的旋律特征,便于與原始旋律特征 比對(duì),計(jì)算方便,且提取出基頻數(shù)據(jù),去除了泛音,提高比對(duì)的準(zhǔn)確性,同時(shí)對(duì)基頻數(shù)據(jù)進(jìn)行 奇異基頻點(diǎn)檢測(cè)及置零,中值濾波及零基頻點(diǎn)填充,去除噪聲,提高三元組序列的準(zhǔn)確性, 便于后續(xù)計(jì)算。
[0131] 如圖7所示,在一個(gè)實(shí)施例中,該用戶的旋律特征包括三元組序列;
[0132] 該提取模塊506包括提取單元5061、置零單元5062、濾波單元5063、填充單元5064、 轉(zhuǎn)化單元5065、合并單元5066、時(shí)間長(zhǎng)度獲取單元5067和判斷單元5068中所有可能的組合。 其中:
[0133] 提取單元5061用于提取該錄制的音頻數(shù)據(jù)中的基頻數(shù)據(jù)。
[0134] 置零單元5062用于獲取該基頻數(shù)據(jù)中的奇異基頻點(diǎn),并將該奇異基頻點(diǎn)的基頻值 置零。
[0135]濾波單元5063用于對(duì)該基頻數(shù)據(jù)進(jìn)行中值濾波處理。
[0136]填充單元5064用于對(duì)基頻值為零的基頻點(diǎn)進(jìn)行填充處理。
[0137]轉(zhuǎn)化單元5065用于對(duì)經(jīng)過(guò)中值濾波處理及填充處理后的基頻值進(jìn)行音符化,得到 音符值。
[0138]合并單元5066用于將時(shí)間上連續(xù)且音符值相同的點(diǎn)連在一起,得到該錄制的音頻 數(shù)據(jù)的三元組序列,該三元組序列中的各三元組包括三元組的起始時(shí)間、三元組的音符值 和三元組的持續(xù)時(shí)間。
[0139]時(shí)間長(zhǎng)度獲取單元5067用于在該獲取該基頻數(shù)據(jù)中的奇異基頻點(diǎn),并將該奇異基 頻點(diǎn)的基頻值置零之后,獲取該基頻數(shù)據(jù)中基頻值非零的段落時(shí)間和。
[0140]判斷單元5068用于判斷該段落時(shí)間和是否大于或等于第三預(yù)設(shè)時(shí)長(zhǎng),若是,則該 濾波單元5063用于對(duì)該基頻數(shù)據(jù)進(jìn)行中值濾波處理,若否,則該輸出模塊512提示檢測(cè)結(jié) 束,將該演唱等級(jí)作為演唱歌曲熟識(shí)廣度等級(jí),并輸出該演唱歌曲熟識(shí)廣度等級(jí)。
[0141] 如圖8所示,該比對(duì)模塊508包括第一獲取單元5081、第二獲取單元5082、第三獲取 單元5083、距離計(jì)算單元5084和相似度計(jì)算單元5085,其中:
[0142] 第一獲取單元5081用于獲取該選取的歌曲的第一原始三元組序列及該歌曲的分 句數(shù)量。
[0143] 第二獲取單元5082用于獲取該歌曲的各分句對(duì)應(yīng)的第二原始三元組序列。
[0144] 第三獲取單元5083用于以各個(gè)分句為起點(diǎn),得到分句數(shù)量個(gè)第三原始三元組序 列,且各個(gè)第三原始三元組序列中原始三元組的個(gè)數(shù)與該錄制的音頻數(shù)據(jù)的三元組序列中 三元組的個(gè)數(shù)相同。
[0145] 距離計(jì)算單元5084用于計(jì)算各個(gè)第三原始三元組序列與該錄制的音頻數(shù)據(jù)的三 元組序列之間的距離,選取最小的距離作為最優(yōu)距離。
[0146] 檢測(cè)值計(jì)算單元5085用于將該最優(yōu)距離除以該基頻數(shù)據(jù)中基頻值非零的段落時(shí) 間和,得到誤差率,將該誤差率作為檢測(cè)值。
[0147] 該判斷模塊510還用于判斷該誤差率是否大于預(yù)設(shè)的閾值。
[0148] 該距離計(jì)算單元5084還用于計(jì)算第三原始三元組序列中原始三元組與對(duì)應(yīng)的該 錄制的音頻數(shù)據(jù)的三元組序列中三元組的音符值差的絕對(duì)值,再加上兩者持續(xù)時(shí)間差的絕 對(duì)值,得到兩者之間的距離;以及
[0149]計(jì)算第三原始三元組序列與該錄制的音頻數(shù)據(jù)的三元組序列-對(duì)應(yīng)的三元組 間的距離之和,得到第三原始三元組序列與該錄制的音頻數(shù)據(jù)的三元組序列之間的距離。 [0150]圖9為另一個(gè)實(shí)施例中演唱歌曲熟識(shí)廣度檢測(cè)裝置的結(jié)構(gòu)框圖。如圖9所示,一種 演唱歌曲熟識(shí)廣度檢測(cè)裝置,除了包括選取模塊502、音頻數(shù)據(jù)獲取模塊504、提取模塊506、 比對(duì)模塊508、判斷模塊510、輸出模塊512和進(jìn)入模塊514,還包括指令獲取模塊526和分享 模塊528。其中:
[0151] 指令獲取模塊526用于獲取分享指令。
[0152] 分享模塊528用于根據(jù)該分享指令將用戶標(biāo)識(shí)及對(duì)應(yīng)的演唱歌曲熟識(shí)廣度等級(jí)分 享至社交平臺(tái)。
[0153] 在其他實(shí)施例中,一種演唱歌曲熟識(shí)廣度檢測(cè)裝置,可包括選取模塊502、播放模 塊503、音頻數(shù)據(jù)獲取模塊504、提取模塊506、比對(duì)模塊508、判斷模塊510、輸出模塊512、進(jìn) 入模塊514、參數(shù)獲取模塊516、流轉(zhuǎn)度計(jì)算模塊518、流轉(zhuǎn)度獲取模塊520、排序模塊522、等 級(jí)劃分模塊524、指令獲取模塊526和分享模塊528中任意可能的組合。
[0154] 本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分流程,是可以 通過(guò)計(jì)算機(jī)程序來(lái)指令相關(guān)的硬件來(lái)完成,所述的程序可存儲(chǔ)于一非易失性計(jì)算機(jī)可讀取 存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),可包括如上述各方法的實(shí)施例的流程。其中,所述的存儲(chǔ)介 質(zhì)可為磁碟、光盤、只讀存儲(chǔ)記憶體(Read-Only Memory,ROM)等。
[0155] 以上所述實(shí)施例僅表達(dá)了本發(fā)明的幾種實(shí)施方式,其描述較為具體和詳細(xì),但并 不能因此而理解為對(duì)本發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對(duì)于本領(lǐng)域的普通技術(shù)人員 來(lái)說(shuō),在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保 護(hù)范圍。因此,本發(fā)明專利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。
【主權(quán)項(xiàng)】
1. 一種演唱歌曲熟識(shí)廣度檢測(cè)方法,包括: 步驟A,獲取演唱等級(jí),選取與所述演唱等級(jí)對(duì)應(yīng)的歌曲; 步驟B,獲取用戶根據(jù)所述選取的歌曲錄制的音頻數(shù)據(jù); 步驟C,提取所述錄制的音頻數(shù)據(jù)中的旋律特征,得到用戶的旋律特征; 步驟D,將所述用戶的旋律特征與所述選取的歌曲的原始旋律特征進(jìn)行比對(duì),得到檢測(cè) 值; 步驟E,判斷所述檢測(cè)值是否大于預(yù)設(shè)的閾值,若是,則提示檢測(cè)結(jié)束,將所述演唱等級(jí) 作為演唱歌曲熟識(shí)廣度等級(jí),并輸出所述演唱歌曲熟識(shí)廣度等級(jí),若否,則表示所述用戶通 過(guò)所述演唱等級(jí),并獲取所述演唱等級(jí)的相鄰下一演唱等級(jí),繼續(xù)循環(huán)執(zhí)行步驟A至E。2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述獲取演唱等級(jí),選取與所述演唱等 級(jí)對(duì)應(yīng)的歌曲的步驟之前,所述方法還包括: 獲取音樂(lè)庫(kù)中的歌曲的流傳度; 按照所述歌曲的流傳度從高到低進(jìn)行排序; 將排序后的歌曲劃分為第一數(shù)量個(gè)演唱等級(jí),每個(gè)演唱等級(jí)包括第二數(shù)量首歌曲,且 流傳度高的歌曲所屬的演唱等級(jí)低。3. 根據(jù)權(quán)利要求2所述的方法,其特征在于,在所述獲取音樂(lè)庫(kù)中的歌曲的流轉(zhuǎn)度的步 驟之前,所述方法還包括: 獲取音樂(lè)庫(kù)中各歌曲對(duì)應(yīng)的歌曲被演唱數(shù)量、歌曲已上線時(shí)間和歌曲收聽(tīng)數(shù)量; 根據(jù)各歌曲對(duì)應(yīng)的歌曲被演唱數(shù)量、歌曲已上線時(shí)間和歌曲收聽(tīng)數(shù)量通過(guò)加權(quán)得到各 歌曲對(duì)應(yīng)的流傳度。4. 根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述獲取用戶根據(jù)所述選取的歌曲錄制 的音頻數(shù)據(jù)的步驟之前,所述方法還包括: 根據(jù)所述選取的歌曲播放不超過(guò)第一預(yù)設(shè)時(shí)長(zhǎng)的用于伴唱的提示音; 所述獲取用戶根據(jù)所述選取的歌曲錄制的音頻數(shù)據(jù)的步驟包括: 獲取用戶根據(jù)所述用于伴唱的提示音錄制的超過(guò)第二預(yù)設(shè)時(shí)長(zhǎng)的音頻數(shù)據(jù)。5. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述用戶的旋律特征包括三元組序列; 所述提取所述錄制的音頻數(shù)據(jù)中的旋律特征,得到用戶的旋律特征的步驟包括: 提取所述錄制的音頻數(shù)據(jù)中的基頻數(shù)據(jù); 獲取所述基頻數(shù)據(jù)中的奇異基頻點(diǎn),并將所述奇異基頻點(diǎn)的基頻值置零; 對(duì)所述基頻數(shù)據(jù)進(jìn)行中值濾波處理; 對(duì)基頻值為零的基頻點(diǎn)進(jìn)行填充處理; 對(duì)經(jīng)過(guò)中值濾波處理及填充處理后的基頻值進(jìn)行音符化,得到音符值; 將時(shí)間上連續(xù)且音符值相同的點(diǎn)連在一起,得到所述錄制的音頻數(shù)據(jù)的三元組序列, 所述三元組序列中的各三元組包括三元組的起始時(shí)間、三元組的音符值和三元組的持續(xù)時(shí) 間。6. 根據(jù)權(quán)利要求5所述的方法,其特征在于,在所述獲取所述基頻數(shù)據(jù)中的奇異基頻 點(diǎn),并將所述奇異基頻點(diǎn)的基頻值置零的步驟之后,所述方法還包括: 獲取所述基頻數(shù)據(jù)中基頻值非零的段落時(shí)間和; 判斷所述段落時(shí)間和是否大于或等于第三預(yù)設(shè)時(shí)長(zhǎng),若是,則執(zhí)行所述對(duì)所述基頻數(shù) 據(jù)進(jìn)行中值濾波處理的步驟,若否,則提示檢測(cè)結(jié)束,將所述演唱等級(jí)作為演唱歌曲熟識(shí)廣 度等級(jí),并輸出所述演唱歌曲熟識(shí)廣度等級(jí)。7. 根據(jù)權(quán)利要求5所述的方法,其特征在于,所述將所述用戶的旋律特征與所述選取的 歌曲的原始旋律特征進(jìn)行比對(duì),得到相似度值的步驟包括: 獲取所述選取的歌曲的第一原始三元組序列及所述歌曲的分句信息; 根據(jù)所述分句信息獲取所述歌曲的分句數(shù)量及各分句對(duì)應(yīng)的第二原始三元組序列; 以各個(gè)分句為起點(diǎn),得到分句數(shù)量個(gè)第三原始三元組序列,且各個(gè)第三原始三元組序 列中原始三元組的個(gè)數(shù)與所述錄制的音頻數(shù)據(jù)的三元組序列中三元組的個(gè)數(shù)相同; 計(jì)算各個(gè)第三原始三元組序列與所述錄制的音頻數(shù)據(jù)的三元組序列之間的距離,選取 最小的距離作為最優(yōu)距離; 將所述最優(yōu)距離除以所述基頻數(shù)據(jù)中基頻值非零的段落時(shí)間和,得到誤差率,將所述 誤差率作為相似度值; 所述判斷所述相似度值是否大于預(yù)設(shè)的閾值的步驟包括: 判斷所述誤差率是否大于預(yù)設(shè)的閾值。8. 根據(jù)權(quán)利要求7所述的方法,其特征在于,所述計(jì)算各個(gè)第三原始三元組序列與所述 錄制的音頻數(shù)據(jù)的三元組序列之間的距離的步驟包括: 計(jì)算第三原始三元組序列中原始三元組與對(duì)應(yīng)的所述錄制的音頻數(shù)據(jù)的三元組序列 中三元組的音符值差的絕對(duì)值,再加上兩者持續(xù)時(shí)間差的絕對(duì)值,得到兩者之間的距離; 計(jì)算第三原始三元組序列與所述錄制的音頻數(shù)據(jù)的三元組序列一一對(duì)應(yīng)的三元組間 的距離之和,得到第三原始三元組序列與所述錄制的音頻數(shù)據(jù)的三元組序列之間的距離。9. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 獲取分享指令; 根據(jù)所述分享指令將用戶標(biāo)識(shí)及對(duì)應(yīng)的演唱歌曲熟識(shí)廣度等級(jí)分享至社交平臺(tái)。10. -種演唱歌曲熟識(shí)廣度檢測(cè)裝置,其特征在于,包括: 選取模塊,用于獲取演唱等級(jí),選取與所述演唱等級(jí)對(duì)應(yīng)的歌曲; 音頻數(shù)據(jù)獲取模塊,用于獲取用戶根據(jù)所述選取的歌曲錄制的音頻數(shù)據(jù); 提取模塊,用于提取所述錄制的音頻數(shù)據(jù)中的旋律特征,得到用戶的旋律特征; 比對(duì)模塊,用于將所述用戶的旋律特征與所述選取的歌曲的原始旋律特征進(jìn)行比對(duì), 得到檢測(cè)值; 判斷模塊,用于判斷所述檢測(cè)值是否大于預(yù)設(shè)的閾值; 輸出模塊,用于在判斷出所述檢測(cè)值大于預(yù)設(shè)的閾值,提示檢測(cè)結(jié)束,將所述演唱等級(jí) 作為演唱歌曲熟識(shí)廣度等級(jí),并輸出所述演唱歌曲熟識(shí)廣度等級(jí); 進(jìn)入模塊,用于在判斷出所述檢測(cè)值小于或等于預(yù)設(shè)的閾值,表示所述用戶通過(guò)所述 演唱等級(jí),并獲取所述演唱等級(jí)的相鄰下一演唱等級(jí),繼續(xù)由所述選取模塊、音頻數(shù)據(jù)獲取 模塊、提取模塊、比對(duì)模塊、判斷模塊、輸出模塊和進(jìn)入模塊循環(huán)執(zhí)行。11. 根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述裝置還包括: 流轉(zhuǎn)度獲取模塊,用于在所述獲取演唱等級(jí),選取與所述演唱等級(jí)對(duì)應(yīng)的歌曲之前,獲 取音樂(lè)庫(kù)中的歌曲的流傳度; 排序模塊,用于按照所述歌曲的流傳度從高到低進(jìn)行排序; 等級(jí)劃分模塊,用于將排序后的歌曲劃分為第一數(shù)量個(gè)演唱等級(jí),每個(gè)演唱等級(jí)包括 第二數(shù)量首歌曲,且流傳度高的歌曲所屬的演唱等級(jí)低。12. 根據(jù)權(quán)利要求11所述的裝置,其特征在于,所述裝置還包括: 參數(shù)獲取模塊,用于獲取音樂(lè)庫(kù)中各歌曲對(duì)應(yīng)的歌曲被演唱數(shù)量、歌曲已上線時(shí)間和 歌曲收聽(tīng)數(shù)量; 流轉(zhuǎn)度計(jì)算模塊,用于根據(jù)各歌曲對(duì)應(yīng)的歌曲被演唱數(shù)量、歌曲已上線時(shí)間和歌曲收 聽(tīng)數(shù)量通過(guò)加權(quán)得到各歌曲對(duì)應(yīng)的流傳度。13. 根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述裝置還包括: 播放模塊,用于在所述獲取用戶根據(jù)所述選取的歌曲錄制的音頻數(shù)據(jù)之前,根據(jù)所述 選取的歌曲播放不超過(guò)第一預(yù)設(shè)時(shí)長(zhǎng)的用于伴唱的提示音; 所述音頻數(shù)據(jù)獲取模塊還用于獲取用戶根據(jù)所述用于伴唱的提示音錄制的超過(guò)第二 預(yù)設(shè)時(shí)長(zhǎng)的音頻數(shù)據(jù)。14. 根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述用戶的旋律特征包括三元組序列; 所述提取模塊包括: 提取單元,用于提取所述錄制的音頻數(shù)據(jù)中的基頻數(shù)據(jù); 置零單元,用于獲取所述基頻數(shù)據(jù)中的奇異基頻點(diǎn),并將所述奇異基頻點(diǎn)的基頻值置 零; 濾波單元,用于對(duì)所述基頻數(shù)據(jù)進(jìn)行中值濾波處理; 填充單元,用于對(duì)基頻值為零的基頻點(diǎn)進(jìn)行填充處理; 轉(zhuǎn)化單元,用于對(duì)經(jīng)過(guò)中值濾波處理及填充處理后的基頻值進(jìn)行音符化,得到音符值; 合并單元,用于將時(shí)間上連續(xù)且音符值相同的點(diǎn)連在一起,得到所述錄制的音頻數(shù)據(jù) 的三元組序列,所述三元組序列中的各三元組包括三元組的起始時(shí)間、三元組的音符值和 三元組的持續(xù)時(shí)間。15. 根據(jù)權(quán)利要求14所述的裝置,其特征在于,所述提取模塊還包括: 時(shí)間長(zhǎng)度獲取單元,用于在所述獲取所述基頻數(shù)據(jù)中的奇異基頻點(diǎn),并將所述奇異基 頻點(diǎn)的基頻值置零之后,獲取所述基頻數(shù)據(jù)中基頻值非零的段落時(shí)間和; 判斷單元,用于判斷所述段落時(shí)間和是否大于或等于第三預(yù)設(shè)時(shí)長(zhǎng),若是,則所述濾波 單元用于對(duì)所述基頻數(shù)據(jù)進(jìn)行中值濾波處理,若否,則所述輸出模塊提示檢測(cè)結(jié)束,將所述 演唱等級(jí)作為演唱歌曲熟識(shí)廣度等級(jí),并輸出所述演唱歌曲熟識(shí)廣度等級(jí)。16. 根據(jù)權(quán)利要求14所述的裝置,其特征在于,所述比對(duì)模塊包括: 第一獲取單元,用于獲取所述選取的歌曲的第一原始三元組序列及所述歌曲的分句信 息; 第二獲取單元,用于根據(jù)所述分句信息獲取所述歌曲的分句數(shù)量及各分句對(duì)應(yīng)的第二 原始三元組序列; 第三獲取單元,用于以各個(gè)分句為起點(diǎn),得到分句數(shù)量個(gè)第三原始三元組序列,且各個(gè) 第三原始三元組序列中原始三元組的個(gè)數(shù)與所述錄制的音頻數(shù)據(jù)的三元組序列中三元組 的個(gè)數(shù)相同; 距離計(jì)算單元,用于計(jì)算各個(gè)第三原始三元組序列與所述錄制的音頻數(shù)據(jù)的三元組序 列之間的距離,選取最小的距離作為最優(yōu)距離; 相似度值計(jì)算單元,用于將所述最優(yōu)距離除以所述基頻數(shù)據(jù)中基頻值非零的段落時(shí)間 和,得到誤差率,將所述誤差率作為相似度值; 所述判斷模塊還用于判斷所述誤差率是否大于預(yù)設(shè)的閾值。17. 根據(jù)權(quán)利要求16所述的裝置,其特征在于,所述距離計(jì)算單元還用于計(jì)算第三原始 三元組序列中原始三元組與對(duì)應(yīng)的所述錄制的音頻數(shù)據(jù)的三元組序列中三元組的音符值 差的絕對(duì)值,再加上兩者持續(xù)時(shí)間差的絕對(duì)值,得到兩者之間的距離;以及 計(jì)算第三原始三元組序列與所述錄制的音頻數(shù)據(jù)的三元組序列一一對(duì)應(yīng)的三元組間 的距離之和,得到第三原始三元組序列與所述錄制的音頻數(shù)據(jù)的三元組序列之間的距離。18. 根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述裝置還包括: 指令獲取模塊,用于獲取分享指令; 分享模塊,用于根據(jù)所述分享指令將用戶標(biāo)識(shí)及對(duì)應(yīng)的演唱歌曲熟識(shí)廣度等級(jí)分享至 社交平臺(tái)。
【文檔編號(hào)】G06F17/30GK106095943SQ201610416943
【公開(kāi)日】2016年11月9日
【申請(qǐng)日】2016年6月14日 公開(kāi)號(hào)201610416943.1, CN 106095943 A, CN 106095943A, CN 201610416943, CN-A-106095943, CN106095943 A, CN106095943A, CN201610416943, CN201610416943.1
【發(fā)明人】趙偉峰
【申請(qǐng)人】騰訊科技(深圳)有限公司