《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 語(yǔ)音信號(hào)識(shí)別基于盲源信號(hào)分離的實(shí)現(xiàn)
語(yǔ)音信號(hào)識(shí)別基于盲源信號(hào)分離的實(shí)現(xiàn)
現(xiàn)代電子技術(shù)
張 敏,,于海燕,,武克斌
摘要: 摘要:為了識(shí)別兩路頻譜混疊語(yǔ)音信號(hào),多采用盲信號(hào)分離的方法,。但是該方法在工程實(shí)踐中實(shí)現(xiàn)較困難,。因此給出了一種利用盲源信號(hào)分離的原理及特點(diǎn)的實(shí)現(xiàn)方法,,具體說(shuō)明了用FastICA算法在ADSP_BF533平臺(tái)上實(shí)現(xiàn)盲源信號(hào)
Abstract:
Key words :

摘要:為了識(shí)別兩路頻譜混疊語(yǔ)音信號(hào),多采用盲信號(hào)分離的方法,。但是該方法在工程實(shí)踐中實(shí)現(xiàn)較困難,。因此給出了一種利用盲源信號(hào)分離的原理及特點(diǎn)的實(shí)現(xiàn)方法,具體說(shuō)明了用FastICA算法在ADSP_BF533平臺(tái)上實(shí)現(xiàn)盲源信號(hào)分離時(shí)的具體流程,。該設(shè)計(jì)方案所需時(shí)間短,,效率高,而且占用內(nèi)存較少,。
關(guān)鍵詞:盲信號(hào)分離,;DSP;FastICA;ADSP_BF533平臺(tái)

0 引言
    近年來(lái),,許多學(xué)者都針對(duì)盲信號(hào)分離不斷地提出新的理論算法,,盲信號(hào)分離(BSS)發(fā)展也日趨完善。而用DSP器件實(shí)現(xiàn)這種技術(shù)具有很大意義,。本文提出了盲源信號(hào)分離的實(shí)現(xiàn)原理,、算法和實(shí)現(xiàn)步驟,并對(duì)利用DSP實(shí)現(xiàn)時(shí)經(jīng)常出現(xiàn)的問(wèn)題提出了解決方案,。
    盲信號(hào)分離是指在傳輸信道特性和輸入信息未知或者僅有少量先驗(yàn)知識(shí)的情況下,,只由觀測(cè)到的輸出信號(hào)來(lái)辨識(shí)系統(tǒng),以達(dá)到對(duì)多個(gè)信號(hào)分離的目的,,從而恢復(fù)原始信號(hào)或信號(hào)源,。它是一種在神經(jīng)網(wǎng)絡(luò)和統(tǒng)計(jì)學(xué)基礎(chǔ)上發(fā)展起來(lái)的技術(shù),并在近十年來(lái)獲得了飛速發(fā)展,。盲源信號(hào)分離對(duì)很多領(lǐng)域的多信號(hào)處理與識(shí)別提供了很大方便,。該技術(shù)在通信、生物醫(yī)學(xué)信號(hào)處理,、語(yǔ)音信號(hào)處理,、陣列信號(hào)處理以及通用信號(hào)分析等方面有著廣泛的應(yīng)用前景。它不僅對(duì)信號(hào)處理的研究,,而且也對(duì)神經(jīng)網(wǎng)絡(luò)理論的發(fā)展起著積極的推動(dòng)作用,。

1 盲源信號(hào)分離的數(shù)學(xué)模型及常見(jiàn)算法
1.1 數(shù)學(xué)模型
    盲分離問(wèn)題的研究?jī)?nèi)容大體上可以劃分為瞬時(shí)線(xiàn)性混疊盲分離、卷積混疊盲分離,,非線(xiàn)性混疊盲分離以及盲分離的應(yīng)用四部分,。當(dāng)混疊模型為非線(xiàn)性時(shí),一般很難從混疊數(shù)據(jù)中恢復(fù)源信號(hào),,除非對(duì)信號(hào)和混疊模型有進(jìn)一步的先驗(yàn)知識(shí),。圖1所示是瞬時(shí)線(xiàn)性混疊盲分離信號(hào)模型示意圖。

