基于TMS320C64x DSP/BIOSⅡ的嵌入式語(yǔ)音采集與盲分離系統設計
盲信號分離(BSS)是指在對彼此獨立的源信號的混合過(guò)程及各源信號本身均未知的情況下,如何從混合信號中分離出這些源信號。BSS可以用來(lái)從多個(gè)話(huà)筒混合語(yǔ)音信號中提取出單個(gè)的語(yǔ)音信號。然而,現有的BSS算法比較復雜、運算量大、實(shí)時(shí)性差,不能滿(mǎn)足語(yǔ)音處理對實(shí)時(shí)性的要求,從而限制了它的硬件實(shí)現和應用。
隨著(zhù)IC技術(shù)的發(fā)展,DSP芯片的功能越來(lái)越強大。以數字器件特有的穩定性、可重復性、可大規模集成,特別是可編程性高和易于實(shí)現自適應處理的特點(diǎn),DSP芯片從另一個(gè)方向解決了像BSS這樣復雜算法的實(shí)現問(wèn)題。由于系統開(kāi)發(fā)中的復雜硬件功能現在均已集成到了DSP芯片中,系統開(kāi)發(fā)人員只需選擇合適的芯片并根據該硬件結構來(lái)設計軟件即可。因此,系統開(kāi)發(fā)的主要難度已經(jīng)轉移到了軟件設計上。而傳統的編程方式很難應付日益復雜的算法、系統設計,編程難度很大。DSP/BIOS II是TI公司為它的TMS320C5000和TMS320C6000系列DSP而設計的、免費的、用于復雜系統開(kāi)發(fā)與應用的、可裁減的多任務(wù)實(shí)時(shí)內核,它大大地簡(jiǎn)化了程序設計的難度和提高了系統的穩定性。
本文利用TMS320C6416 DSP設計出了基于DSP/BIOS II的、高性能的嵌入式混合語(yǔ)音盲信號分離系統。該系統通過(guò)采集的兩路混合語(yǔ)音信號進(jìn)行BSS,能實(shí)時(shí)地輸出分離的語(yǔ)音信號。
2 盲信號分離
盲信號分離可以用下面的混合方程描述:

式中



圖1示意了這一過(guò)程。最大熵(ME)算法、獨立成分分析理論(ICA)、最小互信息量(MMI)算法和最大似然盲信號分離(ML)算法是幾種常用的盲信號分離算法。

3 系統設計
本系統用TMS320C6416芯片的2個(gè)McBSP和EDMA來(lái)實(shí)現語(yǔ)音信號的采集、數據的傳遞和分離語(yǔ)音的輸出。
3.1 系統硬件設計
32 位定點(diǎn)TMS320C6416芯片是TI公司TMS320C64x系列DSP的代表產(chǎn)品,其時(shí)鐘頻率為400 ~600MHz,可以同時(shí)執行8條32位指令,最大峰值速度為4800MIPS。外設資源十分豐富,其中包含一個(gè)具有64個(gè)獨立通道的增強型存儲器直接存儲(EDMA)控制器和3個(gè)多通道緩沖串口(McBSP)。
用于語(yǔ)音數據轉換的ADC和DAC很多,如TI公司生產(chǎn)的語(yǔ)音信號編碼解碼芯片TLC320AD50,ADI公司的AD1674等。由于C6416的McBSP通道含有μ律和A律壓擴硬件,支持對輸入數據的μ律或A律擴展以及對輸出數據的μ律或A律壓縮,又美國國家半導體(NS)公司的A律編解碼芯片TP3057為8位的串行A律壓擴編解碼器,包含一個(gè)利用D/A、A/D轉換結構的A律脈沖編碼調制的編/解碼器電路和一個(gè)串行PCM接口。因此,我們選用作TP3057為ADC和DAC。
系統選用兩片TP3057,它們把用麥克風(fēng)采集到的語(yǔ)音信號數字化(8kHz的采樣頻率),輸出8位A律PCM碼。同時(shí),其中一片TP3057還將C6416 McBSP輸出的A律PCM碼解壓縮后,通過(guò)揚聲器輸出。圖2所示為T(mén)P3057和C6416的接口圖。

