張瑞祥
摘要:隨著計算機、互聯(lián)網(wǎng)、集成電路的不斷發(fā)展,人們對美好生活的迫切向往,一個名為“多媒體”的行業(yè)(或稱為領(lǐng)域)正在不斷壯大,而數(shù)字語音通訊又是其中一個重要的角色。語音是人類交流的一種重要方式,漸漸的也變成人機交流的一種重要方式,比如打電話,網(wǎng)絡(luò)音頻,智能家居交互等等。隨著社會的發(fā)展,交流傳遞的信息量也在不斷增大,信道資源愈加寶貴,在這樣一個背景下,DSP語音處理以及仿真技術(shù)相應(yīng)的孕育而生,但是伴隨著DSP語音處理及仿真技術(shù)的發(fā)展,這方面技術(shù)也存在一定的問題,因此在能保證音質(zhì)的前提下,降低傳輸速率,減少帶寬,節(jié)約資源成為目前研究的要點。
關(guān)鍵詞:互聯(lián)網(wǎng) 語音 DSP 仿真
中圖分類號:TP37 文獻標(biāo)識碼:A 文章編號:1007-9416(2016)05-0000-00
1 DSP的原理及發(fā)展
對于DSP的語音處理技術(shù),硬件采用TI公司的C6000系列DSP[1],DSP是一種數(shù)字處理芯片,采用數(shù)字通信具有比模擬通信無可比擬的優(yōu)勢,數(shù)字通信首先是的芯片的體積很小,這在集成電路里可謂非常重要,電子產(chǎn)品自問世以來一直以一種爆炸的趨勢不斷的發(fā)展,在1965年,英特爾(Intel)創(chuàng)始人之一戈登·摩爾(Gordon Moore)提出了摩爾定律,其內(nèi)容:“當(dāng)價格不變時,集成電路上可容納的元器件的數(shù)目,約每隔18-24個月便會增加一倍,性能也將提升一倍”,直至最近幾年才有所放緩,且具有處理速度快,靈敏度高,抗干擾能力強等優(yōu)勢,滿足精確、高效、實時的信號處理要求。
2 DSP硬件內(nèi)核剖析及設(shè)計
2.1 關(guān)于TLC320AD50數(shù)字影音處理芯片
C6000系列的DSP數(shù)據(jù)傳輸字節(jié)長為32bit,適合于帶寬網(wǎng)絡(luò)和數(shù)字影音的應(yīng)用,相比于C2000系列,C5000系列等等在語音處理方面具有較好的表現(xiàn),基于C6000的TMS320DM644x架構(gòu)是一款用的比較多的數(shù)字影音處理芯片,也是一款高度集成并且強化了的系統(tǒng)平臺,用于開發(fā)是極好的選擇,考慮到硬件成本,本文討論另一種開發(fā)平臺,以TMS320C6XX為核心的系統(tǒng)處理平臺。
2.2硬件內(nèi)核的具體解析與研究
本套系統(tǒng)的硬件搭配大致由三塊組成,一是以TMS320C6XX為核心的數(shù)字信號處理器;二是語音信號AD/DA轉(zhuǎn)換選擇TLC320AD50芯片;三為存儲器模塊具體如下:
TMS320C6XX以高達9億每秒浮點運算性能(MFLOPS)在150 MHz的時鐘速率[2],該處理器有32個32位字長度和八個高度獨立的功能單元的通用寄存器。八個功能單元提供四浮點/定點ALU,兩定點ALU,和兩個浮點/定點乘法器。1級程序緩存(L1P)是一個32 k bit的直接映射緩存和1級緩存(L1D)是一個32 k bit 2路組相聯(lián)高速緩存。2級內(nèi)存/緩存(L2)包括一個512 k bit存儲空間,程序和數(shù)據(jù)空間之間的共享。二級存儲器可以配置為映射的存儲器,高速緩存,或兩者的組合。周邊包括兩個多通道緩沖串口(McBSP),兩個通用定時器,一個主機接口(HPI),和一個無縫的外部存儲器接口(EMIF)能夠連接到SDRAM、SBSRAM和異步外設(shè),使得DSP將緩沖串口數(shù)據(jù)的存放提供強有力的硬件支持。該C6711擁有一套完整的開發(fā)工具包括:一個新的C編譯器,匯編優(yōu)化器來簡化編程和調(diào)度,和Windows調(diào)試界面的可視性,源代碼執(zhí)行,為后續(xù)軟件的操控與調(diào)試帶來了方便。模擬的語言信號輸入,經(jīng)過運算放大器,被AD50芯片采集,轉(zhuǎn)換為數(shù)字信號并進行低頻濾波傳入到TMS320C6XX的RAM單元,TMS320C6XX將接收到的數(shù)據(jù)傳入SRAM寄存器中,如果傳出的話,也是通過AD50芯片,將數(shù)字信號轉(zhuǎn)換為模擬信號經(jīng)過功率放大器輸出。這里涉及到C6XX的McBSP寄存器,共有兩個,大小都是256K。McBSP和其他設(shè)備之間的通信包含75 Mbps的167 MHz-200 MHz的CPU時鐘和50 Mbps的100 MHz的CPU時鐘。必須確保在數(shù)據(jù)表中指定的交流時間了。McBSP通信最大比特速率為67 Mbps;因此,最小CLKR / X時鐘周期是兩倍的CPU周期時間(2P),或15納秒(67 MHz)。例如,當(dāng)運行部分在167MHz(P = 6 ns),用15ns作為最小CLKR / X時鐘周期(通過設(shè)置適當(dāng)?shù)腃LKGDV比或外部時鐘源)。當(dāng)運行部分在60MHz(P = 16.67 ns),使用2P = 33 ns(30 MHz)為最小CLKR / X時鐘周期。McBSP將MCBSP通信的最大比特率應(yīng)用串行端口時,主時鐘和幀同步(與CLKR連接CLKX,F(xiàn)SR與FSX,clkxm = FSXM = 1,和clkrm = FSRM = 0)中的數(shù)據(jù)延遲,1或2模式(R模式端= 01B或10B)與其他設(shè)備通信的McBSP是下位機。
數(shù)字串行接口包括移位時鐘(SCLK)、幀同步信號(FS),輸出ADC通道數(shù)據(jù)(DOUT),和DAC通道數(shù)據(jù)輸入(DIN)[3]。主幀同步的間隔期間,SCLK時鐘的ADC通道的結(jié)果通過DOUT和時鐘16(15 + 1)位的數(shù)據(jù)通過DIN。在主要的通信,數(shù)據(jù)字是ADC轉(zhuǎn)換結(jié)果。在二次通信中,數(shù)據(jù)是在讀/寫位要求時,寄存器讀結(jié)果。通過DIN期間發(fā)生所有的寄存器編寫,和數(shù)據(jù)鎖存和幀同步信號在SCLK的下降沿有效。如果想要一個特定的寄存器的默認(rèn)值,該寄存器在二次通信間隔期間不需要處理。no op命令(DS15–DS8都設(shè)置為0)地址偽登記(登記0),沒有寄存器編寫發(fā)生在通信。此外,每個登記可以通過回讀DOUT,在二次通信通過設(shè)置讀位(DS13)1。當(dāng)該寄存器是在讀模式,沒有數(shù)據(jù)可以寫在這個周期的寄存器。DS13必須清除寫入登記。
如果讀的是不要求寫入,第二字的低八位都是零[4]。采用主從狀態(tài)(m/s)終端是由二次通信的MSB反射(DOUT,位DS15)和初級通信LSB(DOUT,位D0)而在15+1模式。當(dāng)設(shè)備處于從屬模式,輸出保持在高阻抗?fàn)顟B(tài)直到一個非零的值是作為一個下位機的數(shù)量控制寄存器3(位D7、D6)。 當(dāng)多個AD50或AD52連接到一個單一的DSP的串行接口在主從配置,控制寄存器,程序應(yīng)按以下順序在設(shè)備初始化:Control register 1, Control register 2, Control register 4, Control register 3。所有AD50或AD52設(shè)備將配置同一個全局初始化寫入寄存器1,2,和4。一旦寄存器3程序?qū)懭耄ㄔO(shè)置FS和FSD之間sclks數(shù)),每個設(shè)備將開始在指定的時隙通信。
AD50的輸入輸出端如圖1所示,反相的DAC輸出。outm輸出可裝載600?。outm功能相同和互補輸出。outm也可以單獨使用單端操作。同相的DAC輸出。輸出可裝載600?。對于TLC320AD52幀同步功能, TLC32AD52只能支持一個從機, FSD終端功能可以通過控制寄存器位D2,F(xiàn)SD加載到寄存器3的值必須乘以2得到的延遲sclks實際數(shù)量。DOUT、DIN、SCLK、FS和FC是串行通信信號。從ADC的數(shù)字輸出數(shù)據(jù)到DOUT。該DAC的數(shù)字輸入數(shù)據(jù)應(yīng)用于DIN。同步時鐘的串行通信數(shù)據(jù)幀同步是從SCLK。從ADC或DAC信號傳輸數(shù)據(jù),主要采用串口通信[5]。讀寫詞,控制設(shè)備的選項和電路結(jié)構(gòu),二次通信。
兩個差分模擬輸入(INP和INM或auxp和auxm)復(fù)用到∑Δ調(diào)制器的輔助通道性能類似于正常的輸入通道[6]。一個單桿的抗混疊濾波器必須連接到InP和INM(也auxp和auxm,如果使用)。如果一個RC用于單極濾波器R值不應(yīng)大于1 K?。輸入放大器的增益設(shè)置通過控制寄存器4。為了產(chǎn)生最佳的可能,共模抑制不必要的信號性能,模擬信號被處理的差異,直到它被轉(zhuǎn)換為數(shù)字?jǐn)?shù)據(jù)。信號施加到端子INM和InP應(yīng)該差保護裝置規(guī)格。如果直接使用單端輸入信號,那么信號電平的6分貝就會丟失。信號源驅(qū)動的模擬輸入(INP和INM或auxp和auxm)應(yīng)該有一個低源阻抗,低噪聲,性能和精度最好。
3軟件編輯及MATLAB仿真
然而聲音信號的采集光靠這些硬件的堆砌是不夠的,F(xiàn)IR濾波是其很好的選擇,濾波器必須將模擬信號轉(zhuǎn)換成數(shù)字信號,這個AD50已經(jīng)完成,且為了保持信號的不失真,對于采樣速率也有要求,采樣頻率為信號頻率的5倍左右[7] 。數(shù)據(jù)的輸出經(jīng)FIR濾波器通過DA輸出來。FIR濾波器基本結(jié)構(gòu)分為四大類,分別為橫截型(卷積和公式),級聯(lián)型(實系數(shù)二階因子的乘積),頻率抽樣(離散傅里葉變換,),快速卷積(圓卷積帶替線性卷積)。編程環(huán)境可采用CCS6.0開發(fā)環(huán)境,再采樣MATLAB連接程序設(shè)計語言,進行仿真,觀看參數(shù)。例如MATLAB有自帶的數(shù)據(jù)采集函數(shù)庫,可直接對PC上的音頻信號進行采集,方便進行調(diào)試。工具箱函數(shù)buttp buttor butter在CCS開發(fā)環(huán)境中應(yīng)用C語言進行編程,會生成text,cinit,bss,stack,sysmem代碼段,在開發(fā)環(huán)境中,先初始化DSP,初始化UART,初始化McBSP0和AD50,再使能MCBSP0中斷,之后便是數(shù)據(jù)采集,端點檢測結(jié)束點,其中,UART大的時鐘為1.8432MHz,并且波特率9600。MCBSP0每一幀包含一位數(shù)據(jù),設(shè)置AD50以8k速率進行采樣。
現(xiàn)有一實例,一帶雜音的WAV文件,雜音集中在低頻,而高頻部分才是對我們有用的,所以對該雜音進行傅里葉變換,濾掉雜音后在對信號進行傅里葉逆變換,即還原回了原音頻信號,用FDATool工具和Filter實現(xiàn)濾波處理,plot()函數(shù)繪制原信號波形圖……下面圖2為MATLAB中FIR濾波器高通,帶通,帶阻的仿真波形。
4總結(jié)與展望
語音識別及仿真技術(shù)是一門新興學(xué)科,從實驗室到市場,從工業(yè)到民間,二十多年的發(fā)展使我們認(rèn)識到語音及仿真技術(shù)的重要性,從最早期的通話,到現(xiàn)在的互聯(lián)網(wǎng)+人與智能之間的交互,現(xiàn)在國內(nèi)做的好的主要有科大訊飛,尚科語音,捷通華聲等等,我們也能看到這一技術(shù)正在快速的融入我們的生活中,比如現(xiàn)在手機輸入法都自帶語音轉(zhuǎn)換成文字的功能,蘋果的Siri等等。隨著互聯(lián)網(wǎng)的更進一步發(fā)展及社會的進步,相信在不久的將來,語音處理及仿真技術(shù)使用起來將會更加得心應(yīng)手,也將給人類社會帶來更多的驚喜與便捷,希望此文能給后人解去一些疑惑,提供一份有價值的參考資料,也望業(yè)內(nèi)高手多多指教。
參考文獻
[1]肖瑩慧.基于DSP的語音信號采集系統(tǒng)研究與設(shè)計[J].信息通信,2013.
[2]牛景濤.基于DSP實現(xiàn)的數(shù)字語音信號處理技術(shù)研究[D].西北工業(yè)大學(xué),2013.
[3]謝德芳.數(shù)字信號處理[M].北京:北京科學(xué)出版社,2005.
[4]張雄偉.現(xiàn)代語言處理技術(shù)及應(yīng)用[M].北京:機械工業(yè)出版社,2006.
[5]吳家安.語音編碼技術(shù)及應(yīng)用[M].北京:機械工業(yè)出版社,2006.
[6]劉幺,宋庭新.語音識別與控制應(yīng)用技術(shù)[M].北京:科學(xué)出版社,2008.
[7] 張雪英.數(shù)字語音處理及MATLAB仿真[M].北京:電子工業(yè)出版社,2012.