国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Speex的電梯環(huán)境下多方通話系統(tǒng)設(shè)計

2017-03-31 01:23單雷陳小平王凱華
關(guān)鍵詞:輪詢狀態(tài)機轎廂

單雷,陳小平,王凱華

(蘇州大學 電子信息學院,蘇州 215006)

基于Speex的電梯環(huán)境下多方通話系統(tǒng)設(shè)計

單雷,陳小平,王凱華

(蘇州大學 電子信息學院,蘇州 215006)

采用STM32F429微處理器為控制核心,通過移植Speex語音庫和LwIP輕量級TCP/IP協(xié)議棧,采用回聲消除、編碼解碼等語音處理技術(shù),實現(xiàn)了電梯轎廂、機房、物業(yè)端、網(wǎng)絡(luò)遠程端的多方實時通話。對于轎廂內(nèi)的任何突發(fā)狀況與呼救請求,系統(tǒng)能作到實時響應(yīng)與監(jiān)控。以并發(fā)狀態(tài)機的思路進行了軟件設(shè)計,實時性好、功能性強、易于理解。整個系統(tǒng)結(jié)構(gòu)清晰,基本滿足應(yīng)用需求。

Speex;LwIP;回聲消除;并發(fā)狀態(tài)機;多方通話

引 言

電梯作為一種以電動機為動力的垂直升降設(shè)備,大大地方便了人們的日常生活,近年來,其安全性也漸漸被人們重視。由于電磁屏蔽現(xiàn)象,大多數(shù)通信設(shè)備在轎廂內(nèi)都會暫時失去與外界聯(lián)絡(luò)的功能,在發(fā)生意外狀況時,難免會存在受困人員無法及時聯(lián)絡(luò)外界人員的困境。傳統(tǒng)的安置于轎廂和機房之間的有線通信設(shè)備需要有人長期值守,且多為雙方對講形式,既不能滿足緊急狀況下多方通話的需求,又大大增加了人力成本。VOIP是近年來快速發(fā)展起來的一項新的網(wǎng)絡(luò)通信技術(shù),但對于電梯環(huán)境來說成本較高[1]。本文針對這一現(xiàn)狀,設(shè)計了一種以32位高性能處理器STM32F429為主控制器,移植Speex語音處理庫[2]與LwIP協(xié)議棧,結(jié)合狀態(tài)機編程思想,實現(xiàn)轎廂、機房、物業(yè)人員、網(wǎng)絡(luò)遠程端的多方通話,達到無間斷實時實現(xiàn)轎廂內(nèi)與外界的通信與低成本的VOIP,不受環(huán)境因素干擾。

1 多方通話系統(tǒng)整體設(shè)計

電梯多方通話系統(tǒng)主要由GSM通信模塊、以太網(wǎng)通信模塊、語音處理模塊、主控模塊、供電模塊等部分構(gòu)成,系統(tǒng)構(gòu)成如圖1所示。轎廂內(nèi)的語音信號通過語音采集傳送到機房的主控模塊,一方面,主控模塊控制GSM通信模塊進行相關(guān)操作,實現(xiàn)物業(yè)端與機房、轎廂的語音交流;另一方面,主控模塊將采集到的語音信號進行編碼、回聲消除等處理,使用以太網(wǎng)通信模塊進行遠程傳輸,實現(xiàn)與遠程端的實時通信。

圖1 電梯多方通話系統(tǒng)框圖

可以在轎廂內(nèi)安裝視頻采集設(shè)備,遠程端上位機軟件依托主控模塊強大的處理能力,實現(xiàn)視頻與語音數(shù)據(jù)的實時傳輸;也可以加裝存儲模塊,通過主控模塊的USB外設(shè),實現(xiàn)低成本的閉路監(jiān)控系統(tǒng)。

2 硬件電路設(shè)計

2.1 主控模塊

