首頁(yè)>>>技術(shù)>>>cti平臺

嵌入式網(wǎng)絡(luò )終端的語(yǔ)音傳輸系統設計分析

2011/02/22

  摘要:根據嵌入式網(wǎng)絡(luò )終端的特點(diǎn)及VOIP技術(shù)原理,設計了一款基于WinCE的嵌入式語(yǔ)音傳輸系統。此系統實(shí)現了嵌入式網(wǎng)絡(luò )終端之間的語(yǔ)音通信,以及網(wǎng)絡(luò )終端和PC機之間的語(yǔ)音通信功能,具有較強的可擴展性。

  關(guān)鍵詞:嵌入式網(wǎng)絡(luò )終端;語(yǔ)音;VOIP;WinCE

引言

  嵌入式系統因其滿(mǎn)足系統對功能、可靠性、成本、體積、功耗的要求,已經(jīng)被廣泛地應用在交通、商業(yè)/金融、工業(yè)控制、醫療等各個(gè)領(lǐng)域。目前,嵌入式網(wǎng)絡(luò )應用技術(shù)已經(jīng)成為了國際研究的熱點(diǎn)技術(shù),許多IT行業(yè)的公司也都在研發(fā)相應的嵌入式網(wǎng)絡(luò )終端。

  電話(huà)是人們最常使用的交流工具,隨著(zhù)互聯(lián)網(wǎng)的迅速發(fā)展,基于IP網(wǎng)絡(luò )的語(yǔ)音通信成為了人們研究的熱點(diǎn)。傳統電話(huà)的語(yǔ)音傳輸質(zhì)量和可靠性都很好,但資費較高,特別是打國際長(cháng)途時(shí);而基于IP網(wǎng)絡(luò )的語(yǔ)音通信由于是在Internet上傳輸信號,大大節省了通信線(xiàn)路的成本,從而降低了VOIP資費,使其擁有了巨大的市場(chǎng)潛力。

  目前,VOIP系統現有的終端軟件,如Skype網(wǎng)絡(luò )電話(huà)、UUCall網(wǎng)絡(luò )電話(huà)、KC網(wǎng)絡(luò )電話(huà)、Mierosoft公司的Netmeeting等,都是基于PC機的,難以運行在嵌入式網(wǎng)絡(luò )終端這種資源有限的設備上。同時(shí),許多類(lèi)庫中的函數在PC機上可以正常運行,而WinCE嵌入式操作系統卻不支持,因此不能直接對VOIP系統現有的終端軟件進(jìn)行簡(jiǎn)單的裁剪。

1.嵌入式網(wǎng)絡(luò )終端的硬件設計

  1.1 系統硬件結構

  如圖1所示,系統由嵌入式網(wǎng)絡(luò )終端、電源模塊、以太網(wǎng)口模塊、串口和USB接口模塊、顯示模塊(觸摸屏)、語(yǔ)音采集和播放模塊、外部數據存儲模塊以及系統工作狀態(tài)指示和接口模塊構成。其中,嵌入式網(wǎng)絡(luò )終端采用三星公司專(zhuān)門(mén)針對手持設備而設計的S3C2440A-40微處理器。


  1.2 語(yǔ)音采集和播放模塊

  語(yǔ)音采集和播放模塊的作用是將音頻模擬信號轉換為數字信號,并對信號進(jìn)行PCM編碼。其電路如圖2所示。采用Philips公司的UDA1341 TS型立體聲音頻CODEC進(jìn)行音頻編解碼。該芯片提供2個(gè)麥克風(fēng)輸入,可實(shí)現單端輸入、差分輸入等靈活配置,并設置了可編程增益放大器和自動(dòng)增益控制器,可保證高質(zhì)量的音頻獲取;同時(shí),還集成了聽(tīng)筒和喇叭輸出的驅動(dòng)器,喇叭音量可以通過(guò)編程調整。S3C2440A-40微處理器與UDA1341TS編解碼器通過(guò)I2S總線(xiàn)直接相連,并采用DMA發(fā)送/接收方式,完成系統的錄音和放音。


  1.3 嵌入式操作系統

  嵌入式操作系統采用了微軟公司研發(fā)的WinCE。它是一款功能強大的32位嵌入式實(shí)時(shí)操作系統,具有多線(xiàn)程、多任務(wù)、完全搶占式的特點(diǎn),是專(zhuān)為各種受到嚴格資源限制的硬件系統所設計的。WinCE支持多種硬件外圍設備,同時(shí)內置的標準通信能力使WinCE能夠訪(fǎng)問(wèn)Internet并收發(fā)E-mail或瀏覽Web。除此之外,WinCE特有的與Windows類(lèi)似的用戶(hù)界面使最終用戶(hù)易于使用。

