<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于A(yíng)CELP碼算法的網(wǎng)絡(luò )通信的實(shí)現及應用

基于A(yíng)CELP碼算法的網(wǎng)絡(luò )通信的實(shí)現及應用

作者: 時(shí)間:2014-04-20 來(lái)源:網(wǎng)絡(luò ) 收藏

其中bits為137比特編碼比特幀,signal為240*16bits的語(yǔ)音樣點(diǎn)數據,pCodParam和pDecParam為編、譯碼過(guò)程中的中間結構體參量。

本文引用地址:http://dyxdggzs.com/article/236792.htm

3 編譯碼算法在網(wǎng)絡(luò )通信中的應用

采用網(wǎng)絡(luò )服務(wù)器、客戶(hù)端通信模式,將編譯碼模塊應用到網(wǎng)絡(luò )語(yǔ)音通信中,最終實(shí)現了基于算法的網(wǎng)絡(luò )語(yǔ)音通信。具體通信過(guò)程為:服務(wù)器端采用聲卡以8 kHz采樣,16比特量化方式對語(yǔ)音信號進(jìn)行實(shí)時(shí)采集,對采集到的語(yǔ)音信號每240樣點(diǎn)作為一幀送入ACELP編碼模塊進(jìn)行壓縮編碼,壓縮后編碼數據幀長(cháng)為137比特,每幀數據進(jìn)一步封裝處理后通過(guò)網(wǎng)絡(luò )實(shí)時(shí)發(fā)送到客戶(hù)端??蛻?hù)端通過(guò)網(wǎng)絡(luò )實(shí)時(shí)接收服務(wù)器端編碼語(yǔ)音數據包,經(jīng)ACELP譯碼處理后實(shí)時(shí)發(fā)送到聲卡進(jìn)行播放處理,從而實(shí)現網(wǎng)絡(luò )語(yǔ)音通信。

3.1 語(yǔ)音信號實(shí)時(shí)采集與播放技術(shù)實(shí)現

在語(yǔ)音信號實(shí)時(shí)采集與播放實(shí)現過(guò)程中,如何實(shí)現聲卡采集與播放數據的實(shí)時(shí)性、連續性和可靠性是軟件設計的關(guān)鍵所在。在本文軟件系統中,通過(guò)直接凋用Windows最底層波形音頻接口函數,實(shí)現聲卡的編程控制,系統中采用了多線(xiàn)程多緩沖技術(shù),即在服務(wù)器端,聲卡采集與語(yǔ)音壓縮編碼使用不同的工作線(xiàn)程,同時(shí)給聲卡提供多個(gè)用于承載采集數據的緩沖區,在同一時(shí)刻部分緩沖區供聲卡采集線(xiàn)程裝載數據的同時(shí),另外已經(jīng)裝滿(mǎn)數據的緩沖區供語(yǔ)音壓縮數據處理線(xiàn)程處理,從而使得語(yǔ)音信號采集和壓縮編碼處理工作同時(shí)進(jìn)行,有效保證了采集數據的連續性和信號處理的實(shí)時(shí)性。服務(wù)器端聲卡實(shí)時(shí)采集原理框圖如圖3所示。

 

 

3.2 網(wǎng)絡(luò )通信技術(shù)實(shí)現

軟件系統采用客戶(hù)/服務(wù)器模式和TCP/IP協(xié)議,利用Socket套接字編程技術(shù)實(shí)現數據接收與發(fā)送。其中數據接收模塊采用VC++的CSo cket類(lèi),具體通信過(guò)程為:1)程序啟動(dòng)的時(shí)候在指定端口創(chuàng )建網(wǎng)絡(luò )監聽(tīng)套接字,用以監聽(tīng)客戶(hù)端的連接請求。2)當有客戶(hù)請求連接時(shí),創(chuàng )建接收套接字與客戶(hù)端建立連接。3)當有數據需要接收時(shí),CAcceptSocket響應OnReceive消息,調用Receive函數從緩沖里獲取客戶(hù)端傳來(lái)的數據,實(shí)時(shí)的交給ACELP譯碼線(xiàn)程進(jìn)行譯碼還原處理。4)當通信結束時(shí),關(guān)閉監聽(tīng)套接字和接收套接字并釋放資源。數據發(fā)送接口采用SOCKET通信技術(shù),為了使系統在實(shí)時(shí)編碼處理的同時(shí)及時(shí)將編碼數據發(fā)送到服務(wù)器端,軟件采用多線(xiàn)程技術(shù);同時(shí)為了避免由于待發(fā)送數據流不均勻導致的數據幀丟失等情況發(fā)生,系統采用了多緩沖機制。主程序編碼模塊將要發(fā)送的編碼數據源源不斷的向緩沖隊列中寫(xiě),同時(shí)發(fā)送線(xiàn)程不斷的檢測緩沖隊列中緩沖情況,當有緩沖滿(mǎn)時(shí)及時(shí)進(jìn)行發(fā)送。由于多線(xiàn)程與多緩沖機制的有效使用,使得網(wǎng)絡(luò )通信能夠實(shí)時(shí)高效的運行。

3.3 系統情況介紹

該系統實(shí)現了基于A(yíng)CELP算法的網(wǎng)絡(luò )語(yǔ)音通信,能夠對通信過(guò)程中的語(yǔ)音波形樣本數據、ACELP編碼數據等進(jìn)行實(shí)時(shí)存儲和網(wǎng)絡(luò )發(fā)送,對通行過(guò)程中的波形進(jìn)行實(shí)時(shí)顯示等。系統運行穩定,延遲較小,語(yǔ)音通信質(zhì)量較好。圖4所示為本文設計的軟件系統運行截圖。

 

 

4 結束語(yǔ)

文中研究了系統采用的ACELP語(yǔ)音編譯碼算法,在此基礎上基于VC++編程技術(shù)實(shí)現ACELP編、譯碼軟件模塊,并采用動(dòng)態(tài)鏈接庫對其進(jìn)行封裝處理,接口簡(jiǎn)單,使用方便。最后開(kāi)發(fā)相應系統,實(shí)現了ACELP編譯碼算法在網(wǎng)絡(luò )語(yǔ)音通信中的應用。經(jīng)實(shí)踐證明,ACELP算法編碼質(zhì)量高,性能優(yōu)異,具有較好的應用價(jià)值。

濾波器相關(guān)文章:濾波器原理


濾波器相關(guān)文章:濾波器原理


c++相關(guān)文章:c++教程


通信相關(guān)文章:通信原理


網(wǎng)線(xiàn)測試儀相關(guān)文章:網(wǎng)線(xiàn)測試儀原理

上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: TETRA ACELP

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>