基于DSP技術(shù)的多路語(yǔ)音實(shí)時(shí)采集與壓縮處理系統(tǒng)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
關(guān)鍵詞:數(shù)據(jù)采集;DSP;數(shù)據(jù)處理;實(shí)時(shí);語(yǔ)音壓縮
在語(yǔ)音的數(shù)字通信和數(shù)字存儲(chǔ)等應(yīng)用領(lǐng)域,需要對(duì)多路語(yǔ)音信號(hào)進(jìn)行實(shí)時(shí)采集和壓縮處理[1]。如某語(yǔ)音記錄設(shè)備,需要對(duì)8路語(yǔ)音信號(hào)進(jìn)行實(shí)時(shí)采集和壓縮處理,而且要求對(duì)采集到的語(yǔ)音數(shù)據(jù)的壓縮率盡量高。一般地,當(dāng)要求語(yǔ)音數(shù)據(jù)壓縮后的碼流在10 Kbps左右時(shí),需要采用語(yǔ)音的模型編碼技術(shù)。而模型編碼算法的運(yùn)算量很大。因此,如一方面要求對(duì)多達(dá)8路的語(yǔ)音信號(hào)進(jìn)行實(shí)時(shí)采集,另一方面又要求對(duì)各路的語(yǔ)音信號(hào)進(jìn)行較高壓縮率的實(shí)時(shí)壓縮處理,對(duì)數(shù)據(jù)采集和處理系統(tǒng)提出了更高的要求。
由于VLSI技術(shù)的迅速發(fā)展,DSP(Digitalsig-nal processor數(shù)字信號(hào)處理器)的性能價(jià)格比得到了很大的提高[2],使得利用DSP的高速數(shù)據(jù)管理能力和處理能力來(lái)實(shí)現(xiàn)高速數(shù)據(jù)采集和處理成為實(shí)時(shí)數(shù)據(jù)采集和處理的一個(gè)新的發(fā)展方向?;诖?,本文介紹的多路語(yǔ)音實(shí)時(shí)采集與壓縮處理系統(tǒng)采用了高速DSP技術(shù)。
1 系統(tǒng)結(jié)構(gòu)與工作原理
1.1 系統(tǒng)主要性能指標(biāo)
采集語(yǔ)音信號(hào)通道數(shù):8
語(yǔ)音信號(hào)帶寬:300~3 400 Hz
采樣速率:8 000 Hz
語(yǔ)音回放通道數(shù):1
每路語(yǔ)音信號(hào)壓縮后碼流:13 Kbps
擴(kuò)展ISA總線接口
系統(tǒng)在結(jié)構(gòu)上包括三個(gè)主要部分,即8通道A/D和1通道D/A部分,DSP最小系統(tǒng)及DSP的DMA與ISA總線的接口。如圖1所示。
1.2 A/D及D/A
該部分由9片A-Law CODEC芯片TP3057組成。其中8片構(gòu)成8通道A/D轉(zhuǎn)換器,另一片構(gòu)成D/A轉(zhuǎn)換器,直接由DSP控制。該芯片采樣數(shù)據(jù)是8 000×8 bit A-Law PCM數(shù)據(jù),每通道數(shù)字信號(hào)的輸入和輸出是64 KbpsPCM同步串行碼流。數(shù)據(jù)傳輸碼流速率是2.048 Mb/s。8片A-Law CODEC均掛接在同一2.048 Mb/s的同步串行數(shù)據(jù)總線上,2.048 Mb/s的數(shù)據(jù)分為32個(gè)時(shí)隙,每個(gè)通道的64Kbps數(shù)據(jù)的傳輸占用32個(gè)時(shí)隙中的一個(gè)。具體占用那一個(gè)時(shí)隙由時(shí)隙分配控制電路確定。
1.3 DSP最小系統(tǒng)
DSP是本系統(tǒng)核心部分,它完成對(duì)2.048 Mb/s的同步串行數(shù)據(jù)總線的控制,及對(duì)高達(dá)2.048 Mb/s串行數(shù)據(jù)碼流的采集、8路輸入語(yǔ)音的壓縮處理和1路語(yǔ)音的解壓縮處理。本系統(tǒng)采用的DSP是AnalogDevice公司的定點(diǎn)DSP,即ADSP-2181,其主要功能與特點(diǎn)如下:
(1)外接16.67 MHz晶振,指令周期為30 ns,33 MIPS運(yùn)算速度,所有指令單周期執(zhí)行。
?。?FONT face="Times New Roman">2)提供一個(gè)16位的DMA(IDMA)口,用于高速存取片內(nèi)存儲(chǔ)器及裝載數(shù)據(jù)和程序。
?。?FONT face="Times New Roman">3)提供一個(gè)8位自舉DMA(BDMA)口,用于從自舉程序存儲(chǔ)器中裝載數(shù)據(jù)和程序。
?。?FONT face="Times New Roman">4)程序RAM 24Bit×16 K,數(shù)據(jù)RAM 16Bit×16 K。
(5)16位字長(zhǎng)運(yùn)算精度。
?。?FONT face="Times New Roman">6)提供兩個(gè)雙緩沖區(qū)的串口,具有硬件A/u律編解碼和自動(dòng)緩沖(Auto-buffer)能力,其中的串口0具有多通道(Multichannel)的功能。
?。?FONT face="Times New Roman">7)提供6個(gè)外部中斷、13個(gè)可編程I/O引腳和JTAG仿真引腳。
由于DSP的上述功能和特點(diǎn),使得DSP與A/D及D/A電路實(shí)現(xiàn)了無(wú)縫連接。其中串口0連接8路A/D的2.048 Mb/s的同步串行數(shù)據(jù)總線,串口1連接D/A CODEC電路。由于DSP具有16 K的程序RAM和16 K的數(shù)據(jù)RAM,所以對(duì)于本系統(tǒng)無(wú)需外擴(kuò)存儲(chǔ)器,即由單片DSP就構(gòu)成了本系統(tǒng)所需的最小DSP系統(tǒng)。
1.4 DSP的DMA與ISA總線的接口
ADSP2181片內(nèi)集成了一個(gè)直接訪問(wèn)其內(nèi)部存儲(chǔ)器的16位DMA端口(IDMA PORT)。主機(jī)通過(guò)此接口可以直接訪問(wèn)ADSP2181片內(nèi)的程序和數(shù)據(jù)存儲(chǔ)器的任一單元。因而主機(jī)可以通過(guò)此端口對(duì)DSP加載程序、下載程序、讀取片內(nèi)執(zhí)行的狀態(tài)、實(shí)現(xiàn)與DSP的數(shù)據(jù)傳輸?shù)炔僮鳌?FONT face="Times New Roman">IDMA端口總線的16位數(shù)據(jù)和地址是復(fù)用的。由于DSP的程序存儲(chǔ)器是24位的,而DMA的數(shù)據(jù)總線寬度是16位,故對(duì)程序存儲(chǔ)器操作時(shí),分為兩次,先對(duì)高16位操作,然后接著對(duì)最低8位操作。通過(guò)IDMA端口的存、取操作分如下兩步進(jìn)行:
·IDMA地址鎖定操作
通過(guò)IDMA的地址鎖存信號(hào)(IAL),將14比特的地址信息和1比特的存儲(chǔ)器類(lèi)型信息通過(guò)IDMA總線,在地址鎖存信號(hào)(IAL)的降沿時(shí)被鎖入到DSP片內(nèi)的IDMA地址鎖存器。14比特地址信息確定了ADSP片內(nèi)的存儲(chǔ)器地址,而存儲(chǔ)器類(lèi)型位用來(lái)區(qū)分操作是對(duì)程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器。
·數(shù)據(jù)存、取操作
當(dāng)?shù)刂沸畔⒈环湃氲?FONT face="Times New Roman">IDMAA寄存器中后,通過(guò)加IDMA的IWR,IRD信號(hào),實(shí)現(xiàn)對(duì)片內(nèi)的指定地址的信息進(jìn)行讀、寫(xiě)操作。每次讀、寫(xiě)操作后存儲(chǔ)器的地址值將自動(dòng)的遞增,為下一次的讀寫(xiě)操作做好準(zhǔn)備。
本系統(tǒng)中通過(guò)ISA總線的I/O操作及IDMA口對(duì)DSP的內(nèi)部存儲(chǔ)器進(jìn)行訪問(wèn)的。通過(guò)硬件譯碼滿(mǎn)足IDMA時(shí)序要求的控制信號(hào)IAL,IWR,IRD等及DSP的復(fù)位信號(hào)(RESET)。該接口占用了16個(gè)I/O地址空間。
1.5 通過(guò)IDMA端口裝載程序
ADSP2181通過(guò)兩種機(jī)制在上電、復(fù)位后自動(dòng)裝載DSP程序。兩種機(jī)制由MMAP和BMODE兩個(gè)引腳的電平控制。當(dāng)MMAP=0,BMODE=1時(shí),ADSP2181自動(dòng)在系統(tǒng)復(fù)位時(shí),通過(guò)IDMA端口由主機(jī)加載DSP程序。主機(jī)首先必須裝載除程序的第一條指令外其它程序和數(shù)據(jù)到DSP的片內(nèi)程序存儲(chǔ)器,最后才寫(xiě)入對(duì)應(yīng)程序RAM第一個(gè)單元的第一條指令。一當(dāng)程序存儲(chǔ)器的0地址被寫(xiě)入程序代碼后,DSP立即從地址0開(kāi)始執(zhí)行程序。
2 8路語(yǔ)音信號(hào)的數(shù)據(jù)采集
8路語(yǔ)音數(shù)字信號(hào)通過(guò)一2.048 Mb/s的同步串行數(shù)據(jù)總線傳輸?shù)?FONT face="Times New Roman">DSP。其中每個(gè)通道的數(shù)據(jù)是64 Kbps,每個(gè)通道占用2.048 Mb/s的同步串行數(shù)據(jù)總線的32個(gè)時(shí)隙中的一個(gè),因此,共占用8個(gè)時(shí)隙。DSP通過(guò)對(duì)時(shí)隙分配電路的控制給8個(gè)通道各分配一個(gè)時(shí)隙。這樣,8個(gè)通道的每個(gè)通道的數(shù)據(jù)都在由DSP指定的時(shí)隙中傳輸。
DSP的串口0是一個(gè)可編程的最大數(shù)據(jù)傳輸速率能達(dá)到4.096 Mb/s的同步串行口。DSP串口0的操作在接收到一個(gè)WORD或發(fā)送完一個(gè)WORD的數(shù)據(jù)時(shí),從DSP內(nèi)部RAM讀、寫(xiě)一個(gè)WORD的數(shù)據(jù)需要占用DSP的一個(gè)機(jī)器周期(33 ns),在接收和發(fā)送過(guò)程中不占用DSP的處理時(shí)間。由此可見(jiàn),DSP的串口0具有很強(qiáng)的數(shù)據(jù)采集與控制能力。
利用串口0的較強(qiáng)的數(shù)據(jù)采集與控制能力,很容易實(shí)現(xiàn)通過(guò)2.048 Mb/s的同步串行數(shù)據(jù)總線對(duì)8通道語(yǔ)音數(shù)字信號(hào)的采集與控制。首先,編程DSP的串口0的同步時(shí)鐘信號(hào)及幀同步信號(hào)分別為2 048 kHz和8 kHz,這兩個(gè)信號(hào)控制CODEC的A/D轉(zhuǎn)換速率和位傳送速率,同時(shí)同步時(shí)鐘信號(hào)還可供CODEC的A/D轉(zhuǎn)換的時(shí)鐘。再者,編程DSP的串口0工作于多通道模式,打開(kāi)32個(gè)時(shí)隙中對(duì)應(yīng)的8通道的時(shí)隙接收,使對(duì)應(yīng)的每通道字(WORD)長(zhǎng)為8位,選擇A-Law壓/擴(kuò),并打開(kāi)自動(dòng)緩沖功能并設(shè)置自動(dòng)緩沖指針。當(dāng)如上對(duì)串口0初始化并打開(kāi)串口0的接收中斷后,串口0將接收到的8 WORD的按A-Law解壓的數(shù)據(jù)存放在自動(dòng)緩沖指針指向的長(zhǎng)度為8的緩沖區(qū)中,自動(dòng)緩沖指針自動(dòng)回位,同時(shí)產(chǎn)生一個(gè)硬件接收中斷。
3 多路語(yǔ)音實(shí)時(shí)壓縮處理
3.1 壓縮算法
考慮到壓縮率的要求和實(shí)時(shí)的要求,在本系統(tǒng)中采用13 Kb/sRPE-LTP-LP編解碼算法[GSM],該算法的特點(diǎn)是在模型編碼算法中較為簡(jiǎn)單,語(yǔ)音質(zhì)量高達(dá)到了通信等級(jí),同時(shí)具有較高的壓縮率。該算法的編碼算法包括以下幾個(gè)主要部分:
3.1.1 預(yù)處理部分
去除原始語(yǔ)音信號(hào)S0(n)中的直流分量得到S0f(n),再通過(guò)一階的FIR濾波器進(jìn)行高頻預(yù)加重,得到信號(hào)S(n)。
3.1.2 LPC分析
按每160個(gè)樣本點(diǎn)將信號(hào)S(n)進(jìn)行分幀,對(duì)每幀數(shù)據(jù)計(jì)算出8個(gè)LPC反射系數(shù)γ(i),i=0,1,2,…,7;再轉(zhuǎn)換成對(duì)數(shù)面積比參數(shù)LAR(i),i=1,2…7;并對(duì)所得的LAR(i)進(jìn)行量化編碼得到LARC。
3.1.3 短時(shí)分析濾波
短時(shí)分析濾波是一個(gè)8級(jí)格型濾波器,通過(guò)短時(shí)分析濾波,得到線性預(yù)測(cè)(LP)余量d(n)。
3.1.4 長(zhǎng)時(shí)預(yù)測(cè)
利用長(zhǎng)時(shí)預(yù)測(cè)綜合對(duì)LP短時(shí)余量信號(hào)d(n)處理以進(jìn)一步的去除冗余度。長(zhǎng)時(shí)預(yù)測(cè)是按子幀進(jìn)行處理的,每一幀分成4個(gè)子幀。
3.1.5 規(guī)則脈沖編碼
對(duì)經(jīng)過(guò)短時(shí)、長(zhǎng)時(shí)預(yù)測(cè)后得到的LP余量信號(hào),進(jìn)行加權(quán)濾波、規(guī)則脈沖提取和量化編碼。
在本系統(tǒng)的DSP上該算法實(shí)時(shí)實(shí)現(xiàn)性能如下:
·碼流速率13 Kb/s
·編碼運(yùn)算量 3 MIPS
·解碼運(yùn)算量 0.7 MIPS
·程序量 2 KWORD
·占用數(shù)據(jù)RAM 1 KWORD
3.2 多路語(yǔ)音實(shí)時(shí)壓縮處理的軟件實(shí)現(xiàn)
由于實(shí)時(shí)實(shí)現(xiàn)13 Kb/sRPE-LTP-LP編碼算法只占用了DSP的3MIPS的運(yùn)算量,而解碼運(yùn)算量為0.7 MIPS故在本系統(tǒng)的具有33 MIPS的運(yùn)算速度的DSP上,可軟件實(shí)時(shí)實(shí)現(xiàn)多達(dá)10通道的13Kb/sRPE-LTP-LP編碼算法和1通道的解碼算法。同時(shí),還有2MIPS的運(yùn)算速度用于系統(tǒng)控制與管理。根據(jù)本系統(tǒng)的要求,已成功實(shí)現(xiàn)了8通道的13Kb/sRPE-LTP-LP編碼算法和1通道的解碼算法。因此,本系統(tǒng)的DSP在完成要求的多路語(yǔ)音采集與壓縮處理任務(wù)的條件下,還有一定的處理能力用于系統(tǒng)其它的擴(kuò)展處理上。本系統(tǒng)的多路語(yǔ)音實(shí)時(shí)壓縮處理的系統(tǒng)軟件框圖如圖2所示。
由圖2可以看出,軟件設(shè)計(jì)主要包括4大部分:
·命令解釋與控制模塊
·13 Kb/sRPE-LTP-LP編解碼模塊
·多通道語(yǔ)音編解碼控制模塊
·接口功能模塊
3.2.1 命令解釋與控制模塊
命令解釋與控制模塊主要是用于解釋由PC機(jī)通過(guò)IDMA口發(fā)來(lái)的各種命令,如發(fā)送或接收編解碼數(shù)據(jù)、設(shè)置PC機(jī)與DSP的數(shù)據(jù)傳輸數(shù)據(jù)量的大小、查詢(xún)編解碼狀態(tài)以及啟動(dòng),停止編解碼操作等。該模塊不直接與PC機(jī)打交道,而是通過(guò)接口功能模塊,間接實(shí)現(xiàn)與主CPU的數(shù)據(jù)信息交換。
3.2.2 13 Kb/sRPE-LTP-LP編解碼模塊
該模塊是一個(gè)單通道13 Kb/sRPE-LTP-LP語(yǔ)音編解碼模塊。它是本系統(tǒng)的語(yǔ)音壓縮處理的核心部分,為使該模塊具有通用性,為該模塊單獨(dú)形成一個(gè)ADSP-2100系列語(yǔ)言庫(kù),可與任何其它ADSP-2100系列模塊相連。
3.2.3 多通道語(yǔ)音編解碼控制模塊
該模塊基于單通道13 Kb/sRPE-LTP-LP語(yǔ)音編解碼模塊,實(shí)現(xiàn)多通道語(yǔ)音編碼和單通道語(yǔ)音解碼。對(duì)于多通道語(yǔ)音編碼,一方面,當(dāng)某通道采集到一幀160點(diǎn)的語(yǔ)音數(shù)據(jù)時(shí),調(diào)用語(yǔ)音編碼模塊對(duì)該幀進(jìn)行編碼,并將編碼后的語(yǔ)音數(shù)據(jù)按約定的格式存放到各通道的編碼數(shù)據(jù)緩沖區(qū)中;另一方面,由于語(yǔ)音的模型編碼是前后幀相關(guān)聯(lián)的,所以該模塊還必須將當(dāng)前通道的當(dāng)前幀編碼后的必須保存的數(shù)據(jù)和狀態(tài)進(jìn)行保存,以及在調(diào)用語(yǔ)音編碼模塊對(duì)當(dāng)前幀進(jìn)行編碼前,恢復(fù)上一幀編碼后的數(shù)據(jù)和狀態(tài)。對(duì)于單通道語(yǔ)音解碼,則只需在接收到由PC機(jī)傳送來(lái)的壓縮數(shù)據(jù)后,調(diào)用解碼模塊,然后將解碼后的160點(diǎn)語(yǔ)音數(shù)據(jù)送到D/A的串口1發(fā)送緩沖區(qū)。
3.2.4 接口功能模塊
該模塊實(shí)現(xiàn)DSP與PC機(jī)的數(shù)據(jù)的實(shí)際交換工作,同時(shí)也實(shí)現(xiàn)DSP的數(shù)據(jù)采集與控制。由于它是軟件設(shè)計(jì)中唯一與硬件相關(guān)的模塊,故該模塊在設(shè)計(jì)上盡量與其它模塊獨(dú)立。這樣,當(dāng)硬件有所改變時(shí),可不必改變其他模塊。
4 結(jié) 論
本系統(tǒng)由于采用了DSP技術(shù),使得多路語(yǔ)音的采集和壓縮處理得以實(shí)時(shí)實(shí)現(xiàn)。同時(shí)還使系統(tǒng)具有較高的可編程性能。基于該系統(tǒng)的某語(yǔ)音記錄儀已經(jīng)通過(guò)省、部級(jí)的鑒定。本系統(tǒng)的成功設(shè)計(jì)說(shuō)明數(shù)據(jù)采集與處理系統(tǒng)采用基于DSP技術(shù),將大大提高系統(tǒng)的高速數(shù)據(jù)的實(shí)時(shí)采集和實(shí)時(shí)處理的能力。而且,當(dāng)今的DSP的處理速度和數(shù)據(jù)管理能力還在迅速地提高,其價(jià)格也降到能應(yīng)用于一般的應(yīng)用場(chǎng)合。如ADSP-21061,40 MIPS的運(yùn)算速度,10個(gè)DMA控制器,40位浮點(diǎn)運(yùn)算精度,數(shù)據(jù)管理能力可達(dá)240Mbytes/s,其售價(jià)也只有30~40美元。因此,開(kāi)發(fā)和研究基于DSP技術(shù)的數(shù)據(jù)采集與處理系統(tǒng)具有重要的實(shí)際意義。
參考文獻(xiàn)
1 戴禮榮,王仁華,宋 彥.高速DSP技術(shù)及其在通信中的應(yīng)用.合肥工業(yè)大學(xué)學(xué)報(bào),1997,20(1):90~962 王仁華,戴禮榮.當(dāng)代DSP及其在現(xiàn)代通信應(yīng)用中面臨的挑戰(zhàn).中興新通信,1998,4(1):8~123 陳永彬,王仁華.語(yǔ)音信號(hào)處理.合肥:中國(guó)科學(xué)技術(shù) 大學(xué)出版社,1990.103~106
第一作者簡(jiǎn)介 戴禮榮,男,副教授,1962年8月生。