2.VOIP技術(shù)

  2.1 VOIP的基本原理

  VOIP(Voice Over Internet Protocol)是以IP分組交換網(wǎng)絡(luò )為傳輸平臺,通過(guò)語(yǔ)音壓縮算法對語(yǔ)音數據進(jìn)行壓縮編碼處理,然后把這些語(yǔ)音數據按IP等相關(guān)協(xié)議進(jìn)行打包,經(jīng)過(guò)IP網(wǎng)絡(luò )把數據包傳輸到接收地,再把這些語(yǔ)音數據包串起來(lái),經(jīng)過(guò)解碼解壓處理后恢復成原來(lái)的語(yǔ)音信號,從而達到由IP網(wǎng)絡(luò )傳送語(yǔ)音的目的。其特點(diǎn)是可以將一路語(yǔ)音數據壓縮為8 kb/s甚至更低,同時(shí)可使用戶(hù)不需要獨占醫療線(xiàn)路資源,從而提高了線(xiàn)路利用率,并大大降低了資費成本。

  2.2 VOIP協(xié)議

  VOIP技術(shù)中最主要的兩種呼叫控制協(xié)議為H.323協(xié)議和SIP協(xié)議。H.323是ITU的一個(gè)標準協(xié)議簇,制定了無(wú)服務(wù)質(zhì)量保證的分組網(wǎng)絡(luò )(PBN)上的多媒體通信系統標準,已在VOIP領(lǐng)域的到了廣泛的應用,呼叫建立比較復雜。SIP協(xié)議是由IETF(國際互聯(lián)網(wǎng)標準制定組織)制定的面向Internet會(huì )議和電話(huà)的信令協(xié)議,參照了HTTP和SMTP協(xié)議,呼叫控制在終端完成,呼叫建立相對簡(jiǎn)單。

  2.3 語(yǔ)音壓縮編碼技術(shù)

  語(yǔ)音壓縮編碼技術(shù)是VOIP技術(shù)的核心,其目的就是在保證語(yǔ)音音質(zhì)和可懂的條件下,采用盡可能少的比特數來(lái)表示語(yǔ)音。常用的語(yǔ)音編碼方式有G.723.1、G.729、G.729A等,其中G.729可將采樣為64 kb/s的話(huà)音以幾乎不失真的質(zhì)量壓縮至8kb/s。本設計采用了G.729方式的語(yǔ)音壓縮算法,結合實(shí)時(shí)傳輸協(xié)議RTP和UDP網(wǎng)絡(luò )傳輸技術(shù)來(lái)實(shí)現語(yǔ)音傳輸。

3.系統設計

  3.1 終端軟件的功能模塊

  終端軟件功能模塊如圖3所示。此終端軟件可為用戶(hù)提供良好的交互界面。


  3.2 VOIP終端軟件主流程

  用戶(hù)打開(kāi)終端軟件,可以根據自己的需要選擇語(yǔ)音聊天、文本聊天或者收發(fā)郵件。進(jìn)行語(yǔ)音聊天前,用戶(hù)可以直接在好友欄中選擇聊天對象,也可直接輸入對方的IP進(jìn)行連接。語(yǔ)音聊天的過(guò)程是:說(shuō)話(huà)方,麥克風(fēng)采集模擬語(yǔ)音信號→語(yǔ)音芯片采集量化編碼→嵌入式系統對信號進(jìn)行壓縮編碼→RTP格式打包→UDP格式打包→IP格式打包→Internet網(wǎng)絡(luò )傳輸;收聽(tīng)方,接收語(yǔ)音數據→去IP/UDP/RTP包頭→嵌入式系統對信號解碼→語(yǔ)音芯片將數字語(yǔ)音信號轉為模擬信號→揚聲器播放。

