高效率多通道語音記錄系統(tǒng)的研制
摘 要: 介紹一種采用一片TMS320C542實現(xiàn)4路電話壓縮的話音處理卡,對處理卡硬件結(jié)構(gòu)和RPE-LTP算法及DSP實現(xiàn)作了敘述,最后提出一種基于該處理卡的語音記錄系統(tǒng)的構(gòu)想。
本文引用地址:http://m.butianyuan.cn/article/242339.htm關(guān)鍵詞: 語音記錄器 語音編解碼 數(shù)字信號處理器(DSP)規(guī)則脈沖激勵-長時線性預(yù)測(RPE-LEP) ADPCM算法
多通道的語音記錄和回放系統(tǒng)有著廣泛的應(yīng)用背景,主要應(yīng)用在語音記錄、話音檔案、數(shù)字語音存儲等領(lǐng)域。隨著計算機性價比不斷提高和應(yīng)用的普及,由計算機管理的語音系統(tǒng)越來越受到重視。
傳統(tǒng)的多通道語音記錄系統(tǒng),過去由于受到DSP運算能力和價格的限制,一般采用ITU-G.726建議書提出的ADPCM作為壓縮語音的算法。該算法運算量少,最低碼率為16kb/s,但低碼率時語言質(zhì)量較差。近年來DSP的性價比不斷提高,這使性能更好的語音壓縮算法可以應(yīng)用于多路語音壓縮系統(tǒng)。本項目采用了美國德州儀器(TI)的DSP芯片TMS320C542PGE-40,完成了在GSM系統(tǒng)中使用的規(guī)則脈沖激勵-長時線性預(yù)測(RPE-LTP)算法,實現(xiàn)了高效率的多通道語音記錄系統(tǒng)。
本系統(tǒng)具有面向應(yīng)用的配置和靈活的擴展接口。由配置的不同,系統(tǒng)可支持4~8路話音處理。系統(tǒng)采用ISA總線與PC機接口。為了加強業(yè)務(wù)擴展能力,卡上保留一個外部接口,可用于功能擴展。在無擴展部分時支持4路話音處理。
1 硬件結(jié)構(gòu)
硬件框圖如圖1所示。系統(tǒng)硬件包括’C542、擴展RAM、ISA總線接口、模擬接口、擴展接口(虛線框中部分)五大部分。其中,模擬接口(ADC)為TMS320AC01,擴展RAM為TC55B8016,兩者都是TI的產(chǎn)品。FIFO為IDT公司的IDT7201。
’C542是系統(tǒng)的核心部件,它的功能是進行底層硬件的管理和語音數(shù)據(jù)的壓縮?!疌542是TI公司于1995年推出的面向移動通信的新一代產(chǎn)品。它采用改進的哈佛體系結(jié)構(gòu),集成了許多并行處理單元,使它特別適合完成高復(fù)雜度的算法。本系統(tǒng)采用的’C542具有40MIPS的運算能力?!疌542還具有幾種高效的片內(nèi)外設(shè):1個64K×16的并口,2個同步串口,1個8位的主機接口(HPI)和1個定時器。它能響應(yīng)5個中斷,具有總線掛起功能。’C542豐富的片內(nèi)外設(shè)極大地減省了片外電路。
模擬接口由以主從方式級連在一起的四個’AC01組成,這四個ADC掛接在’C542的串口0上,如圖2所示。因為四路輸入電路相同故只完整畫出一路。此時’C542的同步串口工作在觸發(fā)模式,即:數(shù)據(jù)的傳輸由’AC01主動觸發(fā)。四個’AC01通過FSD信號(類似于接力棒)以時分復(fù)用方式與串口通信。首先,主’AC01發(fā)出幀同步脈沖,傳輸一個采樣點。串行傳完16位信息后,主’AC01通過FSD信號通知第一個從’AC01開始傳數(shù),同時觸發(fā)幀同步。第一個從’AC01傳完一個樣值后通知第二個從’AC01,依此類推。待四個ADC都傳完第一個樣值后再在由主’AC01傳輸?shù)诙€樣值,如此循環(huán)。在傳入’C542的16位信息中,高14位是2進制補碼形式的樣值。低2位為00時表示該值是由主’AC01傳入,為01表示該值是由從’AC01傳入。DSP程序根據(jù)這一點區(qū)分各路語音數(shù)據(jù)。由圖2可見’C542串口的收、發(fā)幀同步信號(FSR、FSX)被接在一起,所以,’C542在收到一個數(shù)據(jù)的同時也向當時發(fā)數(shù)的’AC01發(fā)出一個數(shù)據(jù)。’AC01將收到的數(shù)據(jù)通過它的DA部分轉(zhuǎn)變成模擬量。
’AC01前端的電路為輸入整形電路。Vi首先經(jīng)過一個低通濾波器,然后通過電壓跟隨器被運算電路分解成兩個差分分量in+,in-。其中in+=Vm+Vi/2;in-=Vm-Vi/2?!疉C01工作在+5V,Vm是它提供的中值電壓:Vm=2.5V。在輸入前端Vi已被限制在±5V的范圍。
在整個系統(tǒng)中,PC作為數(shù)據(jù)存儲器和人機交換信息窗口,它的作用是存儲數(shù)據(jù)和管理整個插卡運行,在系統(tǒng)的初始化階段PC機還要為DSP裝載程序。PC與’C542的接口部分由ISA總線和’C542的主機接口HPI組成。HPI是’C542的片內(nèi)外設(shè),它為’C542內(nèi)部的一段2K字的RAM提供一個窗口,主機通過此窗口可以直接訪問這段RAM??梢?,這段2K字RAM的作用就相當于傳統(tǒng)片外片擴展的雙口RAM。因為HPI的RAM在DSP片內(nèi),所以它能提供更高的讀寫效率。同時主機接口作為一個’C542的部件,它還能用來中斷主機和接受主機中斷,’C542還有HPI的bootload方式。在本系統(tǒng)中,主機首先用’C542的HPI bootload方式將程序載入’C542中,并讓它運行,然后再以HPI RAM中的160字作為緩沖區(qū)來與’C542交換數(shù)據(jù)。
有了上面三個基本部分,本系統(tǒng)已經(jīng)具備了同時記錄和播放4路語音的能力。我們注意到,此時’C542的潛力還沒有得到充分的發(fā)揮。實際上,4路GSM編解碼(這種情況不常用)僅用掉約20MIPS的運算能力,為其運算能力的一半。另外,并口、串口1、定時器等片內(nèi)外設(shè)都沒有使用。圖1的虛框內(nèi)的部分用來擴展這部分資源。
擴展RAM是16K字的SRAM。它直接掛在’C542的地址、數(shù)據(jù)總線上,可以實現(xiàn)0等待周期讀寫。擴展接口是板外電路訪問板上資源(包括并口、串口1、定時器、中斷等)的途徑。利用這兩個部件可以進一步提高本卡處理語音的能力;它能同時壓縮8路語音,或者它還能完成數(shù)據(jù)搬移、轉(zhuǎn)儲、分析等功能。
2 RPL-LTP算法
我們采用的語音編碼算法是RPE-LTP法,具體算法在ETSI-G.06.10中規(guī)定。它要求的采樣率為8kHz,采樣精度為13位,算法的原始碼率為104kb/s,編碼碼率是13kb/s,MOS分為3.6,編解碼延遲為。這種算法與傳統(tǒng)的多路語音記錄系統(tǒng)所采用的ADPCM算法相比具有非常良好的語音回放質(zhì)量。在ITU-G.726,ADPCM算法當碼率為32kb/s時MOS分為4;當碼率為24kb/s時MOS分為3.2;當碼率為16kb/s時MOS分僅為2。相應(yīng)地這種算法較ADPCM算法復(fù)雜,它是一種混合編碼:它既利用了語音信號的相關(guān)性進行參數(shù)編碼,又利用了激勵源信號的幅度特性進行波形編碼。另外,還利用人耳的聽覺特性,進一步消除語音信號中的主觀冗余度。在我們的實現(xiàn)中,其運算復(fù)雜度為4.7M,IPS(編解碼),所用程序、數(shù)據(jù)存儲空間分別為2K和1.2K。單純地從運算能力上看,單片’C542可以壓縮近8路語音。因此可以預(yù)測,在多路語音記錄系統(tǒng)設(shè)計中,隨著DSP性價比的不斷提高,一些碼率低、語音質(zhì)量好的壓縮算法將逐漸取代ADPCM算法。
RPE-LTP算法的流程如圖3。
3 軟件設(shè)計
軟件部分包括DSP編程和PC編程。DSP編程的主要任務(wù)是初始化、管理板上的資源和完成語音編解碼算法。PC編程則重點在管理DSP操作和應(yīng)用層軟件編寫。DSP與PC之間的軟件接口則是一套自定義的“通信協(xié)議”。
DSP程序首先初始化’C542和模擬接口,使四個’AC01按照時分復(fù)用的方式傳輸四路語音的樣值。在一幀語音20ms之后的中斷中,服務(wù)程序首先將4路語音數(shù)據(jù)分開,分別存入四個緩沖區(qū),然后調(diào)用編碼程序依次編碼。編碼程序為每路語音數(shù)據(jù)保留一個緩沖區(qū),用來保存其中間結(jié)果以備下一幀使用。編碼完成后程序?qū)嚎s碼流寫入HOI RAM中,同時中斷主機,主機讀出碼流后存儲。解碼過程相對簡單,主機按幀將碼流寫入HPI RAM,’C542解碼后放入輸出緩沖區(qū),同步串口依次將該幀的數(shù)據(jù)以采樣率速度傳給’AC01回放。待一幀傳完后,’C542的中斷服務(wù)程序通知主機傳輸下一幀碼流。
系統(tǒng)中多路語音的有無是隨機的,因此在壓縮算法之前加入了話音的存在性檢測單元??捎袃煞N選擇,一種是手工方式,即程序檢查一個硬件狀態(tài)位,它是在人工干預(yù)下觸發(fā)(如摘機);另一種方式是利用程序進行話音的活性檢測,它利用語音區(qū)別于噪聲的性質(zhì)檢測語音的存在性。具體算法在ETSI-G.06.32中規(guī)定。在每幀的樣值和碼流的頭部標識出該幀是否存在。
PC方的編程則包括DSP接口部分和應(yīng)用層編程部分。在PC程序的開始,與DSP接口部分的程序先調(diào)用初始化函數(shù)將DSP程序下載到DSP中。由于HPI RAM只有2k字而DSP程序大于2k字。所以初始化程序須首先在DSP中載入一個很小的自舉程序,然后通過自舉程序一段一段地把全部程序載入DSP。初始化完成后,與DSP接口部分程序再按自定義的“通信協(xié)議”在指定位置讀出DSP處理結(jié)果幀或DSP的請求幀,并將它交給上一層(應(yīng)用程序)處理。應(yīng)用程序亦通過與DSP接口部分程序向DSP發(fā)出各種命令。
上層應(yīng)用程序是用戶使用系統(tǒng)的界面,它提供語音數(shù)據(jù)庫管理和系統(tǒng)管理兩項功能。語音數(shù)據(jù)庫管理包括語音的錄入、分類、監(jiān)聽、回放等。由于硬盤空間有限,語音數(shù)據(jù)庫還要定期備份、清理。這部分功能是系統(tǒng)的重點,它應(yīng)能使用戶以最便捷的方式管理信息。系統(tǒng)管理則包括設(shè)置、讀取系統(tǒng)狀態(tài)。它的目標是讓用戶能有效地控制系統(tǒng)的操作,及時獲得系統(tǒng)的運行狀態(tài)。
4 基于本處理卡的話音記錄系統(tǒng)
在某些關(guān)鍵崗位,如廠礦的指揮室、遠洋輪船的指揮室、音訊服務(wù)臺,為了跟蹤事故和提高工作人員的責(zé)任感,利用本卡可以對其話音進行記錄。利用卡中’C542的剩余處理能力可以提供諸如說話人識別、數(shù)據(jù)分析等功能。另外,利用該卡的擴展接口還可以完成數(shù)據(jù)搬移的功能,如將遠洋輪船或戰(zhàn)地指揮部的全球定位數(shù)據(jù)(GPS)存入微機,以供處理。
圖4是一個實用的處理卡。該卡可以同時記錄四路電話信息和撥入、撥出的電話號碼。FIFO是回放話音時的緩沖區(qū)。同時利用RS232電路把本機信息傳出或接受串行信號。
綜上所述,本處理卡是建立在PC機上的一個語音記錄、管理系統(tǒng)。系統(tǒng)設(shè)計中采用了模塊化的方式,用戶可根據(jù)需要制定系統(tǒng)。由于DSP程序由主機下載,系統(tǒng)容易升級和增加功能。因次,它具有廣泛的應(yīng)用前景。
評論