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