本發(fā)明涉及計(jì)算機(jī)領(lǐng)域,具體而言,涉及一種音頻文件的推送方法及裝置。
背景技術(shù):
相比于在ktv唱歌的傳統(tǒng)方式,在線k歌的方式不僅所需成本較低,而且還可以滿足用戶實(shí)時(shí)k歌的需求,因而,這種在線k歌的方式受到越來越多的用戶關(guān)注。然而,用戶在面對(duì)在線曲庫(kù)中的海量歌曲時(shí),往往不知道該選擇哪首歌曲進(jìn)行演唱。
目前,在線k歌中的歌曲均是通過歌曲推送系統(tǒng)進(jìn)行推送的,常用的方式是將主要的算法集中在如何找到用戶喜歡唱的歌曲,例如,按照搜索量或點(diǎn)播量為用戶推送較受歡迎的歌曲,但這些歌曲卻并不一定適合用戶演唱。比如某用戶不擅長(zhǎng)高音,但系統(tǒng)卻推送一個(gè)對(duì)高音要求很高的歌曲給該用戶,即使該用戶很喜歡這首歌曲,但該用戶卻并不適合演唱這首歌曲。也就是說,由于采用現(xiàn)有技術(shù)中的推送方式所推送的歌曲準(zhǔn)確性較低將造成所推送的歌曲并不適合用戶演唱的問題。
針對(duì)上述的問題,目前尚未提出有效的解決方案。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供了一種音頻文件的推送方法及裝置,以至少解決現(xiàn)有的音頻文件推送方式所存在的推送準(zhǔn)確性較低的技術(shù)問題。
根據(jù)本發(fā)明實(shí)施例的一個(gè)方面,提供了一種音頻文件的推送方法,包括:獲取第一客戶端采集到的第一清唱音頻數(shù)據(jù),其中,上述第一清唱音頻數(shù)據(jù)包括多幀第一音頻數(shù)據(jù);根據(jù)上述多幀第一音頻數(shù)據(jù)中每一幀第一 音頻數(shù)據(jù)上用于表示音高的基頻數(shù)據(jù)獲取用于表示上述第一清唱音頻數(shù)據(jù)的音域的第一音頻向量;根據(jù)上述第一音頻向量從存儲(chǔ)的音頻文件集合中查找目標(biāo)音頻文件,其中,上述目標(biāo)音頻文件的第二音頻向量與上述第一音頻向量相匹配;將查找到的上述目標(biāo)音頻文件推送給上述第一客戶端。
根據(jù)本發(fā)明實(shí)施例的另一方面,還提供了一種音頻文件的推送裝置,包括:第一獲取單元,用于獲取第一客戶端采集到的第一清唱音頻數(shù)據(jù),其中,上述第一清唱音頻數(shù)據(jù)包括多幀第一音頻數(shù)據(jù);第二獲取單元,用于根據(jù)上述多幀第一音頻數(shù)據(jù)中每一幀第一音頻數(shù)據(jù)上用于表示音高的基頻數(shù)據(jù)獲取用于表示上述第一清唱音頻數(shù)據(jù)的音域的第一音頻向量;查找單元,用于根據(jù)上述第一音頻向量從存儲(chǔ)的音頻文件集合中查找目標(biāo)音頻文件,其中,上述目標(biāo)音頻文件的第二音頻向量與上述第一音頻向量相匹配;推送單元,用于將查找到的上述目標(biāo)音頻文件推送給上述第一客戶端。
在本發(fā)明實(shí)施例中,在獲取的第一客戶端采集到的用戶的第一清唱音頻數(shù)據(jù)后,其中,第一清唱音頻數(shù)據(jù)包括多幀第一音頻數(shù)據(jù);可以根據(jù)上述多幀第一音頻數(shù)據(jù)中每一幀第一音頻數(shù)據(jù)上用于表示音高的基頻數(shù)據(jù)獲取用于表示第一清唱音頻數(shù)據(jù)的音域的第一音頻向量;進(jìn)一步,根據(jù)第一音域向量從存儲(chǔ)的音頻文件集合中查找目標(biāo)音頻文件,其中,目標(biāo)音頻文件的第二音頻向量與第一音頻向量相匹配;并將查找到的該目標(biāo)音頻文件推送給第一客戶端。通過上述音頻文件的推送方法根據(jù)第一客戶端采集到的用戶的第一清唱音頻數(shù)據(jù)獲取用于表示用戶的第一清唱音頻數(shù)據(jù)的音域的第一音頻向量,進(jìn)一步通過在音頻文件集合中查找到與第一音頻向量相匹配的第二音頻向量對(duì)應(yīng)的目標(biāo)音頻文件,實(shí)現(xiàn)向第一客戶端準(zhǔn)確推送更加符合用戶自身的音域特點(diǎn)的目標(biāo)音頻文件,以達(dá)到提高音頻文件推送的準(zhǔn)確性的效果,進(jìn)而克服了現(xiàn)有技術(shù)中僅僅通過搜索量或點(diǎn)播量的方式推送歌曲所造成的推送準(zhǔn)確性較低的問題。
進(jìn)一步,通過向用戶推送符合用戶音域的目標(biāo)音頻文件,還將使用戶 在通過目標(biāo)音頻文件進(jìn)行演唱時(shí),達(dá)到更佳的演唱效果,以改善用戶通過上述推送方法獲取音頻文件的體驗(yàn)。
附圖說明
此處所說明的附圖用來提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,本發(fā)明的示意性實(shí)施例及其說明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中:
圖1是根據(jù)本發(fā)明實(shí)施例的一種可選的音頻文件的推送方法的應(yīng)用場(chǎng)景示意圖;
圖2是根據(jù)本發(fā)明實(shí)施例的一種可選的音頻文件的推送方法的流程圖;
圖3是根據(jù)本發(fā)明實(shí)施例的一種可選的音頻文件的推送方法的流程圖;
圖4是根據(jù)本發(fā)明實(shí)施例的另一種可選的音頻文件的推送方法的示意圖;
圖5是根據(jù)本發(fā)明實(shí)施例的又一種可選的音頻文件的推送方法的示意圖;
圖6是根據(jù)本發(fā)明實(shí)施例的又一種可選的音頻文件的推送方法的示意圖;
圖7是根據(jù)本發(fā)明實(shí)施例的又一種可選的音頻文件的推送方法的示意圖;
圖8是根據(jù)本發(fā)明實(shí)施例的一種可選的音頻文件的推送裝置的示意圖;
圖9是根據(jù)本發(fā)明實(shí)施例的另一種可選的音頻文件的推送裝置的示意圖;以及
圖10是根據(jù)本發(fā)明實(shí)施例的一種可選的音頻文件的推送服務(wù)器的示意圖。
具體實(shí)施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分的實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本發(fā)明保護(hù)的范圍。
需要說明的是,本發(fā)明的說明書和權(quán)利要求書及上述附圖中的術(shù)語“第一”、“第二”等是用于區(qū)別類似的對(duì)象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本發(fā)明的實(shí)施例能夠以除了在這里圖示或描述的那些以外的順序?qū)嵤4送?,術(shù)語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。
實(shí)施例1
根據(jù)本發(fā)明實(shí)施例,提供了一種音頻文件的推送方法的實(shí)施例,上述音頻文件的推送方法可以但不限于應(yīng)用于如圖1所示的應(yīng)用場(chǎng)景中。服務(wù)器104通過網(wǎng)絡(luò)106獲取安裝有第一客戶端的終端102采集到的第一清唱數(shù)據(jù),其中,第一清唱音頻數(shù)據(jù)包括多幀第一音頻數(shù)據(jù);服務(wù)器104根據(jù)多幀第一音頻數(shù)據(jù)中每一幀第一音頻數(shù)據(jù)上用于表示音高的基頻數(shù)據(jù)獲取用于表示第一清唱音頻數(shù)據(jù)的音域的第一音頻向量,以根據(jù)該第一音頻向量從存儲(chǔ)的音頻文件集合中查找目標(biāo)音頻文件,其中,目標(biāo)音頻文件的第二音頻向量與第一音頻向量相匹配;進(jìn)而將查找到的目標(biāo)音頻文件推送給安裝有第一客戶端的終端102。從而實(shí)現(xiàn)為用戶推送更加適合用戶音域的音頻文件,以達(dá)到提高推送準(zhǔn)確性的效果??蛇x地,在本實(shí)施例中,上述終端可以包括但不限于以下至少之一:手機(jī)、平板電腦、筆記本電腦、pc機(jī)??蛇x地,在本實(shí)施例中,上述網(wǎng)絡(luò)可以包括但不限于以下至少之一:廣域網(wǎng)、城域網(wǎng)、局域網(wǎng)。上述只是一種示例,本實(shí)施例對(duì)此不做任 何限定。
根據(jù)本發(fā)明實(shí)施例,提供了一種音頻文件的推送方法,如圖2所示,該方法包括:
s202,獲取第一客戶端采集到的第一清唱音頻數(shù)據(jù),其中,第一清唱音頻數(shù)據(jù)包括多幀第一音頻數(shù)據(jù);
s204,根據(jù)多幀第一音頻數(shù)據(jù)中每一幀第一音頻數(shù)據(jù)上用于表示音高的基頻數(shù)據(jù)獲取用于表示第一清唱音頻數(shù)據(jù)的音域的第一音頻向量;
s206,根據(jù)第一音頻向量從存儲(chǔ)的音頻文件集合中查找目標(biāo)音頻文件,其中,目標(biāo)音頻文件的第二音頻向量與第一音頻向量相匹配;
s208,將查找到的目標(biāo)音頻文件推送給第一客戶端。
可選地,在本實(shí)施例中,上述音頻文件的推送方法可以但不限于應(yīng)用于網(wǎng)絡(luò)在線推送音頻文件的過程中,例如,如圖1所示由服務(wù)器104向終端102上安裝的第一客戶端推送在線k歌所需的音頻文件(如伴奏歌曲)。上述僅是一種示例,本實(shí)施例中對(duì)此不作任何限定。在本實(shí)施例中,在服務(wù)器104獲取終端102上安裝的第一客戶端采集到的第一清唱音頻數(shù)據(jù)后,其中,第一清唱音頻數(shù)據(jù)包括多幀第一音頻數(shù)據(jù);可以根據(jù)上述多幀第一音頻數(shù)據(jù)中每一幀第一音頻數(shù)據(jù)上用于表示音高的基頻數(shù)據(jù)獲取用于表示第一清唱音頻數(shù)據(jù)的音域的第一音頻向量;進(jìn)一步,根據(jù)第一音域向量從存儲(chǔ)的音頻文件集合中查找目標(biāo)音頻文件,其中,目標(biāo)音頻文件的第二音頻向量與第一音頻向量相匹配;并將查找到的該目標(biāo)音頻文件推送給第一客戶端。
也就是說,服務(wù)器104在獲取終端102上的第一客戶端采集到的用戶的第一清唱音頻數(shù)據(jù)后,可以在包含多個(gè)音頻文件的音頻文件集合中查找到與所采集的第一清唱音頻數(shù)據(jù)的音域相適應(yīng)的目標(biāo)音頻文件,以使用戶通過該目標(biāo)音頻文件完成在線k歌。需要說明的是,由于所推送的目標(biāo)音頻文件與用戶自身音域相匹配,因而,通過本實(shí)施例中提供的音頻文件的 推送方法所推送的目標(biāo)音頻文件,將更加符合用戶自身的音域特點(diǎn),從而實(shí)現(xiàn)用戶在通過本實(shí)施例所推送的目標(biāo)音頻文件進(jìn)行演唱時(shí),演唱效果更佳,進(jìn)而達(dá)到提高音頻文件推送的準(zhǔn)確性的效果,并改善了用戶體驗(yàn),以克服現(xiàn)有技術(shù)中通過搜索量或點(diǎn)播量的方式推送歌曲所造成的推送準(zhǔn)確性較低的問題。
可選地,在本實(shí)施例中,上述第一清唱音頻數(shù)據(jù)可以包括麥克風(fēng)收錄的人聲音頻數(shù)據(jù),例如,上述麥克風(fēng)收錄的人聲音頻數(shù)據(jù)可以為但不限于以下至少之一:無伴唱時(shí)通過麥克風(fēng)收錄的人聲音頻數(shù)據(jù)、有伴唱時(shí)通過麥克風(fēng)定向收錄的人聲音頻數(shù)據(jù)。其中,上述第一清唱音頻數(shù)據(jù)中可以包括但不限于:按照預(yù)定幀長(zhǎng)劃分的多幀第一音頻數(shù)據(jù),每一幀第一音頻數(shù)據(jù)中包含用于表示音高的基頻數(shù)據(jù)。需要說明的是,上述基頻數(shù)據(jù)的頻譜位于預(yù)定的基頻段內(nèi),其中,上述預(yù)定的基頻段可以包括但不限于人類聲帶振動(dòng)的頻率所在的基頻段,如50-550hz。
可選地,在本實(shí)施例中,上述第一音頻向量和第二音頻向量可以但不限于為在預(yù)定的基頻段內(nèi)劃分成n個(gè)連續(xù)的子段后,根據(jù)各個(gè)子段上統(tǒng)計(jì)的基頻數(shù)據(jù)的數(shù)量得到用于表示音域的一維n向量。例如,包括m幀第一音頻數(shù)據(jù)的第一清唱音頻數(shù)據(jù)在n個(gè)子段中的基頻數(shù)據(jù)的數(shù)量為{x1,x2…xn},其中,x1+x2+…xn=m;則可以但不限于得到對(duì)應(yīng)的第一音頻向量{x1,x2,...,xn}為{x1/m,x2/m…xn/m};同理,包括p幀第二音頻數(shù)據(jù)的第二清唱音頻數(shù)據(jù)在n個(gè)子段中的基頻數(shù)據(jù)的數(shù)量為{y1,y2…yn},其中,y1+y2+…yn=p;則可以但不限于得到對(duì)應(yīng)的第二音頻向量{y1,y2,...,yn}為{y1/p,y2/p…yn/p}。上述僅是一種示例,本實(shí)施例中對(duì)此不做任何限定。
需要說明的是,在本實(shí)施例中,上述音頻文件集合中每一個(gè)音頻文件對(duì)應(yīng)的第二音頻向量可以但不限于根據(jù)與每一個(gè)音頻文件對(duì)應(yīng)的q個(gè)第二清唱音頻數(shù)據(jù)得到??蛇x地,在本實(shí)施例中,在獲取第一客戶端采集到的清唱音頻數(shù)據(jù)之前,還包括:獲取音頻文件集合中每一個(gè)音頻文件對(duì)應(yīng) 的q個(gè)第二清唱音頻數(shù)據(jù),根據(jù)上述q個(gè)第二清唱音頻數(shù)據(jù)中每一個(gè)第二清唱音頻數(shù)據(jù)中的多幀第二音頻數(shù)據(jù)上的基頻數(shù)據(jù)獲取對(duì)應(yīng)的音頻文件的第二音頻向量。
可選地,在本實(shí)施例中,根據(jù)清唱音頻數(shù)據(jù)的音頻向量從存儲(chǔ)的音頻文件集合中查找目標(biāo)音頻文件包括:s1,在音頻文件集合中查找第二音頻向量與第一音頻向量距離小于預(yù)定閾值的音頻文件作為目標(biāo)音頻文件。通過比對(duì)每一個(gè)音頻文件的第二音頻向量與第一音頻向量的方式來查找適合用戶音域演唱的目標(biāo)音頻文件,從而實(shí)現(xiàn)為用戶推送更加準(zhǔn)確的音頻文件的效果。
可選地,在本實(shí)施例中,將查找到的目標(biāo)音頻文件推送給第一客戶端包括:結(jié)合查找到的目標(biāo)音頻文件的熱度(如搜索量和/或點(diǎn)播量),按照熱度向第一客戶端推送包含查找到的目標(biāo)音頻文件的目標(biāo)音頻文件列表,其中,熱度高的目標(biāo)音頻文件在目標(biāo)音頻文件列表中的位置位于熱度低的目標(biāo)音頻文件在目標(biāo)音頻文件列表中的位置之前。
通過本申請(qǐng)?zhí)峁┑膶?shí)施例,在獲取的第一客戶端采集到的用戶的第一清唱音頻數(shù)據(jù)后,其中,第一清唱音頻數(shù)據(jù)包括多幀第一音頻數(shù)據(jù);可以根據(jù)上述多幀第一音頻數(shù)據(jù)中每一幀第一音頻數(shù)據(jù)上用于表示音高的基頻數(shù)據(jù)獲取用于表示第一清唱音頻數(shù)據(jù)的音域的第一音頻向量;進(jìn)一步,根據(jù)第一音域向量從存儲(chǔ)的音頻文件集合中查找目標(biāo)音頻文件,其中,目標(biāo)音頻文件的第二音頻向量與第一音頻向量相匹配;并將查找到的該目標(biāo)音頻文件推送給第一客戶端。通過上述音頻文件的推送方法根據(jù)第一客戶端采集到的用戶的第一清唱音頻數(shù)據(jù)獲取用于表示用戶的第一清唱音頻數(shù)據(jù)的音域的第一音頻向量,進(jìn)一步通過在音頻文件集合中查找到與第一音頻向量相匹配的第二音頻向量對(duì)應(yīng)的目標(biāo)音頻文件,實(shí)現(xiàn)向第一客戶端準(zhǔn)確推送更加符合用戶自身的音域特點(diǎn)的目標(biāo)音頻文件,以達(dá)到提高音頻文件推送的準(zhǔn)確性的效果,進(jìn)而克服了現(xiàn)有技術(shù)中僅僅通過搜索量或點(diǎn)播量的方式推送歌曲所造成的推送準(zhǔn)確性較低的問題。進(jìn)一步,通過向用戶 推送符合用戶音域的目標(biāo)音頻文件,還將使用戶在通過目標(biāo)音頻文件進(jìn)行演唱時(shí),達(dá)到更佳的演唱效果,以改善用戶通過上述推送方法獲取音頻文件的體驗(yàn)。
作為一種可選的方案,多幀第一音頻數(shù)據(jù)為m幀第一音頻數(shù)據(jù),每一幀第一音頻數(shù)據(jù)包括一個(gè)基頻數(shù)據(jù),其中,根據(jù)多幀第一音頻數(shù)據(jù)中每一幀第一音頻數(shù)據(jù)上用于表示音高的基頻數(shù)據(jù)獲取用于表示第一清唱音頻數(shù)據(jù)的音域的第一音頻向量包括:
s1,將預(yù)定的基頻段劃分成n個(gè)連續(xù)的子段;
s2,獲取每個(gè)子段中包含的多幀第一音頻數(shù)據(jù)的基頻數(shù)據(jù)的數(shù)量{x1,x2…xn},其中,xi表示第i個(gè)子段中包含的多幀第一音頻數(shù)據(jù)的基頻數(shù)據(jù)的數(shù)量,1≤i≤n,x1+x2+…xn=m;
s3,將第一音頻向量{x1,x2,...,xn}設(shè)置為{x1/m,x2/m…xn/m}。
可選地,在本實(shí)施例中,上述第一客戶端采集到的第一清唱音頻數(shù)據(jù)可以包括但不限于一個(gè)或多個(gè)。其中,多個(gè)第一清唱音頻數(shù)據(jù)可以為關(guān)于同一個(gè)音頻文件的多個(gè)第一清唱音頻數(shù)據(jù),例如,第一客戶端采集到關(guān)于同一首歌曲的f個(gè)第一清唱音頻數(shù)據(jù);也可以為分別關(guān)于不同音頻文件的多個(gè)第一清唱音頻數(shù)據(jù),例如,第一客戶端采集到分別針對(duì)h首歌曲的h個(gè)第一清唱音頻數(shù)據(jù)。對(duì)多個(gè)第一清唱音頻數(shù)據(jù)中的每一個(gè)第一清唱音頻數(shù)據(jù)所執(zhí)行的操作相同,本實(shí)施例中對(duì)此不做任何限定。
具體結(jié)合以下示例進(jìn)行說明,假設(shè)第一清唱音頻數(shù)據(jù)為一個(gè),第一清唱音頻數(shù)據(jù)包括多幀第一音頻數(shù)據(jù)為m幀第一音頻數(shù)據(jù),如圖3所示,m=25,每一幀第一音頻數(shù)據(jù)包括一個(gè)基頻數(shù)據(jù),例如,該基頻數(shù)據(jù)為每一幀第一音頻數(shù)據(jù)的最大值。將預(yù)定的基頻段50-550hz劃分為n個(gè)連續(xù)的子段,n=10。其中,小于50hz的按50hz處理,大于550hz的按550hz處理。進(jìn)一步,獲取每個(gè)子段中包含的多幀第一音頻數(shù)據(jù)的基頻數(shù)據(jù)的數(shù)量{x1,x2…xn}為{4,2,2,3,3,1,5,2,1,2},根據(jù)上述數(shù)量可以 設(shè)置第一音頻向量為{4/25,2/25,2/25,3/25,3/25,1/25,5/25,2/25,1/25,2/25}。
通過本申請(qǐng)?zhí)峁┑膶?shí)施例,通過對(duì)獲取的第一清唱音頻數(shù)據(jù)所包括的多幀第一音頻數(shù)據(jù)中每一幀基頻數(shù)據(jù)進(jìn)行量化處理,獲取在預(yù)定的基頻段上每個(gè)子段中包含的多幀第一音頻數(shù)據(jù)的基頻數(shù)據(jù)的數(shù)量,從而獲取用于表示第一清唱音頻數(shù)據(jù)的第一音頻向量,以便于根據(jù)該第一音頻向量從音頻文件集合中海量的音頻文件中查找到與第一清唱音頻數(shù)據(jù)相匹配的目標(biāo)音頻文件,從而達(dá)到向第一客戶端準(zhǔn)確推送更加符合用戶自身音域特點(diǎn)的目標(biāo)音頻文件,進(jìn)而提升用戶通過所推送的目標(biāo)音頻文件進(jìn)行演唱的演唱效果。
作為一種可選的方案,在將預(yù)定的基頻段劃分成n個(gè)連續(xù)的子段之前,還包括:
s1,每隔預(yù)定幀移從第一清唱音頻數(shù)據(jù)中獲取幀長(zhǎng)相同的多幀第一音頻數(shù)據(jù),其中,預(yù)定幀移表示相鄰兩幀第一音頻數(shù)據(jù)的起始位置的間隔;
s2,在多幀第一音頻數(shù)據(jù)中每一幀第一音頻數(shù)據(jù)對(duì)應(yīng)的頻譜上提取最大值作為用于表示音高的基頻數(shù)據(jù)。
可選地,在本實(shí)施例中,上述預(yù)定幀移可以但不限于小于幀長(zhǎng)。其中,預(yù)定幀移表示相鄰兩幀第一音頻數(shù)據(jù)的起始位置的間隔。
例如,幀長(zhǎng)為30ms,幀移為10ms,如圖4所示,幀號(hào)為1的第一音頻數(shù)據(jù)的幀長(zhǎng)為30ms,范圍為{0,30};幀號(hào)為2的第一音頻數(shù)據(jù)的幀長(zhǎng)為30ms,范圍為{10,40},與幀號(hào)為1的第一音頻數(shù)據(jù)的幀移為10ms,即{0,10};幀號(hào)為3的第一音頻數(shù)據(jù)的幀長(zhǎng)為30ms,范圍為{20,50},與幀號(hào)為2的第一音頻數(shù)據(jù)的幀移為10ms,即{10,20}。上述僅是一種示例,本實(shí)施例中對(duì)此不做任何限定。
進(jìn)一步,在上述每一幀第一音頻數(shù)據(jù)對(duì)應(yīng)的頻譜上提取最大值作為用于表示音高的基頻數(shù)據(jù),如圖3所示的實(shí)心點(diǎn),即為每一幀第一音頻數(shù)據(jù) 中頻譜最大值。
通過本申請(qǐng)?zhí)峁┑膶?shí)施例,通過每隔預(yù)定幀移從第一清唱音頻數(shù)據(jù)中獲取幀長(zhǎng)相同的多幀第一音頻數(shù)據(jù),并從多幀第一音頻數(shù)據(jù)中每一幀第一音頻數(shù)據(jù)對(duì)應(yīng)的頻譜上提取最大值作為用于表示音高的基頻數(shù)據(jù),以便于服務(wù)器根據(jù)上述基頻數(shù)據(jù)獲取用于表示第一清唱音頻數(shù)據(jù)的第一音頻向量。
作為一種可選的方案,在獲取第一客戶端采集到的清唱音頻數(shù)據(jù)之前,還包括:
s1,獲取音頻文件集合中每一個(gè)音頻文件對(duì)應(yīng)的q個(gè)第二清唱音頻數(shù)據(jù),并將每一個(gè)音頻文件作為當(dāng)前音頻文件分別執(zhí)行以下步驟:
s12,每隔預(yù)定幀移從當(dāng)前音頻文件對(duì)應(yīng)的每一個(gè)第二清唱音頻數(shù)據(jù)中獲取幀長(zhǎng)相同的多幀第二音頻數(shù)據(jù),其中,預(yù)定幀移表示相鄰兩幀第二音頻數(shù)據(jù)的起始位置的間隔,多幀第二音頻數(shù)據(jù)為p幀第二音頻數(shù)據(jù);
s14,獲取每一個(gè)第二清唱音頻數(shù)據(jù)中每一幀第二音頻數(shù)據(jù)上一個(gè)用于表示音高的基頻數(shù)據(jù);
s16,依次令j=1,2,…,p,分別對(duì)每幀執(zhí)行以下操作,以得到p個(gè)基頻數(shù)據(jù),其中,每幀對(duì)應(yīng)一個(gè)基頻數(shù)據(jù):從q個(gè)第二清唱音頻數(shù)據(jù)中的第j幀第二音頻數(shù)據(jù)的基頻數(shù)據(jù)中選擇一個(gè)基頻數(shù)據(jù)作為第j幀對(duì)應(yīng)的基頻數(shù)據(jù);
s18,將預(yù)定的基頻段劃分成n個(gè)連續(xù)的子段;
s20,獲取每個(gè)子段中包含的p個(gè)基頻數(shù)據(jù)中的基頻數(shù)據(jù)的數(shù)量{y1,y2…yn},其中,yi表示第j個(gè)子段中包含的p個(gè)基頻數(shù)據(jù)中的基頻數(shù)據(jù)的數(shù)量,1≤j≤n,y1+y2+…yn=p;
s22,將當(dāng)前音頻文件的第二音頻向量{y1,y2,...,yn}設(shè)置為{y1/p,y2/p…yn/p}。
可選地,在本實(shí)施例中,音頻文件集合(例如在線曲庫(kù))中可以包括的但不限于多個(gè)音頻文件,其中,在獲取第一客戶端采集到的清唱音頻數(shù)據(jù)之前,可以但不限于獲取每一個(gè)音頻文件對(duì)應(yīng)數(shù)量的第二清唱音頻數(shù)據(jù)。
具體結(jié)合以下示例進(jìn)行說明,如圖5所示,假設(shè)音頻文件集合中包括s個(gè)音頻文件,其中第i個(gè)音頻文件對(duì)應(yīng)q個(gè)第二清唱音頻數(shù)據(jù)。進(jìn)一步,將每一個(gè)音頻文件作為當(dāng)前音頻文件分別執(zhí)行以下步驟,這里,當(dāng)前音頻文件以音頻文件i為例進(jìn)行說明,其中,音頻文件i對(duì)應(yīng)q個(gè)第二清唱音頻數(shù)據(jù),q=100:
每隔預(yù)定幀移10ms從音頻文件i對(duì)應(yīng)的每一個(gè)第二清唱音頻數(shù)據(jù)中獲取幀長(zhǎng)為30ms的p幀第二音頻數(shù)據(jù),其中,p=100;獲取每一個(gè)第二清唱音頻數(shù)據(jù)中每一幀第二音頻數(shù)據(jù)上一個(gè)用于表示音高的基頻數(shù)據(jù),如圖6所示為某一個(gè)第二清唱音頻數(shù)據(jù)的基頻數(shù)據(jù)。
進(jìn)一步,依次令j=1,2,…,100,分別對(duì)每幀第二音頻數(shù)據(jù)執(zhí)行以下操作,以得到待操作的清唱音頻數(shù)據(jù)中的100個(gè)基頻數(shù)據(jù),其中,每幀對(duì)應(yīng)一個(gè)基頻數(shù)據(jù):從100個(gè)第二清唱音頻數(shù)據(jù)中的第j幀第二音頻數(shù)據(jù)的基頻數(shù)據(jù)中選擇一個(gè)基頻數(shù)據(jù)作為第j幀對(duì)應(yīng)的基頻數(shù)據(jù)。也就是說,在對(duì)多個(gè)第二清唱音頻數(shù)據(jù)中第j幀上的基頻數(shù)據(jù)進(jìn)行比對(duì)后,從中選擇一個(gè)基頻數(shù)據(jù)作為第j幀對(duì)應(yīng)的基頻數(shù)據(jù),通過這種方式獲取各幀上的基頻數(shù)據(jù)以得到用于獲取第二音頻向量的待操作的清唱音頻數(shù)據(jù)。
對(duì)獲取到的待操作的清唱音頻數(shù)據(jù)執(zhí)行以下步驟:獲取待操作的清唱音頻數(shù)據(jù)中的100個(gè)基頻數(shù)據(jù)在劃分成n個(gè)連續(xù)的子段(n=10)后的預(yù)定的基頻段上的每個(gè)子段中所包含的基頻數(shù)據(jù)的數(shù)量{y1,y2…yn}為{2,3,5,6,…2},根據(jù)上述數(shù)量可以設(shè)置第二音頻向量為{2/100,3/100…2/100}。
通過本申請(qǐng)?zhí)峁┑膶?shí)施例,通過由每一個(gè)音頻文件對(duì)應(yīng)的q個(gè)第二清唱數(shù)據(jù)獲取與該音頻文件對(duì)應(yīng)的第二音頻向量,以便于服務(wù)器根據(jù)第二音頻向量與第一音頻向量進(jìn)行匹配,從而實(shí)現(xiàn)快速準(zhǔn)確地查找到與第一客戶 端所采集的第一清唱音頻數(shù)據(jù)對(duì)應(yīng)的目標(biāo)音頻文件,進(jìn)而達(dá)到提高音頻文件推送的準(zhǔn)確性的目的。
作為一種可選的方案,
s1,獲取每一個(gè)第二清唱音頻數(shù)據(jù)中每一幀第二音頻數(shù)據(jù)上一個(gè)用于表示音高的基頻數(shù)據(jù)包括:在每一幀第二音頻數(shù)據(jù)對(duì)應(yīng)的頻譜上提取最大值作為用于表示音高的基頻數(shù)據(jù);
s2,依次令j=1,2,…,p,分別對(duì)每幀執(zhí)行以下操作,以得到p個(gè)基頻數(shù)據(jù)包括:
s22,根據(jù)每一個(gè)第二清唱音頻數(shù)據(jù)中每一幀第二音頻數(shù)據(jù)上用于表示音高的基頻數(shù)據(jù),從當(dāng)前音頻文件對(duì)應(yīng)的q個(gè)第二清唱音頻數(shù)據(jù)中選擇非0值的基頻數(shù)據(jù)的個(gè)數(shù)靠前的r個(gè)第二清唱音頻數(shù)據(jù);
s24,依次令j=1,2,…,p,分別對(duì)每幀執(zhí)行以下操作,以得到p個(gè)基頻數(shù)據(jù),其中,每幀對(duì)應(yīng)一個(gè)基頻數(shù)據(jù):從r個(gè)第二清唱音頻數(shù)據(jù)中的第j幀第二音頻數(shù)據(jù)的基頻數(shù)據(jù)中選擇取值為中間值的一個(gè)基頻數(shù)據(jù)作為第j幀對(duì)應(yīng)的基頻數(shù)據(jù)。
可選地,在本實(shí)施例中,上述基頻數(shù)據(jù)的取值可以但不限于在對(duì)采集到的基頻數(shù)據(jù)進(jìn)行3點(diǎn)中值濾波后得到。其中,上述非0值的基頻數(shù)據(jù)可以但不限于中值濾波后得到的基頻非0值。
具體結(jié)合以下示例進(jìn)行說明,仍以音頻文件i為例進(jìn)行說明,其中,音頻文件i對(duì)應(yīng)q個(gè)第二清唱音頻數(shù)據(jù),q=100,每隔預(yù)定幀移10ms從音頻文件i對(duì)應(yīng)的每一個(gè)第二清唱音頻數(shù)據(jù)中獲取幀長(zhǎng)為30ms的p幀第二音頻數(shù)據(jù),其中,p=100;在每一個(gè)第二清唱音頻數(shù)據(jù)中每一幀第二音頻數(shù)據(jù)對(duì)應(yīng)的頻譜上提取最大值作為用于表示音高的基頻數(shù)據(jù)。對(duì)上述每幀執(zhí)行以下步驟,以得到待操作的清唱音頻數(shù)據(jù)中的100個(gè)基頻數(shù)據(jù):
從當(dāng)前音頻文件(即音頻文件i)對(duì)應(yīng)的100個(gè)第二清唱音頻數(shù)據(jù)中選擇非0值的基頻數(shù)據(jù)的個(gè)數(shù)靠前的r個(gè)第二清唱音頻數(shù)據(jù),r=45;從 45個(gè)第二清唱音頻數(shù)據(jù)中的第j幀第二音頻數(shù)據(jù)的基頻數(shù)據(jù)中選擇取值為中間值的一個(gè)基頻數(shù)據(jù)作為第j幀對(duì)應(yīng)的基頻數(shù)據(jù)。
例如,如圖7所示,對(duì)45個(gè)第二清唱音頻數(shù)據(jù)中幀號(hào)為1的第二音頻數(shù)據(jù)上的基頻數(shù)據(jù)進(jìn)行排序,獲取取值為中間值的一個(gè)基頻數(shù)據(jù),例如取值為中間值的一個(gè)基頻數(shù)據(jù)所在的第二音頻數(shù)據(jù)的標(biāo)識(shí)為3,即,將標(biāo)識(shí)為3的第二音頻數(shù)據(jù)中第1幀上的基頻數(shù)據(jù)作為待操作的清唱音頻數(shù)據(jù)上第1幀上的基頻數(shù)據(jù);又例如,經(jīng)排序?qū)?biāo)識(shí)為3的第二音頻數(shù)據(jù)中第2幀上的基頻數(shù)據(jù)作為待操作的清唱音頻數(shù)據(jù)上第2幀上的基頻數(shù)據(jù);又例如,經(jīng)排序?qū)?biāo)識(shí)為20的第二音頻數(shù)據(jù)的第3幀上的基頻數(shù)據(jù)作為待操作的清唱音頻數(shù)據(jù)上第3幀上的基頻數(shù)據(jù),依次類推。通過這種方式得到用于獲取第二音頻向量的待操作的清唱音頻數(shù)據(jù)中的100幀基頻數(shù)據(jù)。
需要說明的是,在本實(shí)施例中,由于有些用戶提供的清唱音頻數(shù)據(jù)中會(huì)存在大量靜音,而靜音數(shù)據(jù)的取值是0,因而,通過上述方式可以將不完整的第二清唱音頻數(shù)據(jù)過濾掉,從而保證根據(jù)第二清唱音頻數(shù)據(jù)獲取到的第二音頻向量的準(zhǔn)確性。
通過本申請(qǐng)?zhí)峁┑膶?shí)施例,通過上述方式得到用于獲取第二音頻向量的基頻數(shù)據(jù),不僅可以實(shí)現(xiàn)對(duì)無效音頻數(shù)據(jù)(如靜音)的過濾,而且進(jìn)一步可以保證利用上述過濾后的第二清唱音頻數(shù)據(jù)得到更加準(zhǔn)確的用于表示音頻文件的第二音頻向量。
作為一種可選的方案,根據(jù)清唱音頻數(shù)據(jù)的音頻向量從存儲(chǔ)的音頻文件集合中查找目標(biāo)音頻文件包括:
s1,在音頻文件集合中查找第二音頻向量與第一音頻向量距離小于預(yù)定閾值的音頻文件作為目標(biāo)音頻文件。
可選地,在本實(shí)施例中,上述第二音頻向量與第一音頻向量距離可以但不限于用于指示第一清唱音頻數(shù)據(jù)與音頻文件集合中各個(gè)音頻文件的相似度。也就是說,將相似度小于預(yù)定閾值的音頻文件作為目標(biāo)音頻文件 推送給第一客戶端。需要說明的是,上述用于表示二者相似度的距離可以包含多種計(jì)算方法,本實(shí)施例中對(duì)此不做任何限定。
通過本申請(qǐng)?zhí)峁┑膶?shí)施例,通過比較音頻文件集合中音頻文件的第二音頻向量與第一清唱音頻數(shù)據(jù)的第一音頻向量的距離,來查找與第一清唱音頻數(shù)據(jù)的音域相匹配的目標(biāo)音頻文件,從而實(shí)現(xiàn)提高向第一客戶端推送音頻文件的準(zhǔn)確性。
作為一種可選的方案,在音頻文件集合中查找第二音頻向量與第一音頻向量距離小于預(yù)定閾值的音頻文件作為目標(biāo)音頻文件包括:
s1,通過以下方式獲取音頻文件集合中第j個(gè)音頻文件的距離lj:
其中,xi為第一音頻向量中的第i個(gè)向量值,yi為第二音頻向量中的第i個(gè)向量值,zi為預(yù)定權(quán)重,i、j為自然數(shù),n為在預(yù)定的基頻段劃分的連續(xù)的子段的個(gè)數(shù),1≤i≤n。
可選地,在本實(shí)施例中,上述預(yù)定權(quán)重zi可以但不限于用于調(diào)整高音或低音區(qū)對(duì)用戶的要求,例如,該預(yù)定權(quán)重可以為:{10,5,2,1,1,1,1,2,5,10}。
通過本申請(qǐng)?zhí)峁┑膶?shí)施例,通過上述方式獲取與第一清唱音頻數(shù)據(jù)的第一音頻向量相匹配的第二音頻向量,進(jìn)而獲取對(duì)應(yīng)的音頻文件作為推送給第一客戶端的目標(biāo)音頻文件,以保證所推送的目標(biāo)音頻文件與第一清唱音頻數(shù)據(jù)的音域向匹配,達(dá)到提升用戶演唱目標(biāo)音頻文件的演唱效果。
作為一種可選的方案,將查找到的目標(biāo)音頻文件推送給第一客戶端包括:
s1,獲取目標(biāo)音頻文件的熱度;
s2,按照熱度對(duì)目標(biāo)音頻文件進(jìn)行排序,以得到待推送的目標(biāo)音頻文 件列表,其中,熱度高的目標(biāo)音頻文件在目標(biāo)音頻文件列表中的位置位于熱度低的目標(biāo)音頻文件在目標(biāo)音頻文件列表中的位置之前;
s3,向第一客戶端推送目標(biāo)音頻文件列表。
可選地,在本實(shí)施例中,上述熱度可以但不限于通過以下至少一種方式獲?。核阉髁?、點(diǎn)播量。也就是說,在獲取到多個(gè)目標(biāo)音頻文件后,還可以結(jié)合各個(gè)目標(biāo)音頻文件的熱度,按照預(yù)定順序推送給第一客戶端與第一清唱音頻數(shù)據(jù)對(duì)應(yīng)的目標(biāo)音頻文件列表,其中,熱度高的目標(biāo)音頻文件在目標(biāo)音頻文件列表中的位置位于熱度低的目標(biāo)音頻文件在目標(biāo)音頻文件列表中的位置之前。
通過本申請(qǐng)?zhí)峁┑膶?shí)施例,通過上述結(jié)合熱度進(jìn)行推送的方式,進(jìn)一步方便了用戶獲取適合用戶音域特點(diǎn),并符合用戶喜好的音頻文件,以達(dá)到改善用戶體驗(yàn)的效果。
需要說明的是,對(duì)于前述的各方法實(shí)施例,為了簡(jiǎn)單描述,故將其都表述為一系列的動(dòng)作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明并不受所描述的動(dòng)作順序的限制,因?yàn)橐罁?jù)本發(fā)明,某些步驟可以采用其他順序或者同時(shí)進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動(dòng)作和模塊并不一定是本發(fā)明所必須的。
通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到根據(jù)上述實(shí)施例的方法可借助軟件加必需的通用硬件平臺(tái)的方式來實(shí)現(xiàn),當(dāng)然也可以通過硬件,但很多情況下前者是更佳的實(shí)施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)(如rom/ram、磁碟、光盤)中,包括若干指令用以使得一臺(tái)終端設(shè)備(可以是手機(jī),計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述的方法。
實(shí)施例2
根據(jù)本發(fā)明實(shí)施例,還提供了一種用于實(shí)施上述音頻文件的推送方法的音頻文件的推送裝置,如圖8所示,該裝置包括:
1)第一獲取單元802,用于獲取第一客戶端采集到的第一清唱音頻數(shù)據(jù),其中,第一清唱音頻數(shù)據(jù)包括多幀第一音頻數(shù)據(jù);
2)第二獲取單元804,用于根據(jù)多幀第一音頻數(shù)據(jù)中每一幀第一音頻數(shù)據(jù)上用于表示音高的基頻數(shù)據(jù)獲取用于表示第一清唱音頻數(shù)據(jù)的音域的第一音頻向量;
3)查找單元806,用于根據(jù)第一音頻向量從存儲(chǔ)的音頻文件集合中查找目標(biāo)音頻文件,其中,目標(biāo)音頻文件的第二音頻向量與第一音頻向量相匹配;
4)推送單元808,用于將查找到的目標(biāo)音頻文件推送給第一客戶端。
可選地,在本實(shí)施例中,上述音頻文件的推送裝置可以但不限于應(yīng)用于網(wǎng)絡(luò)在線推送音頻文件的過程中,例如,如圖1所示由服務(wù)器104向終端102上安裝的第一客戶端推送在線k歌所需的音頻文件(如伴奏歌曲)。上述僅是一種示例,本實(shí)施例中對(duì)此不作任何限定。在本實(shí)施例中,在服務(wù)器104獲取終端102上安裝的第一客戶端采集到的第一清唱音頻數(shù)據(jù)后,其中,第一清唱音頻數(shù)據(jù)包括多幀第一音頻數(shù)據(jù);可以根據(jù)上述多幀第一音頻數(shù)據(jù)中每一幀第一音頻數(shù)據(jù)上用于表示音高的基頻數(shù)據(jù)獲取用于表示第一清唱音頻數(shù)據(jù)的音域的第一音頻向量;進(jìn)一步,根據(jù)第一音域向量從存儲(chǔ)的音頻文件集合中查找目標(biāo)音頻文件,其中,目標(biāo)音頻文件的第二音頻向量與第一音頻向量相匹配;并將查找到的該目標(biāo)音頻文件推送給第一客戶端。
也就是說,服務(wù)器104在獲取終端102上的第一客戶端采集到的用戶的第一清唱音頻數(shù)據(jù)后,可以在包含多個(gè)音頻文件的音頻文件集合中查找到與所采集的第一清唱音頻數(shù)據(jù)的音域相適應(yīng)的目標(biāo)音頻文件,以使用戶通過該目標(biāo)音頻文件完成在線k歌。需要說明的是,由于所推送的目標(biāo)音 頻文件與用戶自身音域相匹配,因而,通過本實(shí)施例中提供的音頻文件的推送裝置所推送的目標(biāo)音頻文件,將更加符合用戶自身的音域特點(diǎn),從而實(shí)現(xiàn)用戶在通過本實(shí)施例所推送的目標(biāo)音頻文件進(jìn)行演唱時(shí),演唱效果更佳,進(jìn)而達(dá)到提高音頻文件推送的準(zhǔn)確性的效果,并改善了用戶體驗(yàn),以克服現(xiàn)有技術(shù)中通過搜索量或點(diǎn)播量的方式推送歌曲所造成的推送準(zhǔn)確性較低的問題。
可選地,在本實(shí)施例中,上述第一清唱音頻數(shù)據(jù)可以包括麥克風(fēng)收錄的人聲音頻數(shù)據(jù),例如,上述麥克風(fēng)收錄的人聲音頻數(shù)據(jù)可以為但不限于以下至少之一:無伴唱時(shí)通過麥克風(fēng)收錄的人聲音頻數(shù)據(jù)、有伴唱時(shí)通過麥克風(fēng)定向收錄的人聲音頻數(shù)據(jù)。其中,上述第一清唱音頻數(shù)據(jù)中可以包括但不限于:按照預(yù)定幀長(zhǎng)劃分的多幀第一音頻數(shù)據(jù),每一幀第一音頻數(shù)據(jù)中包含用于表示音高的基頻數(shù)據(jù)。需要說明的是,上述基頻數(shù)據(jù)的頻譜位于預(yù)定的基頻段內(nèi),其中,上述預(yù)定的基頻段可以包括但不限于人類聲帶振動(dòng)的頻率所在的基頻段,如50-550hz。
可選地,在本實(shí)施例中,上述第一音頻向量和第二音頻向量可以但不限于為在預(yù)定的基頻段內(nèi)劃分成n個(gè)連續(xù)的子段后,根據(jù)各個(gè)子段上統(tǒng)計(jì)的基頻數(shù)據(jù)的數(shù)量得到用于表示音域的一維n向量。例如,包括m幀第一音頻數(shù)據(jù)的第一清唱音頻數(shù)據(jù)在n個(gè)子段中的基頻數(shù)據(jù)的數(shù)量為{x1,x2…xn},其中,x1+x2+…xn=m;則可以但不限于得到對(duì)應(yīng)的第一音頻向量{x1,x2,...,xn}為{x1/m,x2/m…xn/m};同理,包括p幀第二音頻數(shù)據(jù)的第二清唱音頻數(shù)據(jù)在n個(gè)子段中的基頻數(shù)據(jù)的數(shù)量為{y1,y2…yn},其中,y1+y2+…yn=p;則可以但不限于得到對(duì)應(yīng)的第二音頻向量{y1,y2,...,yn}為{y1/p,y2/p…yn/p}。上述僅是一種示例,本實(shí)施例中對(duì)此不做任何限定。
需要說明的是,在本實(shí)施例中,上述音頻文件集合中每一個(gè)音頻文件對(duì)應(yīng)的第二音頻向量可以但不限于根據(jù)與每一個(gè)音頻文件對(duì)應(yīng)的q個(gè)第二清唱音頻數(shù)據(jù)得到??蛇x地,在本實(shí)施例中,在獲取第一客戶端采集到 的清唱音頻數(shù)據(jù)之前,還包括:獲取音頻文件集合中每一個(gè)音頻文件對(duì)應(yīng)的q個(gè)第二清唱音頻數(shù)據(jù),根據(jù)上述q個(gè)第二清唱音頻數(shù)據(jù)中每一個(gè)第二清唱音頻數(shù)據(jù)中的多幀第二音頻數(shù)據(jù)上的基頻數(shù)據(jù)獲取對(duì)應(yīng)的音頻文件的第二音頻向量。
可選地,在本實(shí)施例中,根據(jù)清唱音頻數(shù)據(jù)的音頻向量從存儲(chǔ)的音頻文件集合中查找目標(biāo)音頻文件包括:s1,在音頻文件集合中查找第二音頻向量與第一音頻向量距離小于預(yù)定閾值的音頻文件作為目標(biāo)音頻文件。通過比對(duì)每一個(gè)音頻文件的第二音頻向量與第一音頻向量的方式來查找適合用戶音域演唱的目標(biāo)音頻文件,從而實(shí)現(xiàn)為用戶推送更加準(zhǔn)確的音頻文件的效果。
可選地,在本實(shí)施例中,將查找到的目標(biāo)音頻文件推送給第一客戶端包括:結(jié)合查找到的目標(biāo)音頻文件的熱度(如搜索量和/或點(diǎn)播量),按照熱度向第一客戶端推送包含查找到的目標(biāo)音頻文件的目標(biāo)音頻文件列表,其中,熱度高的目標(biāo)音頻文件在目標(biāo)音頻文件列表中的位置位于熱度低的目標(biāo)音頻文件在目標(biāo)音頻文件列表中的位置之前。
通過本申請(qǐng)?zhí)峁┑膶?shí)施例,在獲取的第一客戶端采集到的用戶的第一清唱音頻數(shù)據(jù)后,其中,第一清唱音頻數(shù)據(jù)包括多幀第一音頻數(shù)據(jù);可以根據(jù)上述多幀第一音頻數(shù)據(jù)中每一幀第一音頻數(shù)據(jù)上用于表示音高的基頻數(shù)據(jù)獲取用于表示第一清唱音頻數(shù)據(jù)的音域的第一音頻向量;進(jìn)一步,根據(jù)第一音域向量從存儲(chǔ)的音頻文件集合中查找目標(biāo)音頻文件,其中,目標(biāo)音頻文件的第二音頻向量與第一音頻向量相匹配;并將查找到的該目標(biāo)音頻文件推送給第一客戶端。通過上述音頻文件的推送裝置根據(jù)第一客戶端采集到的用戶的第一清唱音頻數(shù)據(jù)獲取用于表示用戶的第一清唱音頻數(shù)據(jù)的音域的第一音頻向量,進(jìn)一步通過在音頻文件集合中查找到與第一音頻向量相匹配的第二音頻向量對(duì)應(yīng)的目標(biāo)音頻文件,實(shí)現(xiàn)向第一客戶端準(zhǔn)確推送更加符合用戶自身的音域特點(diǎn)的目標(biāo)音頻文件,以達(dá)到提高音頻文件推送的準(zhǔn)確性的效果,進(jìn)而克服了現(xiàn)有技術(shù)中僅僅通過搜索量或點(diǎn)播 量的方式推送歌曲所造成的推送準(zhǔn)確性較低的問題。進(jìn)一步,通過向用戶推送符合用戶音域的目標(biāo)音頻文件,還將使用戶在通過目標(biāo)音頻文件進(jìn)行演唱時(shí),達(dá)到更佳的演唱效果,以改善用戶通過上述推送裝置獲取音頻文件的體驗(yàn)。
作為一種可選的方案,多幀第一音頻數(shù)據(jù)為m幀第一音頻數(shù)據(jù),每一幀第一音頻數(shù)據(jù)包括一個(gè)基頻數(shù)據(jù),其中,如圖9所示,第二獲取單元804包括:
1)劃分模塊902,用于將預(yù)定的基頻段劃分成n個(gè)連續(xù)的子段;
2)第一獲取模塊904,用于獲取每個(gè)子段中包含的多幀第一音頻數(shù)據(jù)的基頻數(shù)據(jù)的數(shù)量{x1,x2…xn},其中,xi表示第i個(gè)子段中包含的多幀第一音頻數(shù)據(jù)的基頻數(shù)據(jù)的數(shù)量,1≤i≤n,x1+x2+…xn=m;
3)設(shè)置模塊906,用于將第一音頻向量{x1,x2,...,xn}設(shè)置為{x1/m,x2/m…xn/m}。
可選地,在本實(shí)施例中,上述第一客戶端采集到的第一清唱音頻數(shù)據(jù)可以包括但不限于一個(gè)或多個(gè)。其中,多個(gè)第一清唱音頻數(shù)據(jù)可以為關(guān)于同一個(gè)音頻文件的多個(gè)第一清唱音頻數(shù)據(jù),例如,第一客戶端采集到關(guān)于同一首歌曲的f個(gè)第一清唱音頻數(shù)據(jù);也可以為分別關(guān)于不同音頻文件的多個(gè)第一清唱音頻數(shù)據(jù),例如,第一客戶端采集到分別針對(duì)h首歌曲的h個(gè)第一清唱音頻數(shù)據(jù)。對(duì)多個(gè)第一清唱音頻數(shù)據(jù)中的每一個(gè)第一清唱音頻數(shù)據(jù)所執(zhí)行的操作相同,本實(shí)施例中對(duì)此不做任何限定。
具體結(jié)合以下示例進(jìn)行說明,假設(shè)第一清唱音頻數(shù)據(jù)為一個(gè),第一清唱音頻數(shù)據(jù)包括多幀第一音頻數(shù)據(jù)為m幀第一音頻數(shù)據(jù),如圖3所示,m=25,每一幀第一音頻數(shù)據(jù)包括一個(gè)基頻數(shù)據(jù),例如,該基頻數(shù)據(jù)為每一幀第一音頻數(shù)據(jù)的最大值。將預(yù)定的基頻段50-550hz劃分為n個(gè)連續(xù)的子段,n=10。其中,小于50hz的按50hz處理,大于550hz的按550hz處理。進(jìn)一步,獲取每個(gè)子段中包含的多幀第一音頻數(shù)據(jù)的基頻數(shù)據(jù)的數(shù) 量{x1,x2…xn}為{4,2,2,3,3,1,5,2,1,2},根據(jù)上述數(shù)量可以設(shè)置第一音頻向量為{4/25,2/25,2/25,3/25,3/25,1/25,5/25,2/25,1/25,2/25}。
通過本申請(qǐng)?zhí)峁┑膶?shí)施例,通過對(duì)獲取的第一清唱音頻數(shù)據(jù)所包括的多幀第一音頻數(shù)據(jù)中每一幀基頻數(shù)據(jù)進(jìn)行量化處理,獲取在預(yù)定的基頻段上每個(gè)子段中包含的多幀第一音頻數(shù)據(jù)的基頻數(shù)據(jù)的數(shù)量,從而獲取用于表示第一清唱音頻數(shù)據(jù)的第一音頻向量,以便于根據(jù)該第一音頻向量從音頻文件集合中海量的音頻文件中查找到與第一清唱音頻數(shù)據(jù)相匹配的目標(biāo)音頻文件,從而達(dá)到向第一客戶端準(zhǔn)確推送更加符合用戶自身音域特點(diǎn)的目標(biāo)音頻文件,進(jìn)而提升用戶通過所推送的目標(biāo)音頻文件進(jìn)行演唱的演唱效果。
作為一種可選的方案,還包括:
1)第二獲取模塊,用于在將預(yù)定的基頻段劃分成n個(gè)連續(xù)的子段之前,每隔預(yù)定幀移從第一清唱音頻數(shù)據(jù)中獲取幀長(zhǎng)相同的多幀第一音頻數(shù)據(jù),其中,預(yù)定幀移表示相鄰兩幀第一音頻數(shù)據(jù)的起始位置的間隔;
2)提取模塊,用于在多幀第一音頻數(shù)據(jù)中每一幀第一音頻數(shù)據(jù)對(duì)應(yīng)的頻譜上提取最大值作為用于表示音高的基頻數(shù)據(jù)。
可選地,在本實(shí)施例中,上述預(yù)定幀移可以但不限于小于幀長(zhǎng)。其中,預(yù)定幀移表示相鄰兩幀第一音頻數(shù)據(jù)的起始位置的間隔。
例如,幀長(zhǎng)為30ms,幀移為10ms,如圖4所示,幀號(hào)為1的第一音頻數(shù)據(jù)的幀長(zhǎng)為30ms,范圍為{0,30};幀號(hào)為2的第一音頻數(shù)據(jù)的幀長(zhǎng)為30ms,范圍為{10,40},與幀號(hào)為1的第一音頻數(shù)據(jù)的幀移為10ms,即{0,10};幀號(hào)為3的第一音頻數(shù)據(jù)的幀長(zhǎng)為30ms,范圍為{20,50},與幀號(hào)為2的第一音頻數(shù)據(jù)的幀移為10ms,即{10,20}。上述僅是一種示例,本實(shí)施例中對(duì)此不做任何限定。
進(jìn)一步,在上述每一幀第一音頻數(shù)據(jù)對(duì)應(yīng)的頻譜上提取最大值作為用 于表示音高的基頻數(shù)據(jù),如圖3所示的實(shí)心點(diǎn),即為每一幀第一音頻數(shù)據(jù)中頻譜最大值。
通過本申請(qǐng)?zhí)峁┑膶?shí)施例,通過每隔預(yù)定幀移從第一清唱音頻數(shù)據(jù)中獲取幀長(zhǎng)相同的多幀第一音頻數(shù)據(jù),并從多幀第一音頻數(shù)據(jù)中每一幀第一音頻數(shù)據(jù)對(duì)應(yīng)的頻譜上提取最大值作為用于表示音高的基頻數(shù)據(jù),以便于服務(wù)器根據(jù)上述基頻數(shù)據(jù)獲取用于表示第一清唱音頻數(shù)據(jù)的第一音頻向量。
作為一種可選的方案,還包括:
1)第三獲取單元,用于在獲取第一客戶端采集到的清唱音頻數(shù)據(jù)之前,獲取音頻文件集合中每一個(gè)音頻文件對(duì)應(yīng)的q個(gè)第二清唱音頻數(shù)據(jù);
2)處理單元,用于將每一個(gè)音頻文件作為當(dāng)前音頻文件分別執(zhí)行以下步驟:
s1,每隔預(yù)定幀移從當(dāng)前音頻文件對(duì)應(yīng)的每一個(gè)第二清唱音頻數(shù)據(jù)中獲取幀長(zhǎng)相同的多幀第二音頻數(shù)據(jù),其中,預(yù)定幀移表示相鄰兩幀第二音頻數(shù)據(jù)的起始位置的間隔,多幀第二音頻數(shù)據(jù)為p幀第二音頻數(shù)據(jù);
s2,獲取每一個(gè)第二清唱音頻數(shù)據(jù)中每一幀第二音頻數(shù)據(jù)上一個(gè)用于表示音高的基頻數(shù)據(jù);
s3,依次令j=1,2,…,p,分別對(duì)每幀執(zhí)行以下操作,以得到p個(gè)基頻數(shù)據(jù),其中,每幀對(duì)應(yīng)一個(gè)基頻數(shù)據(jù):從q個(gè)第二清唱音頻數(shù)據(jù)中的第j幀第二音頻數(shù)據(jù)的基頻數(shù)據(jù)中選擇一個(gè)基頻數(shù)據(jù)作為第j幀對(duì)應(yīng)的基頻數(shù)據(jù);
s4,將預(yù)定的基頻段劃分成n個(gè)連續(xù)的子段;
s5,獲取每個(gè)子段中包含的p個(gè)基頻數(shù)據(jù)中的基頻數(shù)據(jù)的數(shù)量{y1,y2…yn},其中,yi表示第j個(gè)子段中包含的p個(gè)基頻數(shù)據(jù)中的基頻數(shù)據(jù)的數(shù)量,1≤j≤n,y1+y2+…yn=p;
s6,將當(dāng)前音頻文件的第二音頻向量{y1,y2,...,yn}設(shè)置為{y1/p,y2/p…yn/p}。
可選地,在本實(shí)施例中,音頻文件集合(例如在線曲庫(kù))中可以包括的但不限于多個(gè)音頻文件,其中,在獲取第一客戶端采集到的清唱音頻數(shù)據(jù)之前,可以但不限于獲取每一個(gè)音頻文件對(duì)應(yīng)數(shù)量的第二清唱音頻數(shù)據(jù)。
具體結(jié)合以下示例進(jìn)行說明,如圖5所示,假設(shè)音頻文件集合中包括s個(gè)音頻文件,其中第i個(gè)音頻文件對(duì)應(yīng)q個(gè)第二清唱音頻數(shù)據(jù)。進(jìn)一步,將每一個(gè)音頻文件作為當(dāng)前音頻文件分別執(zhí)行以下步驟,這里,當(dāng)前音頻文件以音頻文件i為例進(jìn)行說明,其中,音頻文件i對(duì)應(yīng)q個(gè)第二清唱音頻數(shù)據(jù),q=100:
每隔預(yù)定幀移10ms從音頻文件i對(duì)應(yīng)的每一個(gè)第二清唱音頻數(shù)據(jù)中獲取幀長(zhǎng)為30ms的p幀第二音頻數(shù)據(jù),其中,p=100;獲取每一個(gè)第二清唱音頻數(shù)據(jù)中每一幀第二音頻數(shù)據(jù)上一個(gè)用于表示音高的基頻數(shù)據(jù),如圖6所示為某一個(gè)第二清唱音頻數(shù)據(jù)的基頻數(shù)據(jù)。
進(jìn)一步,依次令j=1,2,…,100,分別對(duì)每幀第二音頻數(shù)據(jù)執(zhí)行以下操作,以得到待操作的清唱音頻數(shù)據(jù)中的100個(gè)基頻數(shù)據(jù),其中,每幀對(duì)應(yīng)一個(gè)基頻數(shù)據(jù):從100個(gè)第二清唱音頻數(shù)據(jù)中的第j幀第二音頻數(shù)據(jù)的基頻數(shù)據(jù)中選擇一個(gè)基頻數(shù)據(jù)作為第j幀對(duì)應(yīng)的基頻數(shù)據(jù)。也就是說,在對(duì)多個(gè)第二清唱音頻數(shù)據(jù)中第j幀上的基頻數(shù)據(jù)進(jìn)行比對(duì)后,從中選擇一個(gè)基頻數(shù)據(jù)作為第j幀對(duì)應(yīng)的基頻數(shù)據(jù),通過這種方式獲取各幀上的基頻數(shù)據(jù)以得到用于獲取第二音頻向量的待操作的清唱音頻數(shù)據(jù)。
對(duì)獲取到的待操作的清唱音頻數(shù)據(jù)執(zhí)行以下步驟:獲取待操作的清唱音頻數(shù)據(jù)中的100個(gè)基頻數(shù)據(jù)在劃分成n個(gè)連續(xù)的子段(n=10)后的預(yù)定的基頻段上的每個(gè)子段中所包含的基頻數(shù)據(jù)的數(shù)量{y1,y2…yn}為{2,3,5,6,…2},根據(jù)上述數(shù)量可以設(shè)置第二音頻向量為{2/100,3/100…2/100}。
通過本申請(qǐng)?zhí)峁┑膶?shí)施例,通過由每一個(gè)音頻文件對(duì)應(yīng)的q個(gè)第二清唱數(shù)據(jù)獲取與該音頻文件對(duì)應(yīng)的第二音頻向量,以便于服務(wù)器根據(jù)第二音頻向量與第一音頻向量進(jìn)行匹配,從而實(shí)現(xiàn)快速準(zhǔn)確地查找到與第一客戶端所采集的第一清唱音頻數(shù)據(jù)對(duì)應(yīng)的目標(biāo)音頻文件,進(jìn)而達(dá)到提高音頻文件推送的準(zhǔn)確性的目的。
作為一種可選的方案,
1)處理單元通過以下步驟實(shí)現(xiàn)獲取每一個(gè)第二清唱音頻數(shù)據(jù)中每一幀第二音頻數(shù)據(jù)上一個(gè)用于表示音高的基頻數(shù)據(jù):在每一幀第二音頻數(shù)據(jù)對(duì)應(yīng)的頻譜上提取最大值作為用于表示音高的基頻數(shù)據(jù);
2)處理單元通過以下步驟實(shí)現(xiàn)依次令j=1,2,…,p,分別對(duì)每幀執(zhí)行以下操作,以得到p個(gè)基頻數(shù)據(jù):根據(jù)每一個(gè)第二清唱音頻數(shù)據(jù)中每一幀第二音頻數(shù)據(jù)上用于表示音高的基頻數(shù)據(jù),從當(dāng)前音頻文件對(duì)應(yīng)的q個(gè)第二清唱音頻數(shù)據(jù)中選擇非0值的基頻數(shù)據(jù)的個(gè)數(shù)靠前的r個(gè)第二清唱音頻數(shù)據(jù);依次令j=1,2,…,p,分別對(duì)每幀執(zhí)行以下操作,以得到p個(gè)基頻數(shù)據(jù),其中,每幀對(duì)應(yīng)一個(gè)基頻數(shù)據(jù):從r個(gè)第二清唱音頻數(shù)據(jù)中的第j幀第二音頻數(shù)據(jù)的基頻數(shù)據(jù)中選擇取值為中間值的一個(gè)基頻數(shù)據(jù)作為第j幀對(duì)應(yīng)的基頻數(shù)據(jù)。
可選地,在本實(shí)施例中,上述基頻數(shù)據(jù)的取值可以但不限于在對(duì)采集到的基頻數(shù)據(jù)進(jìn)行3點(diǎn)中值濾波后得到。其中,上述非0值的基頻數(shù)據(jù)可以但不限于中值濾波后得到的基頻非0值。
具體結(jié)合以下示例進(jìn)行說明,仍以音頻文件i為例進(jìn)行說明,其中,音頻文件i對(duì)應(yīng)q個(gè)第二清唱音頻數(shù)據(jù),q=100,每隔預(yù)定幀移10ms從音頻文件i對(duì)應(yīng)的每一個(gè)第二清唱音頻數(shù)據(jù)中獲取幀長(zhǎng)為30ms的p幀第二音頻數(shù)據(jù),其中,p=100;在每一個(gè)第二清唱音頻數(shù)據(jù)中每一幀第二音頻數(shù)據(jù)對(duì)應(yīng)的頻譜上提取最大值作為用于表示音高的基頻數(shù)據(jù)。對(duì)上述每幀執(zhí)行以下步驟,以得到待操作的清唱音頻數(shù)據(jù)中的100個(gè)基頻數(shù)據(jù):
從當(dāng)前音頻文件(即音頻文件i)對(duì)應(yīng)的100個(gè)第二清唱音頻數(shù)據(jù)中選擇非0值的基頻數(shù)據(jù)的個(gè)數(shù)靠前的r個(gè)第二清唱音頻數(shù)據(jù),r=45;從45個(gè)第二清唱音頻數(shù)據(jù)中的第j幀第二音頻數(shù)據(jù)的基頻數(shù)據(jù)中選擇取值為中間值的一個(gè)基頻數(shù)據(jù)作為第j幀對(duì)應(yīng)的基頻數(shù)據(jù)。
例如,如圖7所示,對(duì)45個(gè)第二清唱音頻數(shù)據(jù)中幀號(hào)為1的第二音頻數(shù)據(jù)上的基頻數(shù)據(jù)進(jìn)行排序,獲取取值為中間值的一個(gè)基頻數(shù)據(jù),例如取值為中間值的一個(gè)基頻數(shù)據(jù)所在的第二音頻數(shù)據(jù)的標(biāo)識(shí)為3,即,將標(biāo)識(shí)為3的第二音頻數(shù)據(jù)中第1幀上的基頻數(shù)據(jù)作為待操作的清唱音頻數(shù)據(jù)上第1幀上的基頻數(shù)據(jù);又例如,經(jīng)排序?qū)?biāo)識(shí)為3的第二音頻數(shù)據(jù)中第2幀上的基頻數(shù)據(jù)作為待操作的清唱音頻數(shù)據(jù)上第2幀上的基頻數(shù)據(jù);又例如,經(jīng)排序?qū)?biāo)識(shí)為20的第二音頻數(shù)據(jù)的第3幀上的基頻數(shù)據(jù)作為待操作的清唱音頻數(shù)據(jù)上第3幀上的基頻數(shù)據(jù),依次類推。通過這種方式得到用于獲取第二音頻向量的待操作的清唱音頻數(shù)據(jù)中的100幀基頻數(shù)據(jù)。
需要說明的是,在本實(shí)施例中,由于有些用戶提供的清唱音頻數(shù)據(jù)中會(huì)存在大量靜音,而靜音數(shù)據(jù)的取值是0,因而,通過上述方式可以將不完整的第二清唱音頻數(shù)據(jù)過濾掉,從而保證根據(jù)第二清唱音頻數(shù)據(jù)獲取到的第二音頻向量的準(zhǔn)確性。
通過本申請(qǐng)?zhí)峁┑膶?shí)施例,通過上述方式得到用于獲取第二音頻向量的基頻數(shù)據(jù),不僅可以實(shí)現(xiàn)對(duì)無效音頻數(shù)據(jù)(如靜音)的過濾,而且進(jìn)一步可以保證利用上述過濾后的第二清唱音頻數(shù)據(jù)得到更加準(zhǔn)確的用于表示音頻文件的第二音頻向量。
作為一種可選的方案,查找單元806包括:
1)查找模塊,用于在音頻文件集合中查找第二音頻向量與第一音頻向量距離小于預(yù)定閾值的音頻文件作為目標(biāo)音頻文件。
可選地,在本實(shí)施例中,上述第二音頻向量與第一音頻向量距離可以但不限于用于指示第一清唱音頻數(shù)據(jù)與音頻文件集合中各個(gè)音頻文件的 相似度。也就是說,將相似度小于預(yù)定閾值的音頻文件作為目標(biāo)音頻文件推送給第一客戶端。需要說明的是,上述用于表示二者相似度的距離可以包含多種計(jì)算方法,本實(shí)施例中對(duì)此不做任何限定。
通過本申請(qǐng)?zhí)峁┑膶?shí)施例,通過比較音頻文件集合中音頻文件的第二音頻向量與第一清唱音頻數(shù)據(jù)的第一音頻向量的距離,來查找與第一清唱音頻數(shù)據(jù)的音域相匹配的目標(biāo)音頻文件,從而實(shí)現(xiàn)提高向第一客戶端推送音頻文件的準(zhǔn)確性。
作為一種可選的方案,查找模塊通過以下方式獲取音頻文件集合中第j個(gè)音頻文件的距離lj:
其中,xi為第一音頻向量中的第i個(gè)向量值,yi為第二音頻向量中的第i個(gè)向量值,zi為預(yù)定權(quán)重,i、j為自然數(shù),n為在預(yù)定的基頻段劃分的連續(xù)的子段的個(gè)數(shù),1≤i≤n。
可選地,在本實(shí)施例中,上述預(yù)定權(quán)重zi可以但不限于用于調(diào)整高音或低音區(qū)對(duì)用戶的要求,例如,該預(yù)定權(quán)重可以為:{10,5,2,1,1,1,1,2,5,10}。
通過本申請(qǐng)?zhí)峁┑膶?shí)施例,通過上述方式獲取與第一清唱音頻數(shù)據(jù)的第一音頻向量相匹配的第二音頻向量,進(jìn)而獲取對(duì)應(yīng)的音頻文件作為推送給第一客戶端的目標(biāo)音頻文件,以保證所推送的目標(biāo)音頻文件與第一清唱音頻數(shù)據(jù)的音域向匹配,達(dá)到提升用戶演唱目標(biāo)音頻文件的演唱效果。
作為一種可選的方案,推送單元包括:
1)第三獲取模塊,用于獲取目標(biāo)音頻文件的熱度;
2)排序模塊,用于按照熱度對(duì)目標(biāo)音頻文件進(jìn)行排序,以得到待推送的目標(biāo)音頻文件列表,其中,熱度高的目標(biāo)音頻文件在目標(biāo)音頻文件列表中的位置位于熱度低的目標(biāo)音頻文件在目標(biāo)音頻文件列表中的位置之前;
3)推送模塊,用于向第一客戶端推送目標(biāo)音頻文件列表。
可選地,在本實(shí)施例中,上述熱度可以但不限于通過以下至少一種方式獲?。核阉髁?、點(diǎn)播量。也就是說,在獲取到多個(gè)目標(biāo)音頻文件后,還可以結(jié)合各個(gè)目標(biāo)音頻文件的熱度,按照預(yù)定順序推送給第一客戶端與第一清唱音頻數(shù)據(jù)對(duì)應(yīng)的目標(biāo)音頻文件列表,其中,熱度高的目標(biāo)音頻文件在目標(biāo)音頻文件列表中的位置位于熱度低的目標(biāo)音頻文件在目標(biāo)音頻文件列表中的位置之前。
通過本申請(qǐng)?zhí)峁┑膶?shí)施例,通過上述結(jié)合熱度進(jìn)行推送的方式,進(jìn)一步方便了用戶獲取適合用戶音域特點(diǎn),并符合用戶喜好的音頻文件,以達(dá)到改善用戶體驗(yàn)的效果。
實(shí)施例3
根據(jù)本發(fā)明實(shí)施例,還提供了一種用于實(shí)施上述音頻文件的推送方法的音頻文件的推送服務(wù)器,如圖10所示,該服務(wù)器包括:
1)通訊接口1002,設(shè)置為獲取第一客戶端采集到的第一清唱音頻數(shù)據(jù),其中,第一清唱音頻數(shù)據(jù)包括多幀第一音頻數(shù)據(jù);還設(shè)置為獲取音頻文件集合中的音頻文件;還設(shè)置為將查找到的目標(biāo)音頻文件推送給第一客戶端。
2)存儲(chǔ)器1004,與通訊接口1002連接,設(shè)置為存儲(chǔ)第一清唱音頻數(shù)據(jù)及音頻文件集合中的音頻文件;
3)處理器1006,與通訊接口1002及存儲(chǔ)器1004連接,設(shè)置為根據(jù)多幀第一音頻數(shù)據(jù)中每一幀第一音頻數(shù)據(jù)上用于表示音高的基頻數(shù)據(jù)獲取用于表示第一清唱音頻數(shù)據(jù)的音域的第一音頻向量;還設(shè)置為根據(jù)第一音頻向量從存儲(chǔ)的音頻文件集合中查找目標(biāo)音頻文件,其中,目標(biāo)音頻文件的第二音頻向量與第一音頻向量相匹配。
可選地,本實(shí)施例中的具體示例可以參考上述實(shí)施例1和實(shí)施例2中所描述的示例,本實(shí)施例在此不再贅述。
實(shí)施例4
本發(fā)明的實(shí)施例還提供了一種存儲(chǔ)介質(zhì)。可選地,在本實(shí)施例中,存儲(chǔ)介質(zhì)被設(shè)置為存儲(chǔ)用于執(zhí)行以下步驟的程序代碼:
s1,獲取第一客戶端采集到的第一清唱音頻數(shù)據(jù),其中,第一清唱音頻數(shù)據(jù)包括多幀第一音頻數(shù)據(jù);
s2,根據(jù)多幀第一音頻數(shù)據(jù)中每一幀第一音頻數(shù)據(jù)上用于表示音高的基頻數(shù)據(jù)獲取用于表示第一清唱音頻數(shù)據(jù)的音域的第一音頻向量;
s3,根據(jù)第一音頻向量從存儲(chǔ)的音頻文件集合中查找目標(biāo)音頻文件,其中,目標(biāo)音頻文件的第二音頻向量與第一音頻向量相匹配;
s4,將查找到的目標(biāo)音頻文件推送給第一客戶端。
可選地,在本實(shí)施例中,上述存儲(chǔ)介質(zhì)可以包括但不限于:u盤、只讀存儲(chǔ)器(rom,read-onlymemory)、隨機(jī)存取存儲(chǔ)器(ram,randomaccessmemory)、移動(dòng)硬盤、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
可選地,本實(shí)施例中的具體示例可以參考上述實(shí)施例1和實(shí)施例2中所描述的示例,本實(shí)施例在此不再贅述。
上述本發(fā)明實(shí)施例序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。
上述實(shí)施例中的集成的單元如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲(chǔ)在上述計(jì)算機(jī)可讀取的存儲(chǔ)介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)或多臺(tái)計(jì)算機(jī)設(shè)備(可為個(gè)人計(jì)算機(jī)、服務(wù)器或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分步驟。
在本發(fā)明的上述實(shí)施例中,對(duì)各個(gè)實(shí)施例的描述都各有側(cè)重,某個(gè)實(shí) 施例中沒有詳述的部分,可以參見其他實(shí)施例的相關(guān)描述。
在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的客戶端,可通過其它的方式實(shí)現(xiàn)。其中,以上所描述的裝置實(shí)施例僅僅是示意性的,例如所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,單元或模塊的間接耦合或通信連接,可以是電性或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來實(shí)現(xiàn)本實(shí)施例方案的目的。
另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。
以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本發(fā)明的保護(hù)范圍。