a.JPG
    圖1中,,S=[s1(t),,s2(t),,…,,sN(t)]T是未知的N維源信號(hào)向量,A是未知的混合矩陣,,n=[n1(t),,n2(t),…,,nN(t)]T是M維噪聲向量,,X=[x1(t),x2(t),…,,xM(t)]T是傳感器輸出的M維觀測(cè)信號(hào)向量,,有X=AS+n,盲源分離算法要求只知道X來(lái)確定S或A,。獨(dú)立分量分析(Independent ComponentAnalysis,,ICA)是BSS的一種,其基本含義是把信號(hào)分解成若干個(gè)互相獨(dú)立的成分,。圖1中,,ICA的目標(biāo)就是尋找一個(gè)分離矩陣W,使X經(jīng)過(guò)變換后得到的新矢量Y=[y1(t),,y2(t),,…,yN(t)]T的各分量盡可能的獨(dú)立,。Y=WX為待求的分離信號(hào)向量,,也就是源信號(hào)S的估計(jì)值。
1.2 盲信號(hào)預(yù)處理常見(jiàn)算法
    在盲信號(hào)處理過(guò)程中,,為了減少計(jì)算量,,提高系統(tǒng)效率,通常需要經(jīng)過(guò)預(yù)處理,。預(yù)處理一般包括中心化和白化,。中心化是使信號(hào)的均值為零。由于在一般情況下所獲得的數(shù)據(jù)都具有相關(guān)性,,所以通常都要求對(duì)數(shù)據(jù)進(jìn)行初步的白化處理,,因?yàn)榘谆幚砜扇コ饔^測(cè)信號(hào)之間的相關(guān)性,從而簡(jiǎn)化后續(xù)獨(dú)立分量的提取過(guò)程,。而且,,通常情況下,對(duì)數(shù)據(jù)進(jìn)行白化處理與不對(duì)數(shù)據(jù)進(jìn)行白化處理相比,,其算法的收斂性較好,、工作量少、效率高,。
    線(xiàn)性混疊盲分離信號(hào)模型一般都采用獨(dú)立分量分析的方法,。ICA的主要依據(jù)和前提是假設(shè)源信號(hào)是獨(dú)立的,因此,,自然就可以設(shè)想ICA算法的第一步是建立目標(biāo)函數(shù)來(lái)表征分離結(jié)果的獨(dú)立程度,。目標(biāo)函數(shù)確定后,可通過(guò)各種不同的優(yōu)化算法進(jìn)行優(yōu)化,,進(jìn)而確定分離矩陣W,,其中有代表性的算法主要有最大信息量(Infomax)法,、自然梯度法、快速獨(dú)立元分析算法(FastICA),、矩陣特征值分解法等,。盲分離中經(jīng)常要用到優(yōu)化運(yùn)算,就優(yōu)化手段而言,,Infomax算法,、自然梯度算法屬于梯度下降(上升)尋優(yōu)算法,收斂速度是線(xiàn)性的,,速度略慢一些,,但屬于自適應(yīng)方法,且具有實(shí)時(shí)在線(xiàn)處理能力,;FastICA算法是一種快速而數(shù)值穩(wěn)定的方法,,采用擬牛頓算法實(shí)現(xiàn)尋優(yōu),具有超線(xiàn)性收斂速度,,通常收斂速度較梯度下降尋優(yōu)算法快得多,;矩陣特征值分解方法一般通過(guò)對(duì)矩陣進(jìn)行特征分解或者廣義特征分解來(lái)估計(jì)分離矩陣,這是一種解析方法,,可直接找到閉形式解(Closed Form Soutions),,由于其沒(méi)有迭代尋優(yōu)過(guò)程,因此運(yùn)行速度最快,。

