基于ARM的嵌入式語音存儲系統(tǒng)設計
摘要:為了有效地節(jié)省語音數(shù)據(jù)的傳輸帶寬和存儲系統(tǒng)的磁盤空間,需要在保證語音質量的前提下盡可能降低其編碼比特率。本設計采用經(jīng)過優(yōu)化的G.729語音壓縮編譯碼算法,以ARM處理器為載體,開發(fā)的嵌入式語音存儲系統(tǒng)可實現(xiàn)語音信號的海量存儲,而且處理速度快、可靠性好、擴展方便。通過嚴格的測試和評估,該系統(tǒng)能夠實現(xiàn)對大量語音數(shù)據(jù)的壓縮和記錄,各項指標基本達到了預期的水平。
本文引用地址:http://butianyuan.cn/article/171418.htm關鍵詞:ARM;語音壓縮;G.729;語音存儲
1 系統(tǒng)控制核心
嵌入式操作系統(tǒng)軟硬件結構框圖如圖1所示,由硬件層、驅動層、系統(tǒng)層和應用層組成。硬件層包括嵌入式處理器最小系統(tǒng)、存儲器(SD RAM、Flash、ROM等)、通用設備接口和I/O接口(A/D、D/A、I/O等),其中Linux實時操作系統(tǒng)和應用程序都可以固化在ROM中。硬件層的核心是嵌入式處理器,在一片嵌入式處理器基礎上添加電源電路、時鐘電路和存儲器電路,就構成了一個嵌入式處理器最小系統(tǒng)。中間的驅動層將上層軟件和底層硬件分離開,為其連接提供接口。系統(tǒng)層主要負責軟件硬資源的分配、內(nèi)存管理、任務調度、文件處理等,是軟件層的核心。應用層為用戶提供編程接口,實現(xiàn)各種應用功能。
1.1 系統(tǒng)軟件核心
Linux操作系統(tǒng)的內(nèi)核主要由進程調度、內(nèi)存管理、虛擬文件系統(tǒng)、網(wǎng)絡接口、進程間通信五個子系統(tǒng)組成,各個子系統(tǒng)之間都存在著不可分割的依賴關系。內(nèi)核為設備驅動提供支持,實現(xiàn)設備控制與應用;設備驅動為上層提供標準接口,完成硬件細節(jié)的封裝。可以根據(jù)設計需要對內(nèi)核模塊進行適當?shù)牟脺p,制作出理想、實用的操作系統(tǒng)。
1.2 系統(tǒng)硬件核心
Samsung公司的S3C2440A處理器是一款以手持設備為主而設汁的芯片。這款處理器支持NOR Flash和NAND Flash啟動方式,內(nèi)部集成LCD、I2C總線、AC97、Camera等控制器。提供豐富的接口資源,方便與外設連接,易于擴展。
2 G.729算法概述
2.1 G.729編碼原理
G.729編碼標準采用CS-ACELP語音壓縮編碼技術,其核心原理是線性預測和二級量化。每個10 ms的語音幀包含80個采樣點,在每個這樣的語音中都要進行線性預測(LP)分析,計算出LP濾波器系數(shù),再轉換為線性譜對參數(shù)(Line Spectrum Pari,LSP),并使用有兩個階段
的預測矢量量化器(Vector Quantization,VQ)進行18比特量化。然后編碼器以原始語音和合成語音的誤差感覺加權最小為準則采用A-B-S(Analysis-By-Synthesis,分析合成)方法搜索激勵信號,激勵參數(shù)(固定碼書參數(shù)和自適應碼書參數(shù))每個子幀(5 ms幀長,40個采樣點)確定一次,感覺加權濾波器的系數(shù)由未量化的LP系數(shù)產(chǎn)生。
2.2 G.729解碼原理
解碼是編碼的逆過程,其原理為:首先從獲得的碼流中提取出參數(shù)的索引,這些參數(shù)包括LP濾波器系數(shù)、自適應碼書矢量以及固定碼書矢量和增益,它們分別解碼后,可獲得一個LSP系數(shù)、兩個音節(jié)延遲、兩組自適應碼書和固定碼書增益等對應于10 ms語音幀的編碼器參數(shù)。
然后將LSP系數(shù)進行內(nèi)插操作,轉換為每個5 ms子幀的LP濾波器系數(shù),再對每個子幀進行如下操作:
①經(jīng)各自增益縮放的自適應矢量和固定碼本矢量相加,得到重建的激勵信號;
②將激勵信號通過LPC合成濾波器,得到重建語音;
③重建的語音信號經(jīng)過各種濾波器的后續(xù)處理,實現(xiàn)信號的放大和改善。
2.3 G.729算法優(yōu)化
在G.729編碼算法中,采用量化碼本結構。其基本原則如下:首先計算出K維碼本里的各個碼字矢量的平均值并存儲起來;然后求出輸入信號矢量平均值和各個碼字矢量平均值的均方誤差值;最后用遍歷法找到這些均方誤差中的最小值Dmin,與之相對應的碼字即為最佳逼近碼字。采用這種搜索方法加快了編碼速度,減少了搜索時間,并沒有改變矢量量化的精度。
3 系統(tǒng)硬件結構
系統(tǒng)硬件結構框圖如圖2所示。S3C2440A作為整個系統(tǒng)的主控芯片,DC電源、復位電路、時鐘電路作用于系統(tǒng)的每個部分;存儲模塊包括SDRAM、Flash以及外接的CF或SD卡等;調試模塊包括JTAG接口、RS232接口以及網(wǎng)絡接口三個部分;音頻模塊的主要工作由編解碼器UDA1 341完成,擴展接口由USB接口、IDE接口構成,交互模塊由TFT LCD和觸摸屏構成。其中,音頻模塊和IDE擴展接口是研究的重點。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論