我們將C6416的McBSP0和McBSP2分別與兩片TP3057相連,采集兩路混合語(yǔ)音信號,TP3057(1)還會(huì )輸出分離語(yǔ)音信號。TP3057將模擬混合語(yǔ)音信號轉換為8位A律PCM碼,然后在FSX為低期間,C6416通過(guò)McBSP接收PCM碼,經(jīng)McBSP A律解壓縮后放入DRR中,再由EDMA控制器將數據從DRR中讀到L2中的SDRAM指定單元,最后進(jìn)行BSS處理。分離語(yǔ)音信號由EDMA送到McBSP0中的發(fā)送寄存器(DXR),經(jīng)過(guò)A律壓縮后送入發(fā)送移位寄存器,然后在FSR為低期間,經(jīng)接口送到TP3057(1)。TP3057(1)把數據A律解壓縮后用揚聲器輸出。
3.2 嵌入式設計
DSP/BIOS II是TI為它的TMS320C5000和TMS320C6000系列DSP開(kāi)發(fā)的一個(gè)免費的、用戶(hù)可剪裁的實(shí)時(shí)操作系統,集成在TI的Code Composer Studio集成開(kāi)發(fā)環(huán)境之中,主要由四部分組成:搶占式多任務(wù)實(shí)時(shí)內核、配置工具、實(shí)時(shí)分析工具和芯片支持庫。利用此實(shí)時(shí)操作系統,可以方便快速地開(kāi)發(fā)復雜的DSP程序。操作系統維護、調度多線(xiàn)程的運行,只需將定制的數字信號算法作為一個(gè)線(xiàn)程嵌入系統即可;芯片支持庫幫助管理外設資源;復雜的外設寄存器初始化可以直接利用圖形工具配置;實(shí)時(shí)分析工具可以幫助分析算法實(shí)時(shí)運行情況。DSP/BIOS II以模塊化方式提供給用戶(hù),對線(xiàn)程、中斷、定時(shí)器、內存資源、所有外設資源的管理能力都可以根據需要剪裁。實(shí)際應用中需要定制的算法作為一個(gè)線(xiàn)程插入隊列,由DSP/BIOS II進(jìn)行調度。
在本系統中,需要用DSP/BIOS II的配置工具來(lái)配置生成一個(gè)軟件中斷(BssSWI)、三個(gè)PIP對象(DSS_rx1Pipe、DSS_rx2Pipe和DSS_txPipe)、一個(gè)硬件中斷(HWI)。BssSWI實(shí)現BSS。三個(gè)PIP對象完成與語(yǔ)音編解碼芯片相連接的串口和軟件中斷之間的數據交換,語(yǔ)音編解碼芯片采集到的兩路語(yǔ)音數據流向串口,然后經(jīng)DSS_rx1Pipe和DSS_rx2Pipe送到軟件中斷,軟件中斷對兩路信號進(jìn)行盲分離(BSS),然后將分離出來(lái)的信號DSS_txPipe送回串口ISR,最后送到語(yǔ)音編解碼芯片輸出。程序信號流程圖如圖3所示。

圖中三個(gè)PIP對象中的DSS_rx2Pipe和DSS_rx1Pipe分別對應著(zhù)SWI郵箱中的bit2和bit1,DSS_txPipe對應著(zhù)SWI郵箱中的bit0,初始值均為1,通過(guò)這三位來(lái)實(shí)現同步。當ISR接收到一滿(mǎn)幀信號,就會(huì )調用相應的SWI_andn( ) 來(lái)清除SWI 郵箱中的相應位(如DSS_rx1Pipe調用SWI_andn(1)來(lái)清除郵箱中的bit1)。而且, 當出現一個(gè)空的數據接收塊時(shí),將調用SWI_andn(0)來(lái)清除郵箱中的bit0。一旦bit2、bit1和bit0均為0時(shí),觸發(fā)BssSWI,就調用Bss( )來(lái)進(jìn)行盲信號分離。
4 結束語(yǔ)
本文設計了一個(gè)高性能的、基于DSP/BIOS II的嵌入式混合語(yǔ)音信號的采集與盲分離系統,采集到的數據經(jīng)過(guò)DSP的McBSP和EDMA通道直接被送到片內存儲器堆棧中,然后進(jìn)行BSS,將混合語(yǔ)音分離出來(lái)。系統還采用了實(shí)時(shí)操作系統DSP/BIOS II,大大地簡(jiǎn)化了編程的難度和提高了系統的實(shí)時(shí)性和穩定性。由于該系統結構簡(jiǎn)單、實(shí)時(shí)性好、性能穩定和易于集成,所以在移動(dòng)通信終端有廣泛的應用空間和良好的市場(chǎng)前景。
另外,由于BSS算法復雜,在一定程度上影響了整個(gè)系統的性能。因此,要想進(jìn)一步提高系統的實(shí)時(shí)性,研究簡(jiǎn)單的、易于實(shí)現的、魯棒性好的BSS算法是十分必要的,這也是我們的下一步工作。
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)
評論