摘 要: 將具有語音" title="語音">語音處理功能的低成本的SPCE061A單片機" title="單片機">單片機作為無線語音播放器的核心器件,通過對語音資料的壓縮和解壓縮,采用信息容量較少的低頻段數據傳輸,實現了非廣播頻段的準實時語音廣播。
關鍵詞: 單片機 無線傳輸" title="無線傳輸">無線傳輸 語音
目前,電子監控技術已經成功地應用于很多方面,取得了良好的效果,其推廣普及的規模也在進一步擴大。但是,由于被監控點的環境及監控的目的、要求各不相同,所需要的監控技術也會有很大的差異。如一些要求保密性高、被監控范圍大的場合,除了需要用視頻對現場進行實時監視外,還需要能夠對值班人員進行現場語音指示。為了保密和防止非工作信息的干擾,此類應用場合通常不允許如手機、收音機等常用的通訊設施介入。因此,系統除了采用成熟的視頻監控技術外,還要加入具有保密功能的單向語音通話系統。本系統采用了具有語音處理功能的低成本的SPCE061A單片機芯片作為無線語音播放器的核心器件,選用信息容量較少的低頻段進行無線數據傳輸,實現了非廣播頻段的準實時、一對一或一對多的語音廣播。并且通過語音信息的編碼、解碼和加密、解密技術,消除了系統以外語音信號的干擾。它非常適合一些對音色要求不是很高(僅作為通話用),又要求低成本的場合應用。這項技術和視頻監控結合使用,能夠實現通過總監控室進行全局指揮的功能。
1 無線語音單向通話系統結構原理
無線語音單向通話系統結構如圖1所示。在微型計算機上通過高級語言可視化編程,可以方便地實現對語音指令的采集、壓縮、編碼、指定位置傳輸等操作;通過連接在計算機串口上的無線發送模塊,將壓縮、加密后帶有地址碼的語音信息發送出去;無線接收模塊將接收到的射頻信號轉換成數字信號發送給語音播放器,語音播放器根據接收到的屬于自己的地址碼進行數據解碼及播放。
2 語音壓縮編碼和播放方式[1]
實時語音系統要在保證所需要語音質量的前提下,盡可能地降低信息壓縮、傳輸、解碼難度。因此選擇一種合適的壓縮編碼方式非常重要。
2.1 凌陽語音壓縮編碼方式
按照一定的頻率和量化位數對語音信息進行采集即可得到數字音頻資料,但是這樣的音頻資料數據量非常大,直接對其進行存儲和傳輸在實際應用中不容易實現。所以要在滿足一定音質要求的條件下對其進行壓縮,實現以較少的數據量來表達實際的聲音信息。SPCE061A單片機支持以下三種語音壓縮編碼方式:
(1)SACM-A2000屬于波形編碼方式,這種編碼方式是將時間域信號直接變換為數字信號,解碼后的語音波形和原語音信號的波形基本相同。這種方式的優點是能保持好的語音音質;缺點是只能達到8:1的壓縮比,壓縮后仍需要較大的數據存儲空間和較高的傳輸速率。
(2)SACM-S240屬于參數編碼方式,這種編碼方式是將信源信號在頻率域或其他正交變換域提取特征參數,并將其變化成數字信號,主要目的是降低編碼比特率。這種方式的優點是可達到80:1的壓縮比,缺點是解碼后的音頻信號和原信號的波形會有較大差別,導致音質不高。
(3)SACM-S480屬于參數編碼和波形編碼的混合編碼,這種編碼方式結合了以上兩種編碼方式的優點,壓縮比約為80:3,保持了波形編碼的高質量和參數編碼的低速率。
三種編碼方式中,S240的壓縮比高,語音音質較差;A2000方式音質最好,但壓縮比過低,壓縮后數據量大;S480既能滿足語音播放中的音質要求,壓縮后的數據量也不太大,所以在無線語音單向通話系統中選擇這種壓縮編碼方式。
2.2 SACM-S480方式下的語音播放步驟
SPCE061A單片機在SACM-S480方式下的語音解碼、播放的步驟是:在計算機上將語音錄制成wav文件,用專用壓縮工具將其壓縮成.48k文件;使用時,將.48k文件作為語音資源和程序一起下載到SPCE061A內置Flash存儲器中進行讀取和解碼播放。播放流程如圖2所示。
2.3 SACM-S480方式下進行語音播放需注意的問題
(1)計算機壓縮生成的.48k文件與下載到SPCE061A的Flash存儲器中的數據對比發現,.48k文件的前48個字節數據未被下載到Flash存儲器中,說明這些字節是壓縮文件的描述性字節而不是語音資源;在.48k文件的末尾是三個連續的0xFF字節,為規定的語音播放結束標志。
(2)SPCE061A是一款16位單片機,數據按字存儲。兩字節數據下載后拼接成一個字存儲,相鄰數據的順序發生了顛倒。例如,二個字節數據00010010、00110010下載到Flash存儲器中變成0011001000010010的格式。
(3)S480方式是30毫秒采樣一次,采樣480字節語音資料,壓縮后變成18字節,形成一個語音數據包。在傳輸、解壓和播放中,要保證一次采樣、壓縮形成的18字節數據包完整,否則會發生放音聲音不正常等現象。
3 無線接收播放器設計
無線語音單向通話系統采用無線的數據傳輸方式和語音通話的實時性特點,對SPCE061A中使用SACM-S480方式播放語音的方式進行修改。
3.1 語音數據存儲區域選擇
語音資源通常存儲在SPCE061A的片內Flash存儲器中。本系統的語音資源是實時接收的,需要反復將數據寫入存儲器,但Flash存儲器再編程次數有限[2],多次寫入會影響系統使用壽命;另一方面,Flash存儲器寫入速度較慢,對系統實時性造成影響。針對以上問題,將接收的語音數據存儲在單片機片內RAM中。因為RAM基本不受寫入次數的限制,且讀寫速度高于Flash,其掉電易失性的缺點不會對系統造成影響。
3.2 數據緩沖區設置
單片機內的RAM空間較Flash更加緊缺,需要對空間進行循環利用,且實時語音播放的同時需要完成數據接收及校驗。因此要將數據在每一步處理之后先放置在一個緩沖區內,各項工作不需要相互等待。因此,在RAM中實現兩個環形數據緩沖區[3],即數據接收緩沖區和語音播放緩沖區。將通過無線接收到的數據放置在數據接收緩沖區中,當緩沖區內的數據量達到一個數據包后,將其取出進行校驗。校驗正確的數據放入語音播放緩沖區,在語音播放隊列不滿的情況下,從語音播放緩沖區中取出語音資源放入放音隊列。
3.3 軟件設計
無線接收播放器軟件流程如圖3所示,其中最為重要的工作是數據的校驗。數據檢測模塊從數據接收緩沖區讀取數據進行檢查,當收到本機地址碼后,將狀態轉為播放狀態,將一個數據包的數據按照對接規則組成以字為單位的語音資源放入語音播放緩沖區。若在一個數據包的內部發現下一個數據包的包頭信息,則說明發生了數據丟失,將此包數據丟棄,直到收到本機停止工作指令后,停止語音播放。
以SPCE061A單片機為核心器件設計的無線語音接收播放器與計算機、無線發送模塊共同組成了無線語音單向通話系統。在不允許使用手機、無線電廣播等通訊設施的保密性應用場合,有效地實現了實時語音指揮功能。無線語音接收播放器在整個系統中使用量大,它的低成本優勢有利于無線語音單向通話系統的推廣使用。
參考文獻
[1] SPCE061A單片機教程.凌陽大學計劃技術資料,2002.
[2] 吳東坡.Flash存儲器技術與應用.微電子學與計算機, 1998,(6):55-56.
[3] 孫衛防,張華忠.實時語音傳輸中的語音緩沖區設計.計算機工程與應用,2004(6):99-100.