2 盲源信號(hào)分離的DSP實(shí)現(xiàn)方法
2.1 實(shí)現(xiàn)原理
    由于FastICA算法和其他的ICA算法相比,,具有許多人們期望的特性:如收斂速度快、無(wú)需選步長(zhǎng)參數(shù),、能夠通過(guò)選擇適當(dāng)?shù)姆蔷€(xiàn)性函數(shù)g來(lái)最佳化,、能減小計(jì)算量等。同時(shí)也有許多神經(jīng)算法的優(yōu)點(diǎn),,如并行,、分布式且計(jì)算簡(jiǎn)單,內(nèi)存要求很少等,。因此,,F(xiàn)astICA得到了廣泛的應(yīng)用。本文就采樣了這種算法,。
2.2 實(shí)現(xiàn)方法
    基于負(fù)熵最大的FastICA算法的基本原理是基于中心極限定理,。即:若一隨機(jī)變量X由許多相互獨(dú)立的隨機(jī)變量Si(i=1,2,,…,,N)之和組成,,那么,,只要Si具有有限的均值和方差,則不論其為何種分布,隨機(jī)變量X較Si更接近高斯分布,。由信息論理論可知,;在所有等方差的隨機(jī)變量中,高斯變量的熵最大,,因而可以利用熵來(lái)度量非高斯性,,常用熵的修正形式,即負(fù)熵,。因此,,在分離過(guò)程中,可通過(guò)對(duì)分離結(jié)果的非高斯性度量來(lái)表示分離結(jié)果間的相互獨(dú)立性,,當(dāng)非高斯性度量達(dá)到最大時(shí),,表明已完成對(duì)各獨(dú)立分量的分離。
    負(fù)熵的定義公式如下:
    b.JPG
    式中:YGauss是與Y具有相同方差的高斯隨機(jī)變量,,H(·)為隨機(jī)變量的微分熵,,其表達(dá)式為:
    c.JPG
    當(dāng)Y具有高斯分布時(shí),Ng(Y)=0,;Y的非高斯性越強(qiáng),,其微分熵越小,Ng(Y)值越大,,所以,,Ng(Y)可以作為隨機(jī)變量Y非高斯性的測(cè)度。由于根據(jù)公式計(jì)算微分熵時(shí),,要知道Y的概率密度分布函數(shù)不切實(shí)際,,于是可采用如下公式:
    d.JPG
    式中:E[·]為均值運(yùn)算;g(·)為非線(xiàn)性函數(shù),,其表達(dá)式可用下列非線(xiàn)性函數(shù)表示:
e.JPG
    這樣就可以算出一個(gè)獨(dú)立分量,,但每次迭代完成后,還應(yīng)對(duì)Wi進(jìn)行歸一化處理,。當(dāng)計(jì)算n個(gè)獨(dú)立分量時(shí),,需要n個(gè)列矢量,并且每次迭代后,,都需進(jìn)行線(xiàn)性組合以去掉相關(guān)性,。

3 軟硬件實(shí)現(xiàn)
3.1 硬件平臺(tái)
    Blackfin處理器以RISC編程模型突破性地把信號(hào)處理性能和電源效率結(jié)合起來(lái)。這種處理器在統(tǒng)一的結(jié)構(gòu)中可提供微控制器(MCU)和信號(hào)處理兩種功能,,并可以在控制和信號(hào)處理兩種功能需求之間靈活的劃分,。
    本硬件系統(tǒng)包含ADSP-BF533處理器,32 MBSDRAM MT48LC32M16A2TG,,2 MB FLASHPSD4256G6V,,ADV1836音頻編解碼器等,,其系統(tǒng)結(jié)構(gòu)框圖如圖2所示。

f.JPG