主控模塊采用STM32F429為控制核心,總體組成如圖2所示。此芯片為意法半導(dǎo)體推出的32位Cortex-M4內(nèi)核處理器,其最高工作頻率可達180 MHz,完全滿足系統(tǒng)所需的語音數(shù)據(jù)處理和傳輸需求,也能應(yīng)對后續(xù)視頻處理傳輸?shù)男枰?。相對于傳統(tǒng)的針對工業(yè)控制的處理器而言,這款芯片用來取代當前的結(jié)合微處理器和獨立數(shù)字信號處理器兩種處理設(shè)備的雙片解決方案。內(nèi)置自適應(yīng)實時加速技術(shù),在工業(yè)標準測試上取得225 DIPS和606 Coremark的成績,具有低功耗、豐富片上外設(shè)(包括各類接口、高分辨A/D、D/A、以太網(wǎng)控制器、LCD控制器、浮點運算模塊等)、超強性能等特征。

圖2 主控模塊框圖

圖4 語音功放電路圖

主控模塊是整個系統(tǒng)的核心,通過移植Speex語音處理庫和LwIP實現(xiàn)語音數(shù)據(jù)的處理和傳輸。同時,通過串口以AT指令的方式控制GSM模塊完成與移動設(shè)備的連接和通信。片上的ROM還存儲了包括系統(tǒng)的版本號在內(nèi)的各種信息,方便調(diào)試查看。板載的A/D和D/A端口用于語音數(shù)據(jù)的采集和輸出,SPI端口則用于控制ENC28J60以太網(wǎng)模塊。調(diào)試端口則可以查看設(shè)備在初始化階段的運行狀況,以及日常的運行日志和運行時間等重要信息。

2.2 語音處理模塊

本模塊用于語音模擬信號的采集與播放。語音通過駐極體麥克風拾入,配合MAX9812作為語音采集電路,如圖3所示。由于人耳能識別、辯聽的聲音頻率范圍為30~3 400 Hz,故而設(shè)計了通帶在300~3 000 Hz之間的二階有源濾波器,實現(xiàn)對帶外噪音的消除,提供給GSM模塊和主控模塊作為語音輸入。

由主控模塊和GSM通信模塊返回的語音信號經(jīng)過一個功率放大模塊來推動揚聲器,功放模塊以LM386為核心,輸出信號驅(qū)動喇叭發(fā)聲,如圖4所示。

2.3 GSM通信模塊

GSM通信模塊采用普眾通信SIM900A無線通信模塊,該模塊以極低的尺寸和功耗實現(xiàn)語音、SMS、數(shù)據(jù)和傳真信息的高速傳輸,其支持的電壓范圍為3.4~4.5 V,休眠狀態(tài)功耗1.5 mA,物理尺寸為24 mm×24 mm×3 mm。

圖3 語音采集電路圖

通過其提供的硬件設(shè)計手冊完成硬件電路的設(shè)計,模塊提供了兩組音頻輸入與輸出接口,為了減少噪聲對通話的干擾,都為其配備了濾波電容。

2.4 以太網(wǎng)通信模塊

以太網(wǎng)通信模塊采用Microchip的ENC28J60以太網(wǎng)控制器,通過SPI總線完成與主控模塊數(shù)據(jù)的傳輸與控制,速度可達10 Mb/s。移植瑞典計算機科學院開發(fā)的輕量級嵌入式TCP/IP協(xié)議棧LwIP協(xié)議棧,通過UDP協(xié)議實現(xiàn)話音數(shù)據(jù)的網(wǎng)絡(luò)傳輸。

3 CELP編碼與Speex庫語音處理

Speex是一套免費、開源的語音處理庫,對于其他編解碼器,Speex很適合網(wǎng)絡(luò)應(yīng)用,在網(wǎng)絡(luò)應(yīng)用上有著自己獨特的優(yōu)勢[2]。由于其采用的是CELP編碼技術(shù),下面就其原理作簡單分析。

3.1 CELP編碼技術(shù)

CELP的中文含義是碼激勵線性預(yù)測編碼(Code Excited Linear Prediction), CELP技術(shù)主要包含以下三個部分:

① 建立一個線性預(yù)測模型(Linear Prediction Model,LPM)來模擬人的發(fā)聲器官——聲道。

② 通過使用(自適應(yīng)和固定的)碼本作為LP模型的輸入(激勵)。

