本申請(qǐng)屬于數(shù)據(jù)處理技術(shù)領(lǐng)域,尤其涉及一種音頻識(shí)別方法和裝置。
背景技術(shù):
隨著智能化水平的不斷提高,人們?cè)絹?lái)越多的生活都通過(guò)智能終端等實(shí)現(xiàn)。例如,近些年剛出現(xiàn)的電視互動(dòng)、音頻識(shí)別等等。舉例而言,在播放車載電臺(tái),聽(tīng)到電臺(tái)中放一首歌,想知道這首歌的名字,如果按照以前的處理方式,最多是錄下來(lái),然后問(wèn)問(wèn)朋友,或者是聽(tīng)一下歌詞,然后網(wǎng)上搜索一下。
然而,隨著智能化水平和識(shí)別技術(shù)的不斷發(fā)展,人們現(xiàn)在已經(jīng)可以通過(guò)智能終端中直接實(shí)現(xiàn)對(duì)音頻的識(shí)別,只要開(kāi)啟終端中的音樂(lè)識(shí)別功能,然后就可以自動(dòng)識(shí)別出當(dāng)前歌曲的歌名或者歌手等,更有甚至可以直接連接到音樂(lè)軟件播放該歌曲。
上述就是基于音頻指紋的電視互動(dòng)或音樂(lè)識(shí)別的簡(jiǎn)單實(shí)現(xiàn)場(chǎng)景,但是這一切都需要依賴于較為精準(zhǔn)的音頻識(shí)別技術(shù),目前,主流的音頻識(shí)別技術(shù)是:提取特征點(diǎn)對(duì),利用特征點(diǎn)對(duì)音頻進(jìn)行識(shí)別判斷,具體地,如圖1所示,首先將音樂(lè)轉(zhuǎn)換成語(yǔ)譜圖,在語(yǔ)譜圖上提取若干個(gè)如圖1所示的極值點(diǎn)。為了減少識(shí)別的難度,提升識(shí)別的效率,可以采取點(diǎn)對(duì)的方式進(jìn)行識(shí)別,即,兩個(gè)極值點(diǎn)構(gòu)成一個(gè)點(diǎn)對(duì),如圖1所示示出了7個(gè)點(diǎn)對(duì),識(shí)別時(shí),如果存在一樣的點(diǎn)對(duì)則認(rèn)為存在一個(gè)正確的匹配。
然而,由于受噪聲的影響,極值點(diǎn)不一定都在一致的位置出現(xiàn),因此點(diǎn)對(duì)可以匹配上的概率比較低,另外,這些極值點(diǎn)容易受到噪聲的干擾,不是特別穩(wěn)定,在噪聲較大的時(shí)候不能獲取較為穩(wěn)定的識(shí)別結(jié)果。
針對(duì)現(xiàn)有的音頻識(shí)別技術(shù)中所存在的匹配成功率低、以及由于抗噪能力較弱而導(dǎo)致的識(shí)別準(zhǔn)確率低的問(wèn)題,目前未提出有效的解決方案。
技術(shù)實(shí)現(xiàn)要素:
本申請(qǐng)目的在于提供一種音頻識(shí)別方法和裝置,可以有效提高匹配成功率和識(shí)別結(jié)果的準(zhǔn)確度。
本申請(qǐng)?zhí)峁┮环N音頻識(shí)別方法和裝置是這樣實(shí)現(xiàn)的:
一種音頻識(shí)別方法,所述方法包括:
對(duì)待識(shí)別音頻數(shù)據(jù)進(jìn)行分幀處理,得到多幀音頻數(shù)據(jù);
根據(jù)幀與幀之間和幀內(nèi)的音頻變化趨勢(shì),計(jì)算得到所述待識(shí)別音頻數(shù)據(jù)每一幀的特征值;
將所述待識(shí)別音頻數(shù)據(jù)每一幀的特征值與預(yù)先建立的音頻特征值對(duì)照表進(jìn)行匹配識(shí)別,得到識(shí)別結(jié)果,其中,所述音頻特征值對(duì)照表是根據(jù)樣本數(shù)據(jù)幀與幀之間和幀內(nèi)的音頻變化趨勢(shì)建立的。
一種音頻識(shí)別裝置裝置,所述裝置包括:
分幀模塊,用于對(duì)待識(shí)別音頻數(shù)據(jù)進(jìn)行分幀處理,得到多幀音頻數(shù)據(jù);
計(jì)算模塊,用于根據(jù)幀與幀之間和幀內(nèi)的音頻變化趨勢(shì),計(jì)算得到所述待識(shí)別音頻數(shù)據(jù)每一幀的特征值;
匹配識(shí)別模塊,用于將所述待識(shí)別音頻數(shù)據(jù)每一幀的特征值與預(yù)先建立的音頻特征值對(duì)照表進(jìn)行匹配識(shí)別,得到識(shí)別結(jié)果,其中,所述音頻特征值對(duì)照表是根據(jù)樣本數(shù)據(jù)幀與幀之間和幀內(nèi)的音頻變化趨勢(shì)建立的。
本申請(qǐng)?zhí)峁┑囊环N音頻識(shí)別方法和裝置,通過(guò)根據(jù)幀與幀之間和幀內(nèi)的音頻變化趨勢(shì),計(jì)算得到待識(shí)別音頻數(shù)據(jù)每一幀的特征值,然后將每一幀的特征值與預(yù)先建立的音頻特征值對(duì)照表進(jìn)行匹配識(shí)別,從而得到識(shí)別結(jié)果,即,在頻域不是提取極值點(diǎn),而是利用幀與幀之間、幀內(nèi)之間的比較關(guān)系,獲得一個(gè)相對(duì)穩(wěn)定的編碼結(jié)果,從而可以有效地對(duì)抗噪聲的干擾,使得識(shí)別結(jié)果更為準(zhǔn)確。利用本申請(qǐng)實(shí)施方案,不僅可以大大提高抗干擾的能力,還可以有效提高識(shí)別成功率和識(shí)別結(jié)果的準(zhǔn)確度。
附圖說(shuō)明
為了更清楚地說(shuō)明本申請(qǐng)實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本申請(qǐng)中記載的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是現(xiàn)有的基于提取特征點(diǎn)對(duì)的音頻識(shí)別方法示意圖;
圖2是本申請(qǐng)?zhí)峁┑囊纛l識(shí)別方法一種實(shí)施例的方法流程圖;
圖3是本申請(qǐng)?zhí)峁┑奶卣飨蛄渴疽鈭D;
圖4是本申請(qǐng)?zhí)峁┑囊纛l特征值對(duì)照表示意圖;
圖5是本申請(qǐng)?zhí)峁┑拇R(shí)別音頻數(shù)據(jù)識(shí)別匹配示意圖;
圖6是本申請(qǐng)?zhí)峁┑亩M(jìn)制比特位求和示意圖;
圖7是本申請(qǐng)?zhí)峁┑囊纛l識(shí)別裝置的模塊結(jié)構(gòu)示意圖。
具體實(shí)施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本申請(qǐng)中的技術(shù)方案,下面將結(jié)合本申請(qǐng)實(shí)施例中的附圖,對(duì)本申請(qǐng)實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本申請(qǐng)一部分實(shí)施例,而不是全部的實(shí)施例?;诒旧暾?qǐng)中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本申請(qǐng)保護(hù)的范圍。
為了使本技術(shù)領(lǐng)域的人員更好地理解本申請(qǐng)中的技術(shù)方案,下面將結(jié)合本申請(qǐng)實(shí)施例中的附圖,對(duì)本申請(qǐng)實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本申請(qǐng)一部分實(shí)施例,而不是全部的實(shí)施例?;诒旧暾?qǐng)中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本申請(qǐng)保護(hù)的范圍。
圖2是本申請(qǐng)所述一種音頻識(shí)別方法一個(gè)實(shí)施例的方法流程圖。雖然本申請(qǐng)?zhí)峁┝巳缦率鰧?shí)施例或附圖所示的方法操作步驟或裝置結(jié)構(gòu),但基于常規(guī)或者無(wú)需創(chuàng)造性的勞動(dòng)在所述方法或裝置中可以包括更多或者更少的操作步驟或模塊單元。在邏輯性上不存在必要因果關(guān)系的步驟或結(jié)構(gòu)中,這些步驟的執(zhí)行順序或裝置的模塊結(jié)構(gòu)不限于本申請(qǐng)實(shí)施例描述及附圖所示的執(zhí)行順序或模塊結(jié)構(gòu)。所述的方法或模塊結(jié)構(gòu)的在實(shí)際中的裝置或終端產(chǎn)品應(yīng)用時(shí),可以按照實(shí)施例或者附圖所示的方法或模塊結(jié)構(gòu)連接進(jìn)行順序執(zhí)行或者并行執(zhí)行(例如并行處理器或者多線程處理的環(huán)境,甚至分布式處理環(huán)境)。
具體的如圖2所述,本申請(qǐng)一種實(shí)施例提供的一種音頻識(shí)別方法可以包括:
S1:對(duì)待識(shí)別音頻數(shù)據(jù)進(jìn)行分幀處理,得到多幀音頻數(shù)據(jù);
待識(shí)別的音頻數(shù)據(jù)可以是音頻識(shí)別軟件所錄取的一小段語(yǔ)音,或者是在電視互動(dòng)上的一段語(yǔ)音,一般主要是為了識(shí)別出這段語(yǔ)音的出處。在錄取后,可以將其進(jìn)行分幀處理,例如,可以每30ms作為一幀數(shù)據(jù),當(dāng)然,具體選擇多少ms作為一幀音頻數(shù)據(jù)的長(zhǎng)度,本申請(qǐng)不作限定,可以按照實(shí)際需要選擇,20ms,25ms,40ms等都可以。但是需要保證的是,待識(shí)別音頻數(shù)據(jù)分幀處理的規(guī)則需要與預(yù)先建立的音頻特征值對(duì)照表時(shí)的分幀原則相同。
進(jìn)一步的,因?yàn)樵谶M(jìn)行匹配識(shí)別的時(shí)候,由于分幀的影響,難免會(huì)出現(xiàn)偏差,為了減少偏差的影響,在分幀處理的時(shí)候,需要設(shè)定幀與幀之間是重疊的,以30ms作為一幀為例進(jìn)行說(shuō)明,第一幀是0到30ms,那么第二幀就是16ms到45ms,第三幀就是30ms到60ms,即,按照相鄰幀以預(yù)定毫秒數(shù)重疊的劃分規(guī)則,對(duì)所述待識(shí)別音頻數(shù)據(jù)進(jìn)行分幀處理,也就是說(shuō),相鄰幀之間是重疊的,從而避免了幀劃分造成的偏差對(duì)匹配結(jié)果的影響。
在進(jìn)行后續(xù)的數(shù)據(jù)處理前,可以對(duì)每一幀音頻數(shù)據(jù)進(jìn)行快速傅立葉變換(Fast Fourier Transform,簡(jiǎn)稱為FFT)變換,從而將音頻數(shù)據(jù)轉(zhuǎn)換至頻域,在頻域?qū)π盘?hào)進(jìn)行分析。
S2:根據(jù)幀與幀之間和幀內(nèi)的音頻變化趨勢(shì),計(jì)算得到所述待識(shí)別音頻數(shù)據(jù)每一幀的特征值;
在確定特征的過(guò)程中,可以針對(duì)上述FFT變換后得到的頻域結(jié)果,利用MFCC特征參數(shù)提取算法,獲得預(yù)定維數(shù)的特征向量(例如12維),之所以采用MFCC特征參數(shù)提取算法,是因?yàn)镸FCC特征在語(yǔ)音識(shí)別中能夠提取出信號(hào)中的明顯變化區(qū)域,具有較好的區(qū)分性。MFCC是Mel頻率倒譜系數(shù)的縮寫,其中,Mel頻率是基于人耳聽(tīng)覺(jué)特性提出來(lái)的,它與Hz頻率成非線性對(duì)應(yīng)關(guān)系。Mel頻率倒譜系數(shù)(MFCC)則是利用它們之間的這種關(guān)系,計(jì)算得到的Hz頻譜特征,由于Mel頻率與Hz頻率之間非線性的對(duì)應(yīng)關(guān)系,使得MFCC隨著頻率的提高,其計(jì)算精度隨之下降。因此,在應(yīng)用中常常只使用低頻MFCC,而丟棄中高頻MFCC。
在經(jīng)過(guò)MFCC特征計(jì)算之后,每一幀的信號(hào)就會(huì)變成一個(gè)預(yù)定維數(shù)的向量,假設(shè)是12維的向量,那么可以如圖3所示,第i幀信號(hào)就可以表示為(di0,di1…di10,di11),d為float型數(shù)據(jù)。進(jìn)一步的,為了后續(xù)比較和匹配更為簡(jiǎn)單,可以對(duì)得到的向量進(jìn)行編碼,轉(zhuǎn)換為二進(jìn)制序列或者是與二進(jìn)制序列對(duì)應(yīng)的正數(shù),具體地,按照?qǐng)D3所示的幀的特征向量表示,可以按照以下方式進(jìn)行編碼轉(zhuǎn)換:
diff=-n*t1-mt2+mt3+n2*t4
其中,di-2,j表示第i-2幀音頻數(shù)據(jù)第j個(gè)維度的向量值,di-2,j+1表示第i-2幀音頻數(shù)據(jù)第j+1個(gè)維度的向量值,di-1,j表示第i-1幀音頻數(shù)據(jù)第j個(gè)維度的向量值、di-1,j+1表示第i-1幀音頻數(shù)據(jù)第j+1個(gè)維度的向量值、di+1,j表示第i+1幀音頻數(shù)據(jù)第j個(gè)維度的向量值、di+1,j+1表示第i+1幀音頻數(shù)據(jù)第j+1個(gè)維度的向量值、di+2,j表示第i+2幀音頻數(shù)據(jù)第j個(gè)維度的向量值、di+2,j+1表示第i+2幀音頻數(shù)據(jù)第j+1個(gè)維度的向量值,t1、t2、t3、t4、diff表示中間參量、Biti,j表示第i幀音頻數(shù)據(jù)二進(jìn)制序列第j個(gè)比特位的取值,n、m為定量系數(shù)。
由上述公式可以看出,二進(jìn)制序列計(jì)算的過(guò)程中,是依據(jù)每一幀音頻數(shù)據(jù)的向量數(shù)據(jù)相鄰維度之間的向量值和相鄰幀的向量值計(jì)算得到的,即,先將待識(shí)別音頻數(shù)據(jù)的每一幀音頻數(shù)據(jù)轉(zhuǎn)換為一個(gè)預(yù)定維數(shù)的向量數(shù)據(jù);然后,根據(jù)每一幀音頻數(shù)據(jù)的向量數(shù)據(jù)相鄰維度之間的向量值和相鄰幀的向量值,將每一幀音頻數(shù)據(jù)的向量數(shù)據(jù)轉(zhuǎn)換為一個(gè)二進(jìn)制序列。
具體地,公式中是根據(jù)前后兩幀數(shù)據(jù)的向量值,以及同一幀內(nèi)相鄰向量值計(jì)算得到的,這樣就有效地將幀與幀之間、幀內(nèi)之間的關(guān)系加入了特征值的計(jì)算中。
然而,值得注意是,上述n、m就可以按照需要選取,例如,可以分別取值為2和3,那么對(duì)應(yīng)的:
diff=-2*t1-t2+t3+2*t4。
進(jìn)一步的,上述所列舉的例子和公式中,是以相鄰兩幀之間作為計(jì)算依據(jù)的,在實(shí)際執(zhí)行的時(shí)候,也可以是相鄰的三幀或者四幀等等,可以根據(jù)實(shí)際的計(jì)算精度和處理器的處理能力選取合適的幀數(shù),當(dāng)然,當(dāng)幀數(shù)選取不同的時(shí)候,上述公式也需要進(jìn)行適應(yīng)性的調(diào)整,但是調(diào)整的思路是近似的,本申請(qǐng)對(duì)此不作限定。
按照上述方式計(jì)算得到二進(jìn)制序列的過(guò)程中,如果原本向量維度是N,那么計(jì)算得到的二進(jìn)制序列的位數(shù)就是N-1,例如,如果得到的是12維的特征向量,那么得到的二進(jìn)制序列就是11位。
在本例中,可以以得到的二進(jìn)制序列作為特征值,也可以二進(jìn)制序列所對(duì)應(yīng)的十進(jìn)制作為特征值,舉例而言,如果某一幀音頻數(shù)據(jù)的二進(jìn)制序列為00000000101,那么可以以00000000101作為最終的特征值,也可以5作為最終的特征值。
總的來(lái)說(shuō),可以利用一幀內(nèi)相鄰關(guān)系的系數(shù)做比較,成為幀內(nèi)系數(shù)的比較,然后利用前后兩幀的比較信息,綜合這些前后幀和幀內(nèi)的信息形成最后的值diff,這個(gè)值與0的比較結(jié)果構(gòu)成最終對(duì)應(yīng)位的編碼值。具體地,一幀信號(hào)經(jīng)MFCC變成12維的特征系數(shù)向量后,再經(jīng)過(guò)編碼變成11位的二值序列(Biti,0,Biti,1…Biti,10),如果將該二進(jìn)制序列轉(zhuǎn)換為十進(jìn)制,那么對(duì)應(yīng)的取值范圍就是0到2的11次方。
S3:將所述待識(shí)別音頻數(shù)據(jù)每一幀的特征值與預(yù)先建立的音頻特征值對(duì)照表進(jìn)行匹配識(shí)別,得到識(shí)別結(jié)果,其中,所述音頻特征值對(duì)照表是根據(jù)樣本數(shù)據(jù)幀與幀之間和幀內(nèi)的音頻變化趨勢(shì)建立的。
為了實(shí)現(xiàn)對(duì)音頻數(shù)據(jù)的有效匹配,需要預(yù)先建立一個(gè)音頻特征值對(duì)照表,這個(gè)對(duì)照表中所記錄就是每一幀數(shù)據(jù)和這幀數(shù)據(jù)所對(duì)應(yīng)的特征值,當(dāng)然,如果音頻特征值對(duì)照表中是以二進(jìn)制方式表示特征值的,那么相應(yīng)的在音頻識(shí)別的時(shí)候,待識(shí)別音頻數(shù)據(jù)也就轉(zhuǎn)換為二進(jìn)制序列作為特征值,如果音頻特征值對(duì)照表中是以十進(jìn)制方式表示特征值的,那么相應(yīng)的在音頻識(shí)別的時(shí)候,待識(shí)別音頻數(shù)據(jù)也就轉(zhuǎn)換為十進(jìn)制作為特征值。
具體地,可以按照以下方式建立音頻特征值對(duì)照表包括:
步驟1:獲取樣本數(shù)據(jù),其中,所述樣本數(shù)據(jù)包括多段樣本音頻;
步驟2:對(duì)所述多段樣本音頻中的各段樣本音頻進(jìn)行分幀處理,得到每段樣本音頻的多幀音頻數(shù)據(jù);
步驟3:根據(jù)幀與幀之間和幀內(nèi)的音頻變化趨勢(shì),計(jì)算得到每段樣本音頻每一幀的特征值;
步驟4:以特征值作為根節(jié)點(diǎn),按照每段樣本音頻每一幀的特征值,將每段樣本音頻每一幀增加至對(duì)應(yīng)的根節(jié)點(diǎn)之后,形成對(duì)應(yīng)關(guān)系;
步驟5:將所述對(duì)應(yīng)關(guān)系作為所述音頻特征值對(duì)照表。
上述建立音頻特征值對(duì)照表的過(guò)程中,計(jì)算特征值的過(guò)程和所涉及到的原理和方式與求取待識(shí)別音頻數(shù)據(jù)的特征值是相同的,在此不再贅述。差別就在于,在建立音頻特征值對(duì)照表的時(shí)候,需要以特征值作為根節(jié)點(diǎn),按照每段樣本音頻每一幀的特征值,將每段樣本音頻每一幀增加至對(duì)應(yīng)的根節(jié)點(diǎn)之后,形成對(duì)應(yīng)關(guān)系。具體地,假設(shè)原始獲取的是12維的向量,那么最終得到的建立音頻特征值對(duì)照表可以如圖4所示.
為了使得后續(xù)可以快速識(shí)別,不僅可以包括如圖4所示的音頻特征值對(duì)照表,還可以特征數(shù)組,記錄的是每段樣本音頻的特征值。
因?yàn)橄蛄渴?2維的,那么特征值就有2048(2的11次方11)種可能性,因此音頻特征值對(duì)照表就對(duì)應(yīng)有2048個(gè)根節(jié)點(diǎn)。每個(gè)根節(jié)點(diǎn)的后續(xù)存儲(chǔ)就是所有特征值與之對(duì)應(yīng)的音頻數(shù)據(jù)幀(即,哪個(gè)聲音信號(hào)的哪一幀)。舉例:第0個(gè)跟節(jié)點(diǎn),對(duì)應(yīng)存儲(chǔ)所有特征值為0的指紋信息,如第i個(gè)聲音的第j幀對(duì)應(yīng)特征值為0,第k個(gè)聲音的第l幀特征值為0,則第0個(gè)跟節(jié)點(diǎn)下將存儲(chǔ)這些聲音片段信息(i,j)(k,l)。
為了實(shí)現(xiàn)最終的檢索識(shí)別,可以通過(guò)建立投票矩陣的方式確定較為準(zhǔn)確的匹配結(jié)果,具體地,可以包括:建立投票矩陣,其中,投票矩陣是按照樣本音頻的數(shù)量和每段樣本音頻的幀數(shù)建立的,即,該投票矩陣可以是一個(gè)二維矩陣,該二維矩陣的維數(shù)代表了數(shù)據(jù)庫(kù)中有多少樣本音頻,即數(shù)據(jù)庫(kù)中有多少聲音信號(hào),以及每個(gè)聲音信號(hào)最長(zhǎng)有多少數(shù)據(jù)幀。在建立完投票矩陣之后,可以對(duì)待識(shí)別音頻數(shù)據(jù)的每一幀執(zhí)行以下操作:從音頻特征值對(duì)照表中,查找出與當(dāng)前幀的特征值相同的一幀或多幀音頻數(shù)據(jù),在所述投票矩陣中與當(dāng)前幀的音頻特征值相同的一幀或多幀音頻數(shù)據(jù)的對(duì)應(yīng)位置進(jìn)行投票標(biāo)記;然后,將投票標(biāo)記數(shù)最高且超出預(yù)設(shè)閾值的樣本音頻作為識(shí)別結(jié)果。
具體地,可以如圖5所示,對(duì)于待識(shí)別音頻數(shù)據(jù),計(jì)算出該段音頻數(shù)據(jù)每個(gè)幀的特征值后,可以依次根據(jù)音頻特征值對(duì)照表進(jìn)行投票操作。具體地,對(duì)于待識(shí)別音頻數(shù)據(jù)的每一幀信號(hào),先找到其特征值v,并在特征索引表中找到對(duì)應(yīng)的根節(jié)點(diǎn),該節(jié)點(diǎn)下存儲(chǔ)了所有特征值為v的聲音信息,例如,待識(shí)別音頻數(shù)據(jù)第一幀的特征值為2046,那么找到音頻特征值對(duì)照表的第2046個(gè)跟節(jié)點(diǎn),該節(jié)點(diǎn)下存儲(chǔ)了第k-1個(gè)聲音信號(hào)的第l幀的特征為2046,因此,可以在投票矩陣中的(k-1,l)處做+1操作,這一+1操作就表示投票,而該投票操作的意思就是這段待識(shí)別音頻數(shù)據(jù)可能來(lái)自第k-1個(gè)聲音源的第l幀附近。
對(duì)該待識(shí)別音頻數(shù)據(jù)的所有幀的特征值進(jìn)行投票后,可以統(tǒng)計(jì)最終的投票結(jié)果,以確定哪些聲音的哪些幀獲得的投票較多,說(shuō)明待識(shí)別信號(hào)與數(shù)據(jù)庫(kù)中的這些聲音段最為相似。
然而,值得注意的是,在投票的時(shí)候是存在一個(gè)換算過(guò)程的,即,如果匹配出待識(shí)別音頻數(shù)據(jù)的第1幀與第5個(gè)樣本音頻的第3幀的特征值相同,那么后續(xù)如果匹配出待識(shí)別音頻數(shù)據(jù)的第4幀與第5個(gè)樣本音頻的第6幀的特征值相同,那么這個(gè)時(shí)候標(biāo)記的位置也是第5個(gè)樣本音頻的第1幀。即,所有的匹配的結(jié)果都投票在某個(gè)樣本音頻第一次被匹配出的位置?;蛘哒f(shuō),如果匹配出待識(shí)別音頻數(shù)據(jù)的第3幀與第8個(gè)樣本音頻的第6幀的特征值相同(這是第一次與該樣本音頻匹配上),那么后續(xù)如果匹配出待識(shí)別音頻數(shù)據(jù)的第4幀與第8個(gè)樣本音頻的第7幀的特征值相同,那么這個(gè)時(shí)候標(biāo)記的位置也是第8個(gè)樣本音頻的第6幀。即,所有的匹配的結(jié)果都投票在某個(gè)樣本音頻第一次被匹配出的位置。
當(dāng)然,也可以有其它的匹配方式,例如,待識(shí)別音頻數(shù)據(jù)每一幀特征值的匹配都是直接對(duì)應(yīng)到某一個(gè)樣本音頻,然后最終統(tǒng)計(jì)與每個(gè)樣本音頻的匹配度,這樣操作也是可行的。但是相對(duì)于匹配出某一樣本音頻的某一幀作為起始幀的方式,確定某一幀的方式顯然是更為精確的。
在實(shí)際實(shí)現(xiàn)的時(shí)候,有時(shí)可以匹配出多個(gè)滿足條件的結(jié)果,為了使得最終的結(jié)果更為準(zhǔn)確,可以設(shè)定一個(gè)匹配閾值(T),只有超出該閾值T,才進(jìn)行后續(xù)的精確匹配。例如:如果找到第i個(gè)聲音的第3幀處獲取的投票大于閾值,那么從第3幀開(kāi)始進(jìn)行片段的特征值比較。如圖6所示,假設(shè)voice_i的第3幀的特征值為f3,待識(shí)別信號(hào)的第一幀的特征值為f0,那么比較方式就是將f3和f0轉(zhuǎn)成二進(jìn)制序列后,統(tǒng)計(jì)對(duì)應(yīng)位不同的個(gè)數(shù),當(dāng)然這種比較可以通過(guò)查表的方式進(jìn)行。具體比較的時(shí)候,是用11位的二進(jìn)制序列進(jìn)行比較,這個(gè)11位的二進(jìn)制序列其實(shí)對(duì)應(yīng)一個(gè)十進(jìn)制的特征值,因此,兩個(gè)特征值的相似性比較,先將其還原到二進(jìn)制的序列,統(tǒng)計(jì)這兩個(gè)序列對(duì)應(yīng)位不同的個(gè)數(shù)。因?yàn)榇R(shí)別的音頻數(shù)據(jù)中一般有多幀的數(shù)據(jù),可以將多幀的比較結(jié)果相加,將最終統(tǒng)計(jì)結(jié)果最小值對(duì)應(yīng)的投票位置確定為識(shí)別結(jié)果。
即,可以將待識(shí)別音頻數(shù)據(jù)每一幀的特征值與預(yù)先建立的音頻特征值對(duì)照表進(jìn)行匹配識(shí)別,查找出與所述待識(shí)別音頻數(shù)據(jù)的匹配度大于預(yù)設(shè)閾值的一段或多段樣本音頻,然后,從該一段或多段樣本音頻中確定出匹配度最高的樣本音頻作為識(shí)別結(jié)果,具體地,可以對(duì)該一段或多段樣本音頻中的每段音頻執(zhí)行以下操作:確定待識(shí)別音頻數(shù)據(jù)的幀數(shù),并獲取所述待識(shí)別音頻數(shù)據(jù)每一幀的二進(jìn)制序列,確定所述待識(shí)別音頻數(shù)據(jù)每一幀的二進(jìn)制序列與所述與待識(shí)別音頻數(shù)據(jù)對(duì)應(yīng)的每一幀數(shù)據(jù)的二進(jìn)制序列之間相同比特位置比特值不同的位數(shù);將一段或多段樣本音頻中比特值不同的位數(shù)最少的樣本音頻作為識(shí)別結(jié)果。
例如:二進(jìn)制序列一為0010001,二進(jìn)制序列二為1010000,那么比較結(jié)果就是1。
上例所提供的音頻數(shù)據(jù)識(shí)別方法具有較好的魯棒性,同時(shí)提出的識(shí)別方法識(shí)別速度較快,且可以應(yīng)用在后續(xù)的電視互動(dòng)、音樂(lè)識(shí)別等場(chǎng)景中,在本例中,在頻域不是提取極值點(diǎn),而是利用幀與幀之間、幀內(nèi)之間的比較關(guān)系,獲得一個(gè)相對(duì)穩(wěn)定的編碼結(jié)果,這種編碼方式可以有效對(duì)抗一些噪聲的干擾,因?yàn)榫哂休^好的音頻識(shí)別效果。
基于同一發(fā)明構(gòu)思,本發(fā)明實(shí)施例中還提供了一種音頻識(shí)別裝置,如下面的實(shí)施例所述。由于音頻識(shí)別裝置解決問(wèn)題的原理與音頻識(shí)別方法相似,因此音頻識(shí)別裝置的實(shí)施可以參見(jiàn)音頻識(shí)別方法的實(shí)施,重復(fù)之處不再贅述。以下所使用的,術(shù)語(yǔ)“單元”或者“模塊”可以實(shí)現(xiàn)預(yù)定功能的軟件和/或硬件的組合。盡管以下實(shí)施例所描述的裝置較佳地以軟件來(lái)實(shí)現(xiàn),但是硬件,或者軟件和硬件的組合的實(shí)現(xiàn)也是可能并被構(gòu)想的。圖7是本發(fā)明實(shí)施例的音頻識(shí)別裝置的一種結(jié)構(gòu)框圖,如圖7所示,可以包括:分幀模塊701、計(jì)算模塊702和匹配識(shí)別模塊703,下面對(duì)該結(jié)構(gòu)進(jìn)行說(shuō)明。
分幀模塊701,可以用于對(duì)待識(shí)別音頻數(shù)據(jù)進(jìn)行分幀處理,得到多幀音頻數(shù)據(jù);
計(jì)算模塊702,可以用于根據(jù)幀與幀之間和幀內(nèi)的音頻變化趨勢(shì),計(jì)算得到所述待識(shí)別音頻數(shù)據(jù)每一幀的特征值;
匹配識(shí)別模塊703,可以用于將所述待識(shí)別音頻數(shù)據(jù)每一幀的特征值與預(yù)先建立的音頻特征值對(duì)照表進(jìn)行匹配識(shí)別,得到識(shí)別結(jié)果,其中,所述音頻特征值對(duì)照表是根據(jù)樣本數(shù)據(jù)幀與幀之間和幀內(nèi)的音頻變化趨勢(shì)建立的。
在一個(gè)實(shí)施方式中,上述音頻識(shí)別裝置還可以包括:對(duì)照表建立模塊,用于預(yù)先建立音頻特征值對(duì)照表,所述對(duì)照表建立模塊包括:獲取單元,用于獲取樣本數(shù)據(jù),其中,所述樣本數(shù)據(jù)包括多段樣本音頻;分幀單元,用于對(duì)所述多段樣本音頻中的各段樣本音頻進(jìn)行分幀處理,得到每段樣本音頻的多幀音頻數(shù)據(jù);計(jì)算單元,用于根據(jù)幀與幀之間和幀內(nèi)的音頻變化趨勢(shì),計(jì)算得到每段樣本音頻每一幀的特征值;關(guān)系確定單元,用于以特征值作為根節(jié)點(diǎn),按照每段樣本音頻每一幀的特征值,將每段樣本音頻每一幀增加至對(duì)應(yīng)的根節(jié)點(diǎn)之后,形成對(duì)應(yīng)關(guān)系;生成單元,用于將所述對(duì)應(yīng)關(guān)系作為所述音頻特征值對(duì)照表。
在一個(gè)實(shí)施方式中,匹配識(shí)別模塊703可以包括:建立單元,用于建立投票矩陣,其中,所述投票矩陣是按照樣本音頻的數(shù)量和每段樣本音頻的幀數(shù)建立的;執(zhí)行單元,用于對(duì)所述待識(shí)別音頻數(shù)據(jù)每一幀執(zhí)行以下操作:從所述音頻特征值對(duì)照表中,查找出與當(dāng)前幀的特征值相同的一幀或多幀音頻數(shù)據(jù),在所述投票矩陣中與當(dāng)前幀的音頻特征值相同的一幀或多幀音頻數(shù)據(jù)的對(duì)應(yīng)位置進(jìn)行投票標(biāo)記;結(jié)果生成單元,用于將投票標(biāo)記數(shù)最高且超出預(yù)設(shè)閾值的樣本音頻作為識(shí)別結(jié)果。
在一個(gè)實(shí)施方式中,計(jì)算模塊702可以包括:第一轉(zhuǎn)換單元,用于將所述待識(shí)別音頻數(shù)據(jù)的每一幀音頻數(shù)據(jù)轉(zhuǎn)換為一個(gè)預(yù)定維數(shù)的向量數(shù)據(jù);第二轉(zhuǎn)換單元,用于根據(jù)每一幀音頻數(shù)據(jù)的向量數(shù)據(jù)相鄰維度之間的向量值和相鄰幀的向量值,將每一幀音頻數(shù)據(jù)的向量數(shù)據(jù)轉(zhuǎn)換為一個(gè)二進(jìn)制序列;特征值生成單元,用于將轉(zhuǎn)換得到的二進(jìn)制序列作為對(duì)應(yīng)的一幀音頻數(shù)據(jù)的特征值,或者將二進(jìn)制序列對(duì)應(yīng)的十進(jìn)制數(shù)值作為對(duì)應(yīng)的一幀數(shù)據(jù)的特征值。
在一個(gè)實(shí)施方式中,第二轉(zhuǎn)換單元具體可以用于按照以下公式,將每一幀音頻數(shù)據(jù)的向量數(shù)據(jù)轉(zhuǎn)換為一個(gè)二進(jìn)制序列:
diff=-n*t1-mt2+mt3+n2*t4
其中,di-2,j表示第i-2幀音頻數(shù)據(jù)第j個(gè)維度的向量值,di-2,j+1表示第i-2幀音頻數(shù)據(jù)第j+1個(gè)維度的向量值,di-1,j表示第i-1幀音頻數(shù)據(jù)第j個(gè)維度的向量值、di-1,j+1表示第i-1幀音頻數(shù)據(jù)第j+1個(gè)維度的向量值、di+1,j表示第i+1幀音頻數(shù)據(jù)第j個(gè)維度的向量值、di+1,j+1表示第i+1幀音頻數(shù)據(jù)第j+1個(gè)維度的向量值、di+2,j表示第i+2幀音頻數(shù)據(jù)第j個(gè)維度的向量值、di+2,j+1表示第i+2幀音頻數(shù)據(jù)第j+1個(gè)維度的向量值,t1、t2、t3、t4、diff表示中間參量、Biti,j表示第i幀音頻數(shù)據(jù)二進(jìn)制序列第j個(gè)比特位的取值,n、m為定量系數(shù)。
在一個(gè)實(shí)施方式中,第一轉(zhuǎn)換單元具體可以用于通過(guò)MCFF特征參數(shù)提取算法,將所述待識(shí)別音頻數(shù)據(jù)的每一幀音頻數(shù)據(jù)轉(zhuǎn)換為一個(gè)預(yù)定維數(shù)的向量數(shù)據(jù)。
在一個(gè)實(shí)施方式中,預(yù)定維數(shù)可以是12。
在一個(gè)實(shí)施方式中,匹配識(shí)別模塊703可以包括:識(shí)別單元,用于將所述待識(shí)別音頻數(shù)據(jù)每一幀的特征值與預(yù)先建立的音頻特征值對(duì)照表進(jìn)行匹配識(shí)別,查找出與所述待識(shí)別音頻數(shù)據(jù)的匹配度大于預(yù)設(shè)閾值的一段或多段樣本音頻;匹配單元,用于從所述一段或多段樣本音頻中確定出匹配度最高的樣本音頻作為識(shí)別結(jié)果。
在一個(gè)實(shí)施方式中,匹配單元可以包括:執(zhí)行子單元,用于對(duì)所述一段或多段樣本音頻中的每段音頻執(zhí)行以下操作:確定所述待識(shí)別音頻數(shù)據(jù)的幀數(shù),并獲取所述待識(shí)別音頻數(shù)據(jù)每一幀的二進(jìn)制序列,獲取當(dāng)前段樣本音頻與所述待識(shí)別音頻數(shù)據(jù)對(duì)應(yīng)的每一幀數(shù)據(jù)的二進(jìn)制序列,確定所述待識(shí)別音頻數(shù)據(jù)每一幀的二進(jìn)制序列與所述與待識(shí)別音頻數(shù)據(jù)對(duì)應(yīng)的每一幀數(shù)據(jù)的二進(jìn)制序列之間相同比特位置比特值不同的位數(shù);匹配子單元,用于將所述一段或多段樣本音頻中比特值不同的位數(shù)最少的樣本音頻作為識(shí)別結(jié)果。
在一個(gè)實(shí)施方式中,分幀模塊701具體可以用于按照相鄰幀以預(yù)定毫秒數(shù)重疊的劃分規(guī)則,對(duì)所述待識(shí)別音頻數(shù)據(jù)進(jìn)行分幀處理。
本申請(qǐng)?zhí)峁┑囊环N音頻識(shí)別方法和裝置,通過(guò)根據(jù)幀與幀之間和幀內(nèi)的音頻變化趨勢(shì),計(jì)算得到待識(shí)別音頻數(shù)據(jù)每一幀的特征值,然后將每一幀的特征值與預(yù)先建立的音頻特征值對(duì)照表進(jìn)行匹配識(shí)別,從而得到識(shí)別結(jié)果,即,在頻域不是提取極值點(diǎn),而是利用幀與幀之間、幀內(nèi)之間的比較關(guān)系,獲得一個(gè)相對(duì)穩(wěn)定的編碼結(jié)果,從而可以有效地對(duì)抗噪聲的干擾,使得識(shí)別結(jié)果更為準(zhǔn)確。利用本申請(qǐng)實(shí)施方案,不僅可以大大提高抗干擾的能力,有效提高識(shí)別成功率和識(shí)別結(jié)果的準(zhǔn)確度。
本申請(qǐng)中各個(gè)實(shí)施例所涉及的上述描述僅是本申請(qǐng)中的一些實(shí)施例中的應(yīng)用,在某些標(biāo)準(zhǔn)、模型、方法的基礎(chǔ)上略加修改后的實(shí)施方式也可以實(shí)行上述本申請(qǐng)各實(shí)施例的方案。當(dāng)然,在符合本申請(qǐng)上述各實(shí)施例的中所述的處理方法步驟的其他無(wú)創(chuàng)造性的變形,仍然可以實(shí)現(xiàn)相同的申請(qǐng),在此不再贅述。
雖然本申請(qǐng)?zhí)峁┝巳鐚?shí)施例或流程圖所述的方法操作步驟,但基于常規(guī)或者無(wú)創(chuàng)造性的勞動(dòng)可以包括更多或者更少的操作步驟。實(shí)施例中列舉的步驟順序僅僅為眾多步驟執(zhí)行順序中的一種方式,不代表唯一的執(zhí)行順序。在實(shí)際中的裝置或客戶端產(chǎn)品執(zhí)行時(shí),可以按照實(shí)施例或者附圖所示的方法順序執(zhí)行或者并行執(zhí)行(例如并行處理器或者多線程處理的環(huán)境)。
上述實(shí)施例闡明的裝置或模塊,具體可以由計(jì)算機(jī)芯片或?qū)嶓w實(shí)現(xiàn),或者由具有某種功能的產(chǎn)品來(lái)實(shí)現(xiàn)。為了描述的方便,描述以上裝置時(shí)以功能分為各種模塊分別描述。在實(shí)施本申請(qǐng)時(shí)可以把各模塊的功能在同一個(gè)或多個(gè)軟件和/或硬件中實(shí)現(xiàn)。當(dāng)然,也可以將實(shí)現(xiàn)某功能的模塊由多個(gè)子模塊或子單元組合實(shí)現(xiàn)。
本申請(qǐng)中所述的方法、裝置或模塊可以以計(jì)算機(jī)可讀程序代碼方式實(shí)現(xiàn)控制器按任何適當(dāng)?shù)姆绞綄?shí)現(xiàn),例如,控制器可以采取例如微處理器或處理器以及存儲(chǔ)可由該(微)處理器執(zhí)行的計(jì)算機(jī)可讀程序代碼(例如軟件或固件)的計(jì)算機(jī)可讀介質(zhì)、邏輯門、開(kāi)關(guān)、專用集成電路(Application Specific Integrated Circuit,ASIC)、可編程邏輯控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存儲(chǔ)器控制器還可以被實(shí)現(xiàn)為存儲(chǔ)器的控制邏輯的一部分。本領(lǐng)域技術(shù)人員也知道,除了以純計(jì)算機(jī)可讀程序代碼方式實(shí)現(xiàn)控制器以外,完全可以通過(guò)將方法步驟進(jìn)行邏輯編程來(lái)使得控制器以邏輯門、開(kāi)關(guān)、專用集成電路、可編程邏輯控制器和嵌入微控制器等的形式來(lái)實(shí)現(xiàn)相同功能。因此這種控制器可以被認(rèn)為是一種硬件部件,而對(duì)其內(nèi)部包括的用于實(shí)現(xiàn)各種功能的裝置也可以視為硬件部件內(nèi)的結(jié)構(gòu)?;蛘呱踔?,可以將用于實(shí)現(xiàn)各種功能的裝置視為既可以是實(shí)現(xiàn)方法的軟件模塊又可以是硬件部件內(nèi)的結(jié)構(gòu)。
本申請(qǐng)所述裝置中的部分模塊可以在由計(jì)算機(jī)執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的一般上下文中描述,例如程序模塊。一般地,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)、類等等。也可以在分布式計(jì)算環(huán)境中實(shí)踐本申請(qǐng),在這些分布式計(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ì)中。
通過(guò)以上的實(shí)施方式的描述可知,本領(lǐng)域的技術(shù)人員可以清楚地了解到本申請(qǐng)可借助軟件加必需的硬件的方式來(lái)實(shí)現(xiàn)。基于這樣的理解,本申請(qǐng)的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),也可以通過(guò)數(shù)據(jù)遷移的實(shí)施過(guò)程中體現(xiàn)出來(lái)。該計(jì)算機(jī)軟件產(chǎn)品可以存儲(chǔ)在存儲(chǔ)介質(zhì)中,如ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),移動(dòng)終端,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本申請(qǐng)各個(gè)實(shí)施例或者實(shí)施例的某些部分所述的方法。
本說(shuō)明書(shū)中的各個(gè)實(shí)施例采用遞進(jìn)的方式描述,各個(gè)實(shí)施例之間相同或相似的部分互相參見(jiàn)即可,每個(gè)實(shí)施例重點(diǎn)說(shuō)明的都是與其他實(shí)施例的不同之處。本申請(qǐng)的全部或者部分可用于眾多通用或?qū)S玫挠?jì)算機(jī)系統(tǒng)環(huán)境或配置中。例如:個(gè)人計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、手持設(shè)備或便攜式設(shè)備、平板型設(shè)備、移動(dòng)通信終端、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、可編程的電子設(shè)備、網(wǎng)絡(luò)PC、小型計(jì)算機(jī)、大型計(jì)算機(jī)、包括以上任何系統(tǒng)或設(shè)備的分布式計(jì)算環(huán)境等等。
雖然通過(guò)實(shí)施例描繪了本申請(qǐng),本領(lǐng)域普通技術(shù)人員知道,本申請(qǐng)有許多變形和變化而不脫離本申請(qǐng)的精神,希望所附的權(quán)利要求包括這些變形和變化而不脫離本申請(qǐng)的精神。