3.2 軟件實(shí)現(xiàn)
    Matlab仿真成功后,,還需要用硬件來(lái)實(shí)現(xiàn),。這里以選用ADSP_BF533為例進(jìn)行闡述。其流程圖如圖3所示,。在用DSP編程實(shí)現(xiàn)時(shí),,其常見(jiàn)問(wèn)題首先是白化處理中要用到特征值分解,采用的方式是進(jìn)行多次QR分解,。

g.JPG

    為了使人耳可以分辨出不同的聲音,,觀測(cè)時(shí)間應(yīng)該足夠大,在AD1836采集頻率為48kHz時(shí),,采集約為22s的聲音信號(hào),,其需要處理的數(shù)據(jù)長(zhǎng)度為48K×22b,約為一百萬(wàn)個(gè)點(diǎn),。在常規(guī)的程序設(shè)計(jì)中,,對(duì)此信號(hào)的處理就需要定義長(zhǎng)度為一百萬(wàn)的數(shù)組,這遠(yuǎn)遠(yuǎn)的超出了內(nèi)存容量,,故其解決方案是直接訪(fǎng)問(wèn)(包括讀寫(xiě))存儲(chǔ)在SDRAM中的數(shù)據(jù),,并把原來(lái)程序中的數(shù)組運(yùn)算修改為針對(duì)每個(gè)元素的運(yùn)算。每個(gè)元素均可直接訪(fǎng)問(wèn)SDR-AM,,而不必將保存在SDRAM中的數(shù)據(jù)通過(guò)數(shù)組的方式傳遞到內(nèi)存中,。這就相當(dāng)于用時(shí)間換取內(nèi)存空間。
    AD1836采集的數(shù)據(jù)為24位的二進(jìn)制有符號(hào)整形數(shù)據(jù),。為了提高精度,,減小誤差,應(yīng)選用32位而不是16位的數(shù)據(jù)格式進(jìn)行處理,。從24位到32位的轉(zhuǎn)換可采用的方案如下:
    對(duì)于負(fù)數(shù):
    h.JPG
    i.JPG
    其次,,為了保證處理過(guò)程中的精度,還可選擇將data轉(zhuǎn)為float運(yùn)算的方法,。
    一般地,,處理完的數(shù)據(jù)數(shù)值很小,范圍在(-10,,10)之間,,而播放時(shí)必須經(jīng)過(guò)D/A,但D/A本身的熱噪聲會(huì)帶來(lái)很大的誤差,,信噪比顯然無(wú)法容忍,。對(duì)此,其解決辦法是將處理完的數(shù)據(jù)乘以較大的數(shù)值,,這樣,,聲音信號(hào)的相對(duì)值并沒(méi)有發(fā)生改變,,因而播放時(shí)可達(dá)到良好的效果。這一方法也是用數(shù)字電路工具(如DSP,,F(xiàn)PGA等)處理模擬信號(hào)時(shí)的常用方法。

4 實(shí)際效果
    圖4所示是兩段錄音的音頻信號(hào)時(shí)域圖,,圖5則是經(jīng)過(guò)瞬時(shí)線(xiàn)性混合后的信號(hào)時(shí)域圖,,圖6是經(jīng)過(guò)在BF533平臺(tái)上利用FastICA算法得到的分離后的信號(hào)時(shí)域圖。實(shí)驗(yàn)發(fā)現(xiàn),,圖6所示的結(jié)果分離效果良好,,可以清楚地聽(tīng)到不同的源信號(hào)。

j.JPG

k.JPG

5 結(jié)論
    本文首先簡(jiǎn)單介紹了盲信號(hào)分離的數(shù)學(xué)模型以及常用的理論算法,。之后詳細(xì)介紹了用ADSP_BF533實(shí)現(xiàn)盲信號(hào)分離時(shí)的具體流程以及實(shí)現(xiàn)過(guò)程中常見(jiàn)問(wèn)題的解決方案,。本設(shè)計(jì)方案所需時(shí)間短,效率高,,而且占用內(nèi)存較少,。在工程應(yīng)用方面具有一定的參考價(jià)值。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。