③ 在“感知加權(quán)領(lǐng)域”中進行閉環(huán)搜索。

3.1.1 聲源濾波器模型的建立

聲源濾波器模型用來模擬聲帶和聲道,它以聲帶作為音源(激勵信號),以聲道作為形成最終不同語音的濾波器。聲源濾波器模型通常與線性預(yù)測技術(shù)一起使用,CELP模型就是基于聲源濾波器模型的。不同的音素可以由其激勵(音源)和頻譜(濾波器)來區(qū)別:濁音(如元音)是一種類似于周期性信號的激勵信號,可以用時域上一段的脈沖周期序列或者頻域上一段固定間隔的諧波來表示;類似地,摩擦音(如“s”、“sh”、“f”音)是一種類似于高斯白噪聲的激勵信號。這兩類音素(如“z”、“v”)可以結(jié)合成帶有濁音性質(zhì)的摩擦音。

3.1.2 線性預(yù)測的原理

線性預(yù)測是很多語音編碼技術(shù)的基礎(chǔ),包括CELP。線性預(yù)測的本質(zhì)是使用信號序列x(n)的過去樣本的組合來預(yù)測其以后的序列值[3],見式(1)。

這里y(n)預(yù)測值就是x(n)的過去的n個樣本值的加權(quán)求和,預(yù)測誤差以下式給出:

對LPC分析的目的是尋找最佳系數(shù)ai,以此來使得均方誤差最小,即尋找滿足使得下式最小的ai,見式(3):

通過E對ai求導(dǎo)求最小值,即可解出滿足條件的ai。

3.1.3 基音預(yù)測

在濁音段,語音信號都是周期性的,因此,在這里通過使用激勵和過去的激勵的乘積來近似激勵信號e(n)的值[3],見式(4):

e(n)?

式中,T代表基音周期,β代表基音增益。因為激勵是在T?n的情況下由e(n-T)預(yù)測得到的,因此稱為長時預(yù)測。

3.1.4 自適應(yīng)碼本

最終的激勵e(n)是由基音預(yù)測信號和混合碼本中的創(chuàng)新信號疊加而成,因此,將之命名為碼激勵線性預(yù)測(CELP),這里e(n)如下式(5):

在CELP編碼中,c(n)是大多數(shù)量化值被分配到的地方,它代表了不能從線性預(yù)測或者基音預(yù)測獲得的信息。在z域,將最終信號X(z)表示為式(6):

3.1.5 噪聲加權(quán)與合成分析

為了最大限度地調(diào)節(jié)語音質(zhì)量,CELP編解碼器在感知加權(quán)域調(diào)整以使得噪音誤差的均方差最小化,即通過在編碼中使用感應(yīng)噪聲的加權(quán)濾波器W(z)來對編碼器中的誤差信號進行處理。

W(z)是一個使用帶寬擴展的衍生于線性預(yù)測系數(shù)(LPC)的零極點加權(quán)濾波器,這里可以用合成濾波器1/A(z)來表示頻譜的包絡(luò)線,那么CELP編解碼導(dǎo)出的噪音加權(quán)濾波器的一般形式表現(xiàn)為式(7)[2]:

在CELP中,合成分析是非常主要的一個原則,即編碼(分析)是由在閉環(huán)中通過對解碼(合成)進行感知分析來完成的。為了使用有限的計算資源來實現(xiàn)實時的編解碼,CELP算法被分解成許多小的、更易于管理的模塊,并且使用感知加權(quán)功能來實現(xiàn)序列搜索。

3.2 Speex庫處理過程

3.2.1 預(yù)處理

Speex庫的預(yù)處理被設(shè)計在音頻編碼之前運行,預(yù)處理提供了以下三個主要功能[2]:噪聲抑制、自動增益控制(AGC)、語音活動檢測(VAD)。

降噪指的是用來降低輸入信號中的背景噪音量,可以提供更高的語音質(zhì)量。

自動增益控制(AGC)是一種功能,用來應(yīng)對在不同階段輸入信號音量差別很大的情況,消除了人工調(diào)節(jié)麥克風增益的需求,對于VoIP非常有益。