4.系統實(shí)現

  4.1 語(yǔ)音采集和播放

  語(yǔ)音信號的采集分為從網(wǎng)絡(luò )上采集數據和從音頻編解碼器中獲取數據。主要函數包括:語(yǔ)音采集函數VoiceCapture(),用線(xiàn)程控制語(yǔ)音采集函數Thread Voice Capture(),創(chuàng )建用于播放的音頻設備對象函數Play Device(),創(chuàng )建音頻捕捉設備對象函數Caputer Device(),創(chuàng )建音頻捕捉緩沖區對象函數Capture Buffer(),創(chuàng )建輔助緩沖區函數Secondary Buffer(),音頻格式設置函數Set Wave Format(),通知事件觸發(fā)函數Notification(),停止語(yǔ)音采集函數Voice Stop(),從字節數組中獲取音頻數據并進(jìn)行播放函數Get VoiceData()以及語(yǔ)音采集初始化函數Initialize Voiee()。

  4.1.1 Get Voice Data()函數

  具體流程如圖4所示。從網(wǎng)絡(luò )上獲取的數據實(shí)際是由Local Socket.Begin Receive From()函數提取網(wǎng)絡(luò )數據,再經(jīng)接收數據函數轉移給Get Voice Data()函數,Get Voice Data()函數提取后放入語(yǔ)音緩沖區供音頻編解碼器提取并播放。Get Voice Data()函數首先用支持存儲區為內存的流Memory Stream從緩沖區讀取數據byte Receive,將字節塊寫(xiě)入當前流:

  Memory Stream.Write(byte Receive,0,intReceive)


  當流中存儲的數據達到一定數據量時(shí)就播放語(yǔ)音:SecondaryBuffer.Write(0,Memory Stream,int Postion Write-in-tPostioPlay,LockFlag.From Write Cursor)Secondary Buffer.Play(0,Buffer Play Flags.Default)

  4.1.2 采集音頻編碼器語(yǔ)音數據

  從音頻編解碼器中獲取數據時(shí),首先通過(guò)UDA1341TS采集語(yǔ)音信號放入語(yǔ)音捕捉緩存區,應用程序再從語(yǔ)音捕捉緩沖獲取語(yǔ)音信號并發(fā)送。具體程序流程如圖5所示。


  4.2 語(yǔ)音傳輸

  語(yǔ)音傳輸是主要包含監聽(tīng)函數Listen(),數據發(fā)送函數SendVoice(),數據接收函數Receive Data(),綁定自己IP和端口函數BindSelf(),遠程終端IP端口設置函數SetRemoteIPEnd()、線(xiàn)程關(guān)閉函數ThreadStop()函數和初始化函數InitVoice()。

  4.2.1 監聽(tīng)函數

  監聽(tīng)函數負責監聽(tīng)遠程計算機發(fā)送到本機的信息。每隔一定時(shí)間查詢(xún)一下網(wǎng)絡(luò ),如果有可讀的數據就接收:LocalSocket.BeginRecei-veFrom(byteData,0,byteData.Length,SocketFlags.None,ref endPoint,new AsyncCallback(ReceiveData),null)并且將此線(xiàn)程設置為后臺線(xiàn)程,以便當主線(xiàn)程關(guān)閉時(shí),此線(xiàn)程能自動(dòng)結束。

  4.2.2 數據發(fā)送函數

  數據發(fā)送函數的作用是將語(yǔ)音捕捉緩沖區的數據通過(guò)Client.SendTo(CaptureData,EndPoint)函數發(fā)送到網(wǎng)絡(luò )上。當線(xiàn)程發(fā)現有數據要讀取(即線(xiàn)程被觸發(fā))時(shí),就會(huì )循環(huán)調用數據發(fā)送函數,直到?jīng)]有可讀的數據為止。CaptureBuffer為語(yǔ)音捕捉緩沖區對象。數據發(fā)送流程如圖6所示。


  4.2.3 數據接收函數

  數據接收函數的功能主要是調用GetVoiceData()函數從網(wǎng)絡(luò )中接收語(yǔ)音數據并放入緩沖區。代碼如下:

結語(yǔ)

  以Internet為標志的嵌入式系統是嵌入式系統發(fā)展的第四階段。本文在基于A(yíng)RM+網(wǎng)卡芯片+UDA1341TS音頻編解碼芯片模式的硬件平臺實(shí)現與網(wǎng)絡(luò )資源的對接及語(yǔ)音采集和播放的基礎上,開(kāi)發(fā)了基于WinCE嵌入式操作系統的VOIP系統終端軟件,實(shí)現了網(wǎng)絡(luò )終端間的語(yǔ)音通信。

共 2 頁(yè): 1  2 

電子工程世界



相關(guān)閱讀:
家庭網(wǎng)關(guān)中的TTS技術(shù)集成設計 2011-02-21
Vlingo公司:語(yǔ)音到文本的搜索應用 2011-02-14
Android特色開(kāi)發(fā)之傳感器和語(yǔ)音識別分析 2011-02-11
[英文]測試你的IVR-關(guān)鍵步驟 2011-01-26
云計算占互聯(lián)網(wǎng)“高地” 多媒體應用借機全面開(kāi)花 2011-01-24

熱點(diǎn)專(zhuān)題:  VoIP  
分類(lèi)信息:  CTI文摘_與_CTI平臺技術(shù)

亚洲精品网站在线观看不卡无广告,国产a不卡片精品免费观看,欧美亚洲一区二区三区在线,国产一区二区三区日韩 南开区| 科尔| 芒康县| 嵊州市| 札达县| 临湘市| 景宁| 修文县| 广宁县| 广河县| 沁阳市| 昭平县| 平和县| 青冈县| 桃园市| 察隅县| 柘荣县| 读书| 阿勒泰市| 礼泉县| 阜南县| 响水县| 三亚市| 新巴尔虎右旗| 独山县| 濮阳县| 阜平县| 桂阳县| 青河县| 隆昌县| 吕梁市| 泾阳县| 九台市| 延津县| 贡觉县| 汉阴县| 军事| 建昌县| 永安市| 卓资县| 陕西省| http://444 http://444 http://444 http://444 http://444 http://444