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