本發(fā)明涉及一種用于嵌入式平臺(tái)的連續(xù)快速人聲聲源定位方法。
背景技術(shù):
:隨著技術(shù)的進(jìn)步,聲源定位在視頻會(huì)議、機(jī)器人聲源定位、銀行安全監(jiān)控、基于聲音的跟蹤攝像系統(tǒng)、機(jī)械故障檢測(cè)、噪聲源定位等方面得到越來(lái)越廣泛的應(yīng)用。然而由于已有聲源定位算法的復(fù)雜性,目前聲源定位的實(shí)現(xiàn)都是基于PC機(jī)或者高性能的dsp芯片,功耗高,成本高,外圍電路多,體積大,費(fèi)用高,導(dǎo)致一些體積小,電池容量小的需要聲源定位智能設(shè)備尤其是小型機(jī)器人難以大規(guī)模應(yīng)用。在計(jì)算時(shí)延方面,傳統(tǒng)的聲源定位方法在處理兩兩麥克風(fēng)聲音時(shí)延時(shí)通常采用遍歷計(jì)算兩路信號(hào)的最大互相關(guān)值或通過(guò)遍歷搜索計(jì)算互功率譜總能量值最大點(diǎn)兩種方法,前者計(jì)算的時(shí)延值只能以采樣時(shí)間間隔為最小單位,精度較差;后者在實(shí)際應(yīng)用中容易受到噪聲和回聲的影響導(dǎo)致較明顯計(jì)算誤差;而且兩種方法的計(jì)算復(fù)雜度較高,難于在低成本的嵌入式環(huán)境里實(shí)現(xiàn)。在通過(guò)時(shí)延計(jì)算定位角度方面,傳統(tǒng)的聲源定位方法多通過(guò)三個(gè)或更多時(shí)延差,代入雙曲線(xiàn)方程組進(jìn)行計(jì)算,計(jì)算復(fù)雜度高。在麥克風(fēng)陣列設(shè)計(jì)方面,傳統(tǒng)的聲源定位方法多采用四個(gè)或以上的拾音器,矩形布局或十字布局容易得出兩兩麥克風(fēng)之間的聲音時(shí)延和聲源定位角度。上述設(shè)計(jì)方式,直接導(dǎo)致嵌入式平臺(tái)的計(jì)算處理量大,在同一主頻嵌入式平臺(tái)下就會(huì)導(dǎo)致運(yùn)算時(shí)間過(guò)長(zhǎng),而且由于ADC樣本數(shù)過(guò)大,對(duì)嵌入式平臺(tái)的內(nèi)存資源也比較高,一般都需要外擴(kuò)內(nèi)存。由于對(duì)現(xiàn)有聲源定位算法的計(jì)算量和資源的耗費(fèi)量,導(dǎo)致現(xiàn)有方法在嵌入式平臺(tái)只能在一些高性能的DSP處理芯片上完成,并伴隨有大量的外圍資源的添加,以至于一些有聲源定位系統(tǒng)的設(shè)備成本昂貴。因此,一種快速聲源定位方法的在嵌入式平臺(tái)的應(yīng)用,以及基于廉價(jià)的嵌入式系統(tǒng)達(dá)到較高精度的聲源定位效果,具有重要的實(shí)際意義。技術(shù)實(shí)現(xiàn)要素:本發(fā)明目的是提供一種用于家庭服務(wù)機(jī)器人的人聲聲源定位算法,本算法在保證低成本的前提下,能夠連續(xù)快速的對(duì)人聲聲源進(jìn)行定位。一種用于嵌入式平臺(tái)的連續(xù)快速的人聲聲源定位方法,包括以下步驟:在人發(fā)聲時(shí)通過(guò)嵌入式平臺(tái)進(jìn)行ADC采樣后,進(jìn)行人聲數(shù)字化閾值判斷,當(dāng)聲音信號(hào)大于閾值時(shí)候進(jìn)行算法運(yùn)算數(shù)據(jù)采集;對(duì)采集的算法運(yùn)算數(shù)據(jù)進(jìn)行各路抽樣,分別對(duì)兩麥克風(fēng)之間時(shí)延計(jì)算;當(dāng)把每組兩兩麥克風(fēng)之間的時(shí)延計(jì)算完成后,通過(guò)雙曲線(xiàn)的漸近線(xiàn)方程估計(jì)方向角;對(duì)各組時(shí)延值計(jì)算的方向角,采用質(zhì)心法估計(jì)最終方向角度。進(jìn)一步地,對(duì)兩麥克風(fēng)之間時(shí)延計(jì)算具體為:進(jìn)行聲音信號(hào)歸一化并對(duì)有效聲音數(shù)據(jù)長(zhǎng)度判別,進(jìn)行聲音信號(hào)的回聲和噪聲過(guò)濾,計(jì)算兩路信號(hào)的互功率譜,搜索擬合互功率譜的相位角,通過(guò)相位角計(jì)算出時(shí)延。進(jìn)一步地,采用互功率譜相位計(jì)算方法具體為:首先將信號(hào)通過(guò)傅里葉變換從時(shí)域轉(zhuǎn)換為頻域,然后將信號(hào)進(jìn)行分幀處理,再進(jìn)行加海明窗處理,分幀后累加,計(jì)算平均相位譜;然后采用線(xiàn)性搜索法對(duì)具有周期性的相位譜逼近擬合,先確定兩兩麥克風(fēng)之間的最大時(shí)延,為兩兩麥克風(fēng)之間的距離d除以聲速v則為兩個(gè)方向的最大時(shí)延t+max和t-max;那么搜索范圍在(t-max,t+max)內(nèi),確定步長(zhǎng)后,計(jì)算范圍內(nèi)的各點(diǎn)與原頻譜的均方和,進(jìn)而比較計(jì)算出均方和最小的相位值即為所求,根據(jù)傅里葉的時(shí)移特性計(jì)算出對(duì)應(yīng)的三組時(shí)延t13、t12、t23。進(jìn)一步地,進(jìn)行加海明窗處理中,海明窗函數(shù)為W(n,α)=(1-α)-α(2*π*n/(N-1)),其中,α為本算法的海明窗函數(shù)特定參數(shù),α=0.46,N是長(zhǎng)度為512窗口,n為窗口長(zhǎng)度內(nèi)的各點(diǎn),海明窗處理后的每幀偏移比率為0.25。進(jìn)一步地,采用等邊三角形麥克風(fēng)陣列,即麥克風(fēng)呈等邊三角形分布,通過(guò)模擬電路對(duì)語(yǔ)音原始信號(hào)進(jìn)行濾波增益,利用數(shù)模轉(zhuǎn)化器進(jìn)行三路麥克風(fēng)聲音信號(hào)的拾取。進(jìn)一步地,采用質(zhì)心法估計(jì)最終方向角度,具體為:根據(jù)兩兩麥克風(fēng)之間的時(shí)延值一定,得到一組三個(gè)雙曲線(xiàn)方程,聲源位置應(yīng)為雙曲線(xiàn)上的某一點(diǎn),做各雙曲線(xiàn)的漸進(jìn)線(xiàn),延長(zhǎng)三條漸進(jìn)線(xiàn)交成一個(gè)三角形,再計(jì)算出三角形的質(zhì)心即為所求聲源位置。進(jìn)一步地,在人發(fā)聲的時(shí)候通過(guò)嵌入式平臺(tái)以10Kbps的采樣速率進(jìn)行ADC采樣;當(dāng)聲音信號(hào)大于閾值時(shí)進(jìn)行算法運(yùn)算數(shù)據(jù)采集,每個(gè)麥采集4K的數(shù)據(jù),共采樣12K。一種使用上述嵌入式平臺(tái)的連續(xù)快速人聲聲源定位方法的系統(tǒng),包括麥克風(fēng)陣列、語(yǔ)音濾波增益電路、ADC采集模塊和聲源定位處理模塊。麥克風(fēng)陣列:采用等邊三角形麥克風(fēng)陣列,即麥克風(fēng)呈等邊三角形分布;語(yǔ)音濾波增益電路:對(duì)麥克風(fēng)陣列采集的聲音信號(hào)進(jìn)行濾波與增益放大;ADC采集模塊:在人發(fā)聲時(shí)通過(guò)嵌入式平臺(tái)進(jìn)行ADC采樣后,進(jìn)行人聲數(shù)字化閾值判斷,當(dāng)聲音信號(hào)大于閾值時(shí)進(jìn)行算法運(yùn)算數(shù)據(jù)采集;聲源定位處理模塊:對(duì)采集的算法運(yùn)算數(shù)據(jù)進(jìn)行各路抽樣,分別對(duì)兩麥克風(fēng)之間時(shí)延計(jì)算;對(duì)三組時(shí)延值計(jì)算的方向角,采用質(zhì)心法估計(jì)最終方向角度。該種用于嵌入式平臺(tái)的快速連續(xù)人聲聲源定位方法,結(jié)合本系統(tǒng)算法需要,在設(shè)置陣列時(shí)結(jié)合嵌入式平臺(tái)的便攜性,并根據(jù)遠(yuǎn)場(chǎng)判定條件,即聲學(xué)中的遠(yuǎn)場(chǎng)判定與麥克風(fēng)陣列中各咪頭之間的距離以及聲音的波長(zhǎng)相關(guān)的特點(diǎn),麥克風(fēng)陣列采用聲源定位系統(tǒng)公知的一種等邊三角形麥克風(fēng)陣列分布。聲音信號(hào)采集電路對(duì)三路麥克風(fēng)進(jìn)行獨(dú)立采樣和數(shù)模轉(zhuǎn)換,并通過(guò)數(shù)字信號(hào)的功率閾值判斷是否為有效信號(hào)。對(duì)每一路信號(hào)獨(dú)立應(yīng)用譜減法進(jìn)行去噪,進(jìn)一步采用帶通濾波去掉人聲范圍之外的低頻和高頻部分。采用改進(jìn)的互功率譜相位時(shí)延估計(jì)方法計(jì)算兩兩麥克風(fēng)對(duì)之間的時(shí)延,具體改進(jìn)方法為:分幀、加窗、計(jì)算互功率譜,分幀累加平均,計(jì)算平均相位譜;采用線(xiàn)性搜索法(方向、范圍、步長(zhǎng))對(duì)具有周期性的相位譜進(jìn)行逼近擬合,求解最優(yōu)的相位平移值,并根據(jù)相位平移值計(jì)算得到兩兩麥克風(fēng)對(duì)之間的時(shí)延值。該方法根據(jù)兩兩麥克風(fēng)對(duì)之間的時(shí)延值以及麥克風(fēng)陣列的坐標(biāo),可得到一組三個(gè)雙曲線(xiàn)方程。為了進(jìn)一步降低計(jì)算強(qiáng)度并不失遠(yuǎn)場(chǎng)條件,本發(fā)明采用雙曲線(xiàn)漸近線(xiàn)方程作為雙曲線(xiàn)方程的近似,得到一組三個(gè)折線(xiàn)方程,對(duì)折線(xiàn)方程兩兩求解得到三個(gè)坐標(biāo)點(diǎn),進(jìn)一步計(jì)算其質(zhì)心坐標(biāo)作為聲源點(diǎn)的估計(jì)坐標(biāo)值本發(fā)明的有益效果是:該種用于嵌入式平臺(tái)的快速連續(xù)人聲聲源定位方法,在極大程度的降低了成本的同時(shí),實(shí)現(xiàn)快速連續(xù)的定位。該方法完成一次定位運(yùn)算的時(shí)間在0.8秒至1秒,精度范圍在±15°。附圖說(shuō)明圖1是本發(fā)明實(shí)施例用于嵌入式平臺(tái)的快速聲源定位方法的流程示意圖。圖2是實(shí)施例中麥克風(fēng)陣列分布示意圖。圖3是實(shí)施例中互功率譜相位時(shí)延估計(jì)算法框圖具體實(shí)施方式下面結(jié)合附圖詳細(xì)說(shuō)明本發(fā)明的優(yōu)選實(shí)施例。實(shí)施例的該方法,嵌入式平臺(tái)是基于stm32f407及語(yǔ)音濾波增益電路上的。一種用于嵌入式平臺(tái)的連續(xù)快速的人聲聲源定位方法,如圖1,包括以下步驟:在人發(fā)聲時(shí)通過(guò)嵌入式平臺(tái)進(jìn)行ADC采樣后,進(jìn)行人聲數(shù)字化閾值判斷,當(dāng)聲音信號(hào)大于閾值時(shí)候進(jìn)行算法運(yùn)算數(shù)據(jù)采集。具體為:模數(shù)轉(zhuǎn)換模塊利用stm32f407內(nèi)置的12位ADC模塊進(jìn)行ADC采樣,采樣率10Kbps,三路獨(dú)立采樣。進(jìn)行人聲數(shù)字化閾值判斷。當(dāng)聲音信號(hào)大于閾值時(shí)候進(jìn)行數(shù)據(jù)采集,每個(gè)麥克風(fēng)至少采集提供4K左右的數(shù)據(jù),總共采樣12K。對(duì)采集的算法運(yùn)算數(shù)據(jù)進(jìn)行各路抽樣,分別對(duì)兩麥克風(fēng)之間時(shí)延計(jì)算;對(duì)兩麥克風(fēng)之間時(shí)延計(jì)算具體為:進(jìn)行聲音信號(hào)歸一化并對(duì)有效聲音數(shù)據(jù)長(zhǎng)度判別,進(jìn)行聲音信號(hào)的回聲和噪聲過(guò)濾,計(jì)算兩路信號(hào)的互功率譜,搜索擬合互功率譜的相位角,通過(guò)相位角計(jì)算出時(shí)延。采用改進(jìn)的互功率譜相位計(jì)算方法具體算法如圖3所示,首先將信號(hào)通過(guò)傅里葉變換從時(shí)域轉(zhuǎn)換為頻域。然后將信號(hào)進(jìn)行分幀處理,再進(jìn)行加海明窗處理,海明窗函數(shù)為W(n,α)=(1-α)-α(2*π*n/(N-1)),其中α=0.46,N是長(zhǎng)度為512窗口。幀偏移比率為0.25。分幀后累加,計(jì)算平均相位譜。然后采用線(xiàn)性搜索法對(duì)具有周期性的相位譜逼近擬合。先確定兩兩麥克風(fēng)之間的最大時(shí)延,為兩兩麥克風(fēng)之間的距離d除以聲速v則為兩個(gè)方向的最大時(shí)延t+max和t-max。那么搜索范圍在(t-max,t+max)內(nèi)。確定步長(zhǎng)為區(qū)間的1/100。計(jì)算范圍內(nèi)的各點(diǎn)與原頻譜的均方和,進(jìn)而比較計(jì)算出最合適的相位值,根據(jù)傅里葉的時(shí)移特性計(jì)算出對(duì)應(yīng)的三組時(shí)延t13、t12、t23。當(dāng)把三組兩兩麥克風(fēng)之間的時(shí)延計(jì)算完成后,通過(guò)雙曲線(xiàn)的漸近線(xiàn)方程估計(jì)方向角;對(duì)三組時(shí)延值計(jì)算的方向角,采用質(zhì)心法估計(jì)最終方向角度。具體為:根據(jù)兩兩麥克風(fēng)之間的時(shí)延值一定,可得到一組三個(gè)雙曲線(xiàn)方程,聲源位置應(yīng)為雙曲線(xiàn)上的某一點(diǎn),做各雙曲線(xiàn)的漸進(jìn)線(xiàn),延長(zhǎng)三條漸進(jìn)線(xiàn)交成一個(gè)三角形,再計(jì)算出三角形的質(zhì)心即為所求聲源位置。實(shí)施例中優(yōu)選采用等邊三角形麥克風(fēng)陣列,即麥克風(fēng)呈等邊三角形分布,通過(guò)模擬電路對(duì)語(yǔ)音原始信號(hào)進(jìn)行濾波增益,利用數(shù)模轉(zhuǎn)化器進(jìn)行三路麥克風(fēng)聲音信號(hào)的拾取。麥克風(fēng)如圖2所示,呈等邊三角形分布,麥克風(fēng)咪頭口徑為6mm,高度為2.4mm,麥克風(fēng)陣列的孔徑為4.74cm或10cm。實(shí)施例中使用譜減法出去信號(hào)中的噪音部分,再使用帶通濾波濾除信號(hào)中低于250Hz且高于4500Hz頻率的信號(hào),使信號(hào)為純凈的人聲信號(hào)。一種使用上述方法實(shí)施例的嵌入式平臺(tái)連續(xù)快速人聲聲源定位方法的系統(tǒng),包括麥克風(fēng)陣列、語(yǔ)音濾波增益電路、ADC采集模塊和聲源定位處理模塊。麥克風(fēng)陣列:采用等邊三角形麥克風(fēng)陣列,即麥克風(fēng)呈等邊三角形分布;語(yǔ)音濾波增益電路:對(duì)麥克風(fēng)陣列采集的聲音信號(hào)進(jìn)行濾波與增益放大;ADC采集模塊:在人發(fā)聲時(shí)通過(guò)嵌入式平臺(tái)進(jìn)行ADC采樣后,進(jìn)行人聲數(shù)字化閾值判斷,當(dāng)聲音信號(hào)大于閾值時(shí)進(jìn)行算法運(yùn)算數(shù)據(jù)采集;聲源定位處理模塊:對(duì)采集的算法運(yùn)算數(shù)據(jù)進(jìn)行各路抽樣,分別對(duì)兩麥克風(fēng)之間時(shí)延計(jì)算;對(duì)三組時(shí)延值計(jì)算的方向角,采用質(zhì)心法估計(jì)最終方向角度。表1實(shí)施例方法與系統(tǒng)的麥克風(fēng)距離選用的4.75CM和10CM分別得出的最終方向角度實(shí)際角度0306090120150180-150-120-90-60-30d=4.75-3374879110160-177-136-107-85-57-26d=10-1355183111146176-142-110-85-58-32實(shí)施例通過(guò)計(jì)時(shí),完成一個(gè)聲源定位時(shí)間在0.818-1.104S之間。由上表與計(jì)時(shí)結(jié)果可知,本實(shí)施例方法與系統(tǒng)快速、連續(xù)定位、精度滿(mǎn)足可用。實(shí)施例方法與系統(tǒng)通過(guò)在嵌入式測(cè)試平臺(tái)stm32f407平臺(tái)上的測(cè)評(píng),CPU占用內(nèi)存小于60K字節(jié),在stm32f407下1S內(nèi)可以得出聲源定位向角度,誤差在15度以?xún)?nèi),快速、連續(xù)定位、精度滿(mǎn)足可用。平臺(tái)僅需單片機(jī)的一些必須外圍部件,無(wú)需外擴(kuò)RAM和FLASH,解決現(xiàn)有聲源定位處理應(yīng)用的體積成本問(wèn)題。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明保護(hù)的范圍之內(nèi)。當(dāng)前第1頁(yè)1 2 3