預(yù)處理中的語音活動檢測(VAD)提供比編解碼器中進行的相應(yīng)步驟要起到更好的效果。

3.2.2 自適應(yīng)抖動緩沖器

當通過UDP或者RTP協(xié)議傳輸語音(或者其他信息)的時候,可能會丟失包,到達信宿的時候也可能有延遲甚至亂碼。抖動緩沖器的目的是對包重新排序,并提供足夠長的緩沖(但絕不會有冗余),再將包送去解碼。

3.2.3 聲學回聲消除器

在免提通信系統(tǒng)中,語音從遠端傳輸?shù)奖镜負P聲器播放,這一聲音可以被相同空間內(nèi)的麥克風捕獲。如果麥克風捕獲的音頻被直接傳送到遠端,那么用戶就可以聽到自己聲音的回聲。聲學回聲消除器被用來在麥克風的聲音發(fā)回遠端之前來消除回聲[2]。

4 軟件設(shè)計

4.1 GSM模塊輪詢流程設(shè)計

GSM模塊的輪詢程序是本文的要點,在系統(tǒng)完成MCU外設(shè)、Speex庫、內(nèi)存管理、LwIP等部分初始化后,需要完成對GSM模塊的配置,然后按照程序設(shè)計思路進行長時間工作。

程序思路如下:系統(tǒng)工作時,先完成GSM模塊的配置,包括聯(lián)系人讀取、Echo消除的配置等,同時串口打印一系列消息(包括信號強度、各功能配置狀況等)。在聯(lián)系人讀取部分,系統(tǒng)按照指定格式讀取SIM卡內(nèi)存儲的聯(lián)系人作為系統(tǒng)默認遠程聯(lián)系人,如果讀取失敗達到一定次數(shù),則會打印錯誤與LED提示。配置完成后,進入工作輪詢流程,同時,每隔10分鐘會檢測模塊是否死機,如果發(fā)生死機,會軟件重啟模塊,如果重啟失敗達到一定次數(shù),會硬件重啟模塊。在工作輪詢流程中,系統(tǒng)會輪詢是否有呼出請求或者接入請求,如果有,會進行相應(yīng)操作,并根據(jù)相應(yīng)結(jié)果進行相應(yīng)的處理。

程序設(shè)計時,采用并發(fā)狀態(tài)機的思路[4],分別設(shè)置了4個狀態(tài)機,分別是:AT指令處理狀態(tài)28個、模塊上電狀態(tài)4個、模塊初始化狀態(tài)14個、工作輪詢狀態(tài)9個,充分保證了系統(tǒng)的實時性與應(yīng)用性。這其中,AT指令處理狀態(tài)和工作輪詢狀態(tài)必被主循環(huán)調(diào)用。工作輪詢指引了系統(tǒng)在工作輪詢階段所可能達到的各類不同的階段,比如空白狀態(tài)、等待請求狀態(tài)、呼出狀態(tài)、呼入接通判斷狀態(tài)、呼出接通判斷狀態(tài)、等待掛斷狀態(tài)、主動掛斷狀態(tài)等;而AT指令處理狀態(tài)的設(shè)置則是為了判斷處于模塊上電、模塊初始化、工作輪詢這三個層次中不同狀態(tài)下AT指令發(fā)送成功與否,與GSM模塊相應(yīng)的響應(yīng)內(nèi)容是什么,從而指引其余三個層次狀態(tài)機的走向。

這里給出工作輪詢的流程圖,如圖5所示。

圖5 工作輪詢流程圖

4.2 雙緩沖區(qū)數(shù)據(jù)交替編解碼設(shè)計

為了滿足采樣定理,將語言信號的采樣率定為8 kHz,通過配置相應(yīng)的ADC、DAC以及定時器完成此工作。

