基于DSP的語(yǔ)音降噪系統(tǒng)設(shè)計(jì)
在現(xiàn)實(shí)的語(yǔ)音通信中會(huì)不可避免地受到來(lái)自環(huán)境中的背景噪聲影響,致使通信質(zhì)量嚴(yán)重下降,甚至聽(tīng)不清楚對(duì)方講話(huà)的內(nèi)容,因此對(duì)帶噪語(yǔ)音信號(hào)進(jìn)行降噪已經(jīng)成為語(yǔ)音通信中的一個(gè)非常迫切的課題。近年來(lái),隨著VLSI技術(shù)的發(fā)展和高速DSP芯片的出現(xiàn),語(yǔ)音增強(qiáng)方法走向?qū)嵱没痆1]。本文所介紹的語(yǔ)音降噪系統(tǒng)能夠有效地實(shí)現(xiàn)數(shù)字降噪功能,由于降噪處理時(shí)不但要進(jìn)行信號(hào)的采集與回放,還要進(jìn)行降噪算法的實(shí)時(shí)處理,采用具有高速實(shí)時(shí)處理能力的DSP TMS320VC5509進(jìn)行處理,能夠滿(mǎn)足日常生活中語(yǔ)音通信中的降噪要求。
本文引用地址:http://butianyuan.cn/article/257888.htm1 降噪系統(tǒng)設(shè)計(jì)
1.1 硬件系統(tǒng)結(jié)構(gòu)圖
本系統(tǒng)采用TI公司的TMS320VC5509芯片進(jìn)行信號(hào)處理和譜相減算法的處理,語(yǔ)音降噪系統(tǒng)如圖1所示。系統(tǒng)采用12 MHz的晶振為DSP提供時(shí)鐘,DSP內(nèi)部工作時(shí)鐘采用PLL方式設(shè)置成16倍頻,使DSP的內(nèi)部時(shí)鐘達(dá)到192 MHz。語(yǔ)音采集與回放模塊采用TLV320AIC23語(yǔ)音編解碼芯片。CPLD XC95114提供讀寫(xiě)Flash AM29LV800B和配置,啟動(dòng)語(yǔ)音編解碼模塊AIC23的控制信號(hào)。供電模塊采用TPS73HD301,分別提供DSP芯片所需的1.6 V內(nèi)核電壓和3.3 V的I/O電壓。
1.2 主要電路原理分析
圖2為5509DSP與TLV320AIC23的接口原理圖。
音頻Codec芯片TLV320AIC23通過(guò)外圍器件對(duì)其內(nèi)部寄存器進(jìn)行編程配置,使用靈活,其配置接口支持SPI總線(xiàn)接口和I2C總線(xiàn)接口, 數(shù)據(jù)傳輸格式支持右判斷模式、左判斷模式、I2S 模式和DSP模式4種方式,其中TI 模式專(zhuān)門(mén)針對(duì)TI DSP設(shè)計(jì)[2,3]。C5509的多通道緩沖串口MCBSP可以配置為SPI總線(xiàn)接口,其串行數(shù)據(jù)傳輸格式與TLV320AIC23的DSP模式兼容,此外,這兩款芯片的I/O電壓兼容,從而使得C5509與TLV320AIC23可以無(wú)縫連接,系統(tǒng)設(shè)計(jì)簡(jiǎn)單。
MODE引腳作為串行接口輸入模式選擇端,0為I2C模式,1為SPI模式;由于C5509片內(nèi)外設(shè)含有I2C模塊,直接使用C5509的I2C模塊控制TLV320AIC23,此時(shí)C5509作為I2C總線(xiàn)的主設(shè)備,TLV320AIC23作為從設(shè)備,通過(guò)編程完成對(duì)TLV320AIC23的配置。
TLV320AIC23的數(shù)字音頻接口采用DSP模式,將TLV320AIC23配置為主設(shè)備。與DSP的McBSP0無(wú)縫連接,將其作為雙向的數(shù)據(jù)收發(fā)通道。輸入輸出的幀同步信號(hào)LRCIN、LRCOUT分別接McBSP串口的FSX0與FSR0,時(shí)鐘信號(hào)BCLK與McBSP的串口輸出時(shí)鐘CLKX0相連,同時(shí)通過(guò)CLKX0驅(qū)動(dòng)輸入串行時(shí)鐘CLKR0,以保證串口數(shù)據(jù)收發(fā)的一致與同步。SCL和SDI分別是 TLV320AIC23的控制端口和數(shù)據(jù)輸入端,分別和C5509的I2C模塊端口 SCL和 SDA 相連。
1.3 音頻信號(hào)的采集與回放
此系統(tǒng)中采用MICPHONE采集語(yǔ)音信號(hào),把采集的語(yǔ)音信號(hào)經(jīng)過(guò)模數(shù)變換,進(jìn)入DSP后再經(jīng)過(guò)濾波存儲(chǔ)到DSP的片內(nèi)存儲(chǔ)空間。然后調(diào)用譜相減算法降噪軟件進(jìn)行降噪處理,得到新的處理后的數(shù)據(jù)再經(jīng)過(guò)數(shù)模變換,放大后從耳機(jī)輸出。
通過(guò)MIC采集的語(yǔ)音信號(hào)通過(guò)TLV320AIC23語(yǔ)音編解碼芯片對(duì)語(yǔ)音進(jìn)行模數(shù)轉(zhuǎn)換。TLV320AIC23是一個(gè)高性能的多媒體數(shù)字信號(hào)編解碼器,該模塊具有模數(shù)轉(zhuǎn)換器、數(shù)模轉(zhuǎn)換器,使用了高效的 Multibit sigma-delta 和過(guò)采樣數(shù)字插補(bǔ)濾波技術(shù),支持 16、20、24 和 32位格式從8 kHz~96 kHz采樣頻率的音頻信號(hào)的采集與回放,并具有較高的信噪比(SNR)和較低的能耗。利用多通道緩沖串口McBSP(multiply—channel buffer interferce)與DSP通信。把通過(guò)TLV320AIC23模數(shù)轉(zhuǎn)換后的數(shù)據(jù)通過(guò)McBSP1傳送給DSP進(jìn)行降噪處理,處理后的數(shù)據(jù)經(jīng)過(guò)數(shù)模轉(zhuǎn)化后傳送到耳機(jī)輸出。
2 系統(tǒng)算法與軟件設(shè)計(jì)
2.1 譜相減算法[4,5]
目前降噪算法具有代表性的有自相關(guān)算法、自適應(yīng)噪聲濾波法、短時(shí)譜幅度估計(jì)法、譜相減算法、小波變換等。譜相減算法因具有運(yùn)算量小、容易實(shí)時(shí)實(shí)現(xiàn)、增強(qiáng)效果好等特點(diǎn),是目前在降噪系統(tǒng)中最常用的算法之一。
譜相減算法的基本原理是在頻域?qū)⒃肼暤念l譜分量從帶噪語(yǔ)音信號(hào)的頻譜中減去。譜減的提出前提是假設(shè)語(yǔ)音信號(hào)與加性噪聲相互獨(dú)立,它假設(shè)噪聲是統(tǒng)計(jì)平穩(wěn)的,即有語(yǔ)音期間噪聲振幅譜的期望值與無(wú)語(yǔ)音間隙噪聲的振幅譜的期望值相等,用無(wú)語(yǔ)音期間測(cè)得的噪聲頻譜的估計(jì)值取代有語(yǔ)音期間的噪聲頻譜,與含有噪音的語(yǔ)音頻譜相減,即可得到語(yǔ)音頻譜估計(jì)值。假設(shè)帶噪語(yǔ)音的模型表達(dá)式如式(1):
其中sm(n)表示純凈的語(yǔ)音,dm(n)表示噪聲,ym(n)表示帶噪語(yǔ)音。其中m=0,1,2,…,M-1;n=0,1,2,…,N-1;M、N分別表示一段語(yǔ)音中包含的幀數(shù)和每幀信號(hào)的長(zhǎng)度。
在實(shí)際中由于語(yǔ)音信號(hào)是不平穩(wěn)的,但是具有短時(shí)平穩(wěn)性,因此計(jì)算時(shí)通常要加窗處理。設(shè)Yk、Sk、dk分別表示帶噪語(yǔ)音,純凈語(yǔ)音和噪聲的傅里葉系數(shù)。對(duì)(1)式進(jìn)行傅里葉變換,由于假設(shè)的語(yǔ)音與噪音是不相關(guān)的,可得式(2),即
譜相減算法原理圖如圖3所示。
2.2 系統(tǒng)軟件設(shè)計(jì)
在本系統(tǒng)的軟件設(shè)計(jì)中,軟件系統(tǒng)主要包括主程序、中斷服務(wù)程序、中斷向量表和鏈接命令文件,其中最重要的是主程序和中斷服務(wù)程序,中斷服務(wù)程序主要功能是實(shí)現(xiàn)數(shù)據(jù)采集與數(shù)據(jù)更新。
系統(tǒng)主函數(shù)是程序執(zhí)行的入口并完成需要的初始化工作。主函數(shù)中主要包括對(duì)時(shí)鐘、多通道緩沖串口McBSP1以及對(duì)AIC23的初始化配置。接著啟動(dòng)串口進(jìn)行正常工作,最后進(jìn)行譜相減法降噪算法處理,輸出降噪后的語(yǔ)音信號(hào)。
在該系統(tǒng)中,音頻信號(hào)通過(guò)MIC被采集,然后經(jīng)過(guò)TLV320AIC23語(yǔ)音編解碼模塊,把采集的語(yǔ)音信號(hào)進(jìn)行信號(hào)保持、采樣、量化后轉(zhuǎn)換成數(shù)字信號(hào),轉(zhuǎn)換成的數(shù)字語(yǔ)音信號(hào)以中斷方式被DSP讀取,通過(guò)DSP的多通道緩沖串口McBSP1以數(shù)據(jù)幀的方式把數(shù)據(jù)存儲(chǔ)到片上緩沖區(qū)里。當(dāng)一幀數(shù)據(jù)采集完后,中斷返回到主程序?qū)?shù)據(jù)的進(jìn)行加窗處理、FFT變換,然后再進(jìn)行有聲無(wú)聲檢測(cè),判斷是否需要進(jìn)行降噪處理。處理后的數(shù)據(jù)通過(guò)McBSP1輸出到TLV320AIC23進(jìn)行回放。軟件處理流程結(jié)構(gòu)如圖4所示。
CPU在相應(yīng)接收中斷服務(wù)程序后,在服務(wù)程序中將128個(gè)采樣值拷貝到處理緩沖區(qū)中等待處理,實(shí)現(xiàn)緩沖區(qū)的數(shù)據(jù)轉(zhuǎn)換,然后置1使程序進(jìn)入主程序中進(jìn)行降噪處理。
本系統(tǒng)中實(shí)時(shí)設(shè)計(jì)中的關(guān)鍵技術(shù)有加窗處理、幀間重疊、幀移位、快速傅里葉變換(FFT)、快速傅里葉反變換、定點(diǎn)數(shù)與浮點(diǎn)數(shù)的轉(zhuǎn)化。在進(jìn)行FFT變換的時(shí)候必然會(huì)產(chǎn)生大量的數(shù)據(jù),所以在對(duì)數(shù)據(jù)進(jìn)行讀取與存儲(chǔ)時(shí)不可避免地要造成流水線(xiàn)沖突,為了解決這樣的問(wèn)題,可以在產(chǎn)生流水線(xiàn)沖突的兩條指令間加上三個(gè)NOP指令[6,7]。
通過(guò)譜相減算法在DSP開(kāi)發(fā)板上搭建的語(yǔ)音降噪系統(tǒng)中進(jìn)行降噪實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果表明,本系統(tǒng)能夠有效地降低環(huán)境噪聲對(duì)語(yǔ)音的影響,能夠有效地提高信噪比,改善語(yǔ)音通信質(zhì)量,達(dá)到降低語(yǔ)音通信中的背景噪聲的目的。
參考文獻(xiàn)
[1] 黃蘇雨,梁聲灼,黃蘇園.語(yǔ)音增強(qiáng)方法綜述[J].計(jì)算機(jī)與現(xiàn)代化,2007,23(3):16-20.
[2] 汪春梅,孫紅波.TMS320C5000系列DSP系統(tǒng)設(shè)計(jì)與開(kāi)發(fā)實(shí)例[M].北京:電子工業(yè)出版社,2004.
[3] 丁祥,余小清.音頻編解碼器TLV320AIC23及其與DSP接口設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng),2002,2(6):35-37.
[4] 王欣,羅代升,王正勇.基于改進(jìn)譜減算法的語(yǔ)音增強(qiáng)研究[J].成都信息工程學(xué)院學(xué)報(bào),2007,22(2):201-204.
[5] 張俊.基于譜減算法語(yǔ)音增強(qiáng)的研究[J].信息技術(shù),2009,33(3):74-76.
[6] Texas Instruments.TLV320AIC23B stereo audio CODEC datamanual[Z],2003.
[7] 北京瑞泰創(chuàng)新科技有限責(zé)任公司. ICETEK-VCS5509 EVM用戶(hù)使用手冊(cè)V1.0[Z],2004.
評(píng)論