采用DSP內(nèi)核技術(shù)進(jìn)行語(yǔ)音壓縮開發(fā)
出處:jinbos 發(fā)布于:2007-04-17 14:54:17
1 語(yǔ)音算法與芯片特點(diǎn)
在本項(xiàng)目中,我們選擇了DSP集團(tuán)的語(yǔ)音壓縮算法Triple Rate Coder,其壓縮比達(dá)到了46:1,且音質(zhì)良好,MOS指標(biāo)達(dá)到了3.98。
該算法的基本思想是:首先將語(yǔ)音分為若干小段,由于語(yǔ)音信號(hào)的譜變化是一個(gè)緩變量,因此在每一小段內(nèi)信號(hào)是平穩(wěn)變化的。然后用一個(gè)數(shù)字濾波器和一個(gè)激勵(lì)函數(shù)來表示這一段時(shí)域波形的離散采樣序列。在實(shí)際算法中是采用了一個(gè)十階的線性預(yù)測(cè)濾波器,計(jì)算時(shí)還將每一幀分為4個(gè)子幀,每一子幀的濾波器系數(shù)矢量由上一幀和本幀數(shù)據(jù)計(jì)算得到,而一子幀的濾波器系數(shù)矢量則由矢量分解預(yù)測(cè)法得到;激勵(lì)函數(shù)采用的是偽隨機(jī)多脈沖激勵(lì)函數(shù),由似然算法得到。對(duì)每一幀計(jì)算得到濾波器系數(shù)矢量和函數(shù)生成元后,將這些系數(shù)再壓縮打包就得到了的語(yǔ)音壓縮數(shù)據(jù)。當(dāng)對(duì)語(yǔ)音壓縮數(shù)據(jù)進(jìn)行解壓時(shí),首先將打包的數(shù)據(jù)展開,然后建立起線性預(yù)測(cè)濾波器,將重新生成的偽隨機(jī)多脈沖激勵(lì)函數(shù)輸入濾波器,這樣在濾波器的輸出端就可得到被恢復(fù)的語(yǔ)音信號(hào)序列了。
該算法的實(shí)時(shí)運(yùn)算需要22MIPS以上的運(yùn)算速度,為此DSP集團(tuán)將DSP內(nèi)核和算法代碼集成在D6571系列芯片內(nèi),以滿足除PC用戶以外的更廣泛應(yīng)用。D6571原理框圖如所示,其本身可直接外掛并管理4兆位的flash,8K采樣速率時(shí)在2.8KB的數(shù)據(jù)率下可提供25分鐘的回放時(shí)間。該芯片具備工業(yè)標(biāo)準(zhǔn)的編解碼器接口,可直接與串行PCM接口的音頻編解碼芯片相連,如美國(guó)國(guó)家半導(dǎo)體的TP3504或韓國(guó)三星半導(dǎo)體的KS8620。D6571可外接兩片音頻編解碼芯片,上電后可用設(shè)置命令對(duì)外接音頻編解碼芯片的工作模式進(jìn)行設(shè)置。例如:設(shè)置外接芯片的時(shí)鐘是外同步還是自同步;設(shè)置外接芯片處于輸出方式還是輸入方式等。
根據(jù)實(shí)際開發(fā)經(jīng)驗(yàn),我們認(rèn)為D6571芯片與其它公司所提供的某些DSP內(nèi)核芯片相比,其的優(yōu)點(diǎn)是幾乎不需要任何開發(fā)工具或軟件就可使用。因?yàn)樵撔酒臄?shù)據(jù)是雙向的,既可由上位機(jī)將壓縮后的語(yǔ)音數(shù)據(jù)通過它解壓轉(zhuǎn)變成語(yǔ)音,也可輸入語(yǔ)音通過它進(jìn)行實(shí)時(shí)壓縮后傳送給上位機(jī)。這就大大方便了長(zhǎng)回放時(shí)間語(yǔ)音開發(fā)用戶的使用。更何況目前許多語(yǔ)音壓縮芯片對(duì)語(yǔ)音數(shù)據(jù)的管理是不公開的,例如:某些數(shù)字錄音電話的語(yǔ)音壓縮芯片。
2 系統(tǒng)構(gòu)成
與語(yǔ)音處理有關(guān)的系統(tǒng)構(gòu)成如所示。
語(yǔ)音數(shù)據(jù)存放在一片32兆位的flash中,采用三星的K29W3200,這是一種8位并行接口的閃存,并行接口有利于提高代碼效率和滿足實(shí)時(shí)性要求。
在語(yǔ)音數(shù)據(jù)的壓縮和回放過程中,D6571和flash之間的數(shù)據(jù)吞吐均通過上位機(jī)進(jìn)行。上位機(jī)采用89C52。系統(tǒng)還有64×64的點(diǎn)陣液晶模塊ACM6464等外圍設(shè)備。所有的設(shè)備均使用一條公共的8位數(shù)據(jù)總線,即CPU的P0口;P2口的六根口線用于鍵盤管理;P3口的兩根口線作為兩條串口線;這樣用于外設(shè)管理的口線還剩余16根可用。系統(tǒng)實(shí)際使用了其中的14根線:與flash管理有關(guān)的使用6根,與D6571有關(guān)的使用4根,還有4根用于液晶顯示管理。
音頻編解碼接口芯片采用一片TP3054,TP3054工作所需的同步脈沖、采樣時(shí)鐘、數(shù)據(jù)信號(hào)等只需要與D6571的四根控制線相連即可得到。
3 系統(tǒng)開發(fā)
本系統(tǒng)的語(yǔ)音開發(fā)分為上載、數(shù)據(jù)合成及三個(gè)過程。上載是指獲得語(yǔ)音壓縮數(shù)據(jù);數(shù)據(jù)合成是指將全系統(tǒng)的數(shù)據(jù)按一定的結(jié)構(gòu)組織成一個(gè)文件;是指儀器裝配出廠時(shí)將文件燒錄到flash中。這三個(gè)過程均通過PC機(jī)進(jìn)行。由于系統(tǒng)板上MCU的串行信號(hào)直接輸出的是TTL電平,因此,本系統(tǒng)的語(yǔ)音開發(fā)需要另外制作的硬件就是使用一片MAX232來完成與PC機(jī)之間的電平轉(zhuǎn)換。
D6571具有16位寬度的總線,但也允許以分時(shí)方式使用8位總線,這時(shí)上位機(jī)須用HL信號(hào)表示送上總線的是高8位還是低8位;而當(dāng)D6571主動(dòng)將數(shù)據(jù)送上總線時(shí),會(huì)發(fā)出ACK信號(hào)通知上位機(jī)讀取數(shù)據(jù)。HRD和HWR則是讀和寫的控制線。由于Triple Rate Coder算法是按30毫秒分幀采樣,然后再進(jìn)行分析壓縮的,因此無論是讀取壓縮數(shù)據(jù)還是回送壓縮數(shù)據(jù),均必須在一幀之內(nèi)完成,否則D6571會(huì)自行進(jìn)入休眠狀態(tài)。向D6571輸送語(yǔ)音數(shù)據(jù)的過程如下:首先送出解壓控制命令,然后接收一個(gè)回送狀態(tài)字,狀態(tài)字中包含了當(dāng)前幀所需要的字節(jié)數(shù),上位機(jī)就連續(xù)送出規(guī)定數(shù)目的數(shù)據(jù),待一幀處理完畢后,D6571會(huì)繼續(xù)送出狀態(tài)字。如此循環(huán)就可連續(xù)回放出語(yǔ)音了。而利用D6571進(jìn)行語(yǔ)音壓縮的數(shù)據(jù)處理過程正好相反,狀態(tài)字中包含的是當(dāng)前幀壓縮所得到的字節(jié)數(shù),上位機(jī)就應(yīng)連續(xù)接收規(guī)定數(shù)目的數(shù)據(jù)。
上載時(shí),首先要得到的是各個(gè)語(yǔ)音段的壓縮數(shù)據(jù)。作為準(zhǔn)備工作,先用PC機(jī)的錄音機(jī)工具將我們所需的語(yǔ)音錄制成WAV文件。然后對(duì)MCU和PC機(jī)分別編寫共同配合工作的兩段程序來完成以下功能:PC機(jī)通過聲卡播放聲音給D6571;89C52控制D6571進(jìn)行語(yǔ)音壓縮并讀回壓縮數(shù)據(jù),然后通過串口線回送給PC機(jī),PC機(jī)則將每段的壓縮數(shù)據(jù)存盤。
由于每段語(yǔ)音播放時(shí)均要有一定的中文點(diǎn)陣字符顯示,數(shù)據(jù)合成的任務(wù)就是要將每段數(shù)據(jù)加上索引和字符點(diǎn)陣數(shù)據(jù)后再合成為一個(gè)完整的近32兆位的二進(jìn)制文件。文件形成時(shí)為了使數(shù)據(jù)定位和讀出編程方便,數(shù)據(jù)塊以flash的頁(yè)為單位,一頁(yè)為528字節(jié)。
工作則較簡(jiǎn)單,在設(shè)備出廠前直接使用系統(tǒng)89C52的串口將數(shù)據(jù)合成形成的文件到閃存中即可。
D6571的壓縮率極高,使用和開發(fā)也比較方便。因此盡管本系統(tǒng)的語(yǔ)音容量長(zhǎng)達(dá)200分鐘,但系統(tǒng)整體設(shè)計(jì)十分簡(jiǎn)潔、經(jīng)濟(jì),幾乎不需調(diào)試。主要開發(fā)工作是MCU和PC機(jī)的一些程序開發(fā)使用C51和VB編程,開發(fā)速度也比較快。
由于D6571的控制命令很豐富,系統(tǒng)用戶界面的軟件是很容易編寫的。例如,由于該芯片具有30階的音量控制命令,我們未添任何硬件就為設(shè)備增加了數(shù)字音量控制功能。D6571的控制命令還包含自動(dòng)增益控制、變速回放、數(shù)字濾波器等更加的命令,因此,它幾乎可應(yīng)用于任何語(yǔ)音場(chǎng)合。
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫(kù)電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫(kù)電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫(kù)電子市場(chǎng)網(wǎng),http://m.58mhw.cn,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- 單片機(jī)技術(shù)特性與嵌入式開發(fā)實(shí)踐指南2026/1/7 10:00:02
- 單片機(jī)(MCU)與數(shù)字信號(hào)處理器(DSP)分類及選型技術(shù)指南2025/12/30 10:02:37
- 工業(yè)級(jí)DSP信號(hào)處理系統(tǒng):硬件適配與抗干擾工程方案2025/12/15 14:41:00
- HOLTEK推出HT32F65533G/733G內(nèi)建N/N預(yù)驅(qū)電機(jī)專用SoC單片機(jī)2025/11/26 14:11:41
- 什么是C51數(shù)據(jù)類型擴(kuò)充定義2025/10/27 13:59:22
- PCB電源完整性設(shè)計(jì)核心規(guī)范(PowerIntegrity)
- 工業(yè)電源與消費(fèi)級(jí)電源的差異
- 機(jī)器學(xué)習(xí)在濾波器設(shè)計(jì)中的應(yīng)用:自動(dòng)化優(yōu)化與性能預(yù)測(cè)
- 連接器失效的常見原因分析
- 過流、過壓保護(hù)在電源IC中的實(shí)現(xiàn)
- PCB電磁兼容(EMC)設(shè)計(jì)核心規(guī)范
- MOSFET短路失效案例分析
- IIR與FIR數(shù)字濾波器的核心差異、設(shè)計(jì)方法及應(yīng)用場(chǎng)景
- 防水連接器結(jié)構(gòu)與密封原理
- 電源IC散熱設(shè)計(jì)與熱管理