為了實現(xiàn)在Speex編解碼的同時使得CPU能實時地通過以太網(wǎng)模塊發(fā)送和接收語音數(shù)據(jù),在Speex庫和語音數(shù)據(jù)的交互之間設(shè)立了兩個緩沖區(qū)[5]。當編解碼器在第一個緩沖區(qū)工作時,語音I/O級則使用第二個緩沖區(qū)。當I/O達到緩沖區(qū)的末端,編解碼器和I/O級交換緩沖區(qū),編解碼器利用第二個緩沖區(qū)而I/O級使用第一個緩沖區(qū),反之亦然。

4.3 其他部分

在本文中,ENC28J60是通過單片機的SPI總線來控制的,模塊自帶外部中斷,在中斷中可以調(diào)用數(shù)據(jù)讀取的相關(guān)函數(shù)。

在程序中,完成了單片機SPI的初始化,以及對于模塊寄存器的讀寫操作,這一部分,如果想作進一步了解的話,可以閱讀ENC28J60的芯片手冊。

除此之外,還完成了Systick定時器、串口和DMA、ADC和DMA、DAC、中斷分組和各自優(yōu)先級、Debug窗口等部分的配置。

本文的軟件部分完全由自己設(shè)計并編寫的部分總計有接近三千余行,配合LwIP、Speex庫、F4系列標準外設(shè)庫,基本能夠滿足本文的要求。

結(jié) 語

[1] 楊召青,黃冰,宋欽梅.用于VOIP的G.729A算法的優(yōu)化改進[J].電子技術(shù)應(yīng)用,2007,33(7):104-106.

[2] Jean-Marc Valin.The Speex Codec Manual Version 1.2 Beta 3,2007.

[3] Vaillancourt T,Salami R,Jelinek M. New post-processing techniques for low bit rate celp codecs[C]//International Conference on Acoustic,Speech and Signal Processing,2015.

[4] 楊剛.基于狀態(tài)機的嵌入式系統(tǒng)開發(fā)[M].北京:清華大學出版社,2010.

[5] ST.AN2812:Vocoder demonstration using a Speex audio codec on STM32F101xx and STM32F103xx microcontrollers,2008.

[6] 張立文,吳迪,宋占偉.基于Speex的嵌入式無線數(shù)字音頻交互系統(tǒng)[J].吉林大學學報:信息科學版,2013,31(4):353-358.

單雷,主要研究方向為嵌入式開發(fā)、數(shù)字信號處理;陳小平(教授),主要研究方向為嵌入式系統(tǒng)應(yīng)用、智能信息處理、虛擬儀器技術(shù);王凱華(工程師),主要研究方向為網(wǎng)絡(luò)通信。

Multiparty Call System in Elevator Environment Based on Speex

Shan Lei,Chen Xiaoping,Wang Kaihua

(School of Electronic Information,Soochow University,Suzhou 215006,China)

The system transplants Speex speech library and LwIP light-weight TCP/IP protocol stack,and takes the STM32F429 as the control core.Some technologies are applied such as the echo cancellation,coding and decoding of speech processing.The goal of the car,engine room,the property side,network remote terminal of multiparty real-time communication is reached.The system can respond and monitor in real-time for any unexpected situation and request for help in the car.The system software part is designed with the idea of hierarchical state machine.It has good real-time performance,strong function and easy to understand.The whole system has a clear structure and completely meets the design requirements.

Speex;LwIP;echo cancellation;hierarchical state machine;multiparty calls

TN916.34

A

?士然

2016-09-22)

猜你喜歡
輪詢狀態(tài)機轎廂
基于有限狀態(tài)機的交會對接飛行任務(wù)規(guī)劃方法
轎廂式垂直升降立體車庫的研制及應(yīng)用
安全檢查表法在轎廂意外移動風險控制中的應(yīng)用
基于等概率的ASON業(yè)務(wù)授權(quán)設(shè)計?
電梯轎廂報警裝置失效如何處理
一種轎廂在門區(qū)意外移動的有效制停原理
依托站點狀態(tài)的兩級輪詢控制系統(tǒng)時延特性分析
利用時間輪詢方式操作DDR3實現(xiàn)多模式下數(shù)據(jù)重排
FPGA設(shè)計中狀態(tài)機安全性研究
基于反熔絲FPGA的有限狀態(tài)機加固設(shè)計