• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于局域網(wǎng)的語音通信實驗系統(tǒng)的設(shè)計與應(yīng)用

      2018-01-15 09:25:00強,明
      實驗科學與技術(shù) 2017年6期
      關(guān)鍵詞:編解碼通話局域網(wǎng)

      李 強,明 艷

      在語音信號處理、多媒體通信、通信原理和移動通信等課程中,都會涉及語音編碼相關(guān)的知識,如G.711A律64 kb/s的PCM編碼、第二代移動通信GSM系統(tǒng)中的RPE-LTP編碼和第三代移動通信系統(tǒng)中的AMR編碼等[1-3]。在這些理論課的授課過程中,老師大多只是講解語音編碼的基本原理、相關(guān)標準和應(yīng)用場景等內(nèi)容,學生不能親身體驗用這些標準實現(xiàn)的編碼器輸出語音的質(zhì)量,如語音的音質(zhì)、清晰度、自然度和辨識度等[4]。學習這些課程的學生也大多不會考慮用軟件,如用C語言去實現(xiàn)相關(guān)標準的語音編碼器。如果學生用軟件實現(xiàn)了這些語音編碼器,也沒有一個便捷的系統(tǒng)或平臺給予支撐,如對語音的質(zhì)量進行測試,采用這些實現(xiàn)的編碼器進行語音通話等。針對這些教學和學生對語音質(zhì)量測試和應(yīng)用的需求,本文采用了多線程模塊化的軟件結(jié)構(gòu),通過UDP/IP協(xié)議[5],利用校園局域網(wǎng)為傳輸通道,實現(xiàn)了一個語音通信實驗系統(tǒng)。該系統(tǒng)除了支持多種標準的語音編碼器進行雙向?qū)崟r通話外,還能測試編碼器語音的主觀質(zhì)量、編解碼時延、傳輸流量、語音壓縮比等指標。由于系統(tǒng)采用了模塊化的設(shè)計結(jié)構(gòu),學生可以把自己用軟件實現(xiàn)的語音編解碼器添加到系統(tǒng)的編解碼模塊中,即可利用該系統(tǒng)實現(xiàn)雙向語音實時通話,并進行性能指標的測試。因此,本文實現(xiàn)的系統(tǒng)具有良好的靈活性和擴展性,可用于與語音編碼相關(guān)課程的實驗和理論教學中。

      1 語音通信實驗系統(tǒng)的設(shè)計

      1.1 系統(tǒng)結(jié)構(gòu)

      基于局域網(wǎng)的語音通信實驗系統(tǒng)的架構(gòu)如圖1所示。系統(tǒng)由語音信號的采集,語音數(shù)據(jù)的存儲、統(tǒng)計和播放,語音編解碼器,傳輸控制和網(wǎng)絡(luò)傳輸5個部分組成。

      1.1.1 語音信號的采集

      系統(tǒng)通過PC機聲卡采用音頻波形API技術(shù)[6]對語音信號進行實時采集、量化和編碼。采樣率、量化方式和量化級數(shù)可根據(jù)需要通過系統(tǒng)界面進行設(shè)置。采集到的數(shù)據(jù)以語音編碼的幀長為單位填充到設(shè)置的數(shù)據(jù)緩沖區(qū)中。

      圖1 基于局域網(wǎng)的語音通信實驗系統(tǒng)架構(gòu)

      1.1.2 語音的存儲、統(tǒng)計和播放

      在進行語音通信前,需對語音數(shù)據(jù)進行連續(xù)保存。系統(tǒng)采用乒乓存儲結(jié)構(gòu)[7],設(shè)置兩個語音緩沖隊列,輪流對兩個緩沖區(qū)讀寫數(shù)據(jù)。某一緩沖區(qū)被填滿語音數(shù)據(jù)后,系統(tǒng)立刻解鎖該緩沖區(qū),并讀取數(shù)據(jù),采用語音編碼器對數(shù)據(jù)進行壓縮編碼,形成數(shù)據(jù)碼流后,通過局域網(wǎng)發(fā)送到接收端,同時把該緩沖區(qū)重新加入語音緩沖區(qū)隊列中。

      為了對發(fā)送到局域網(wǎng)的數(shù)據(jù)流量進行統(tǒng)計,在緩沖區(qū)中設(shè)定了一個事件,當壓縮后的數(shù)據(jù)碼流的數(shù)據(jù)量達到事件設(shè)定的大小,便開始發(fā)送數(shù)據(jù)。本系統(tǒng)把發(fā)送一次的數(shù)據(jù)稱為一個包,通過統(tǒng)計包的個數(shù)來計算發(fā)送的數(shù)據(jù)流量。

      接收端接收到語音數(shù)據(jù)碼流后,采用與發(fā)送端相同標準的語音解碼器進行解碼,把解碼后的數(shù)據(jù)寫入接收緩沖區(qū)中。本系統(tǒng)對接收緩沖區(qū)設(shè)置了兩個指針,即播放指針和寫指針。寫指針解決數(shù)據(jù)覆蓋問題,指示用于寫入數(shù)據(jù)緩沖區(qū)的位置;而播放指針則表示當前所播放的數(shù)據(jù)末尾。接收端通過調(diào)用Media庫里的WaveOut函數(shù)對解碼后的語音進行播放。

      1.1.3 語音編解碼器

      本系統(tǒng)實現(xiàn)了G.711 A律PCM編碼、G.729、MELP、SMV和ARM語音編解碼器。G.711是ITU-T提出的8 kHz采樣,8 bit非均勻量化的波形編碼標準[8],廣泛用在電話通信中,其原理和方法是通信原理課程的重要內(nèi)容。G.729聲碼器使用了LPC分析合成技術(shù),通過使得實際語音與合成語音之間誤差能量最小為準則來進行編碼,該聲碼器具有較高的壓縮率;MELP采用多帶混合激勵等技術(shù)提高了合成的語音質(zhì)量,可實現(xiàn)1.2~4 kb/s的低碼率聲碼器;SMV是3G移動通信系統(tǒng)變速率語音編碼選項之一[9-11]。針對這些不同標準,不用應(yīng)用場景的語音編碼器,本文系統(tǒng)通過調(diào)用語音編解碼器函數(shù)的方式來實現(xiàn)對采集或接收到的語音進行實時編解碼。

      1.1.4 傳輸控制

      UDP是一種面向無連接的協(xié)議,具有資源消耗小,處理速度快的優(yōu)點[12],通常用于音頻、視頻和普通數(shù)據(jù)的傳送。本系統(tǒng)為了實現(xiàn)語音數(shù)據(jù)的實時傳送,采用了UDP Socket作為網(wǎng)絡(luò)端口的監(jiān)聽[13],該Socket采用異步工作模式。為了實現(xiàn)全雙工語音通信,系統(tǒng)分別建立發(fā)送和接收UDP Socket,通過綁定接收端和發(fā)送的端口號,對Socket的發(fā)送數(shù)據(jù)和接收數(shù)據(jù)進行消息處理。當收發(fā)雙方啟動程序并監(jiān)聽后,均處于偵聽通話邀請狀態(tài),當某一方向另一方發(fā)出通話邀請,被叫方能夠聽到發(fā)送端的聲音,當點擊開始通話后,雙方便進入語音通信狀態(tài),收發(fā)兩端的系統(tǒng)啟動錄音和放音線程,即可進行全雙工語音通信。

      1.1.5 網(wǎng)絡(luò)傳輸

      系統(tǒng)以局域網(wǎng)作為語音通信的傳輸媒介。兩臺接入局域網(wǎng)的PC機啟動并運行語音通信測試系統(tǒng)軟件后,設(shè)置收發(fā)兩端的IP地址,選擇相同的編碼器,并呼叫對方,當對方確認后,便可通過局域網(wǎng)進行語音通話。

      1.2 多線程框架

      系統(tǒng)工作在peer to peer模式,即收發(fā)雙方使用同一個程序[14]。如圖2所示,是語音通信采用的線程架構(gòu),其中,主線程用來響應(yīng)程序界面的設(shè)置。語音發(fā)送和語音接收是分開進行的,均通過異步調(diào)用方式來實現(xiàn)。語音的發(fā)送通過Bufferfull事件觸發(fā)mˉpWaveInˉBufferFull來實現(xiàn),而收發(fā)兩端系統(tǒng)則通過 mˉpUdpServerˉPacketReceived來接收語音數(shù)據(jù),并調(diào)用mˉpWaveOut.Play來播放語音。監(jiān)聽是否收到數(shù)據(jù)也采用了異步方式,目的是減少線程數(shù)目和開銷。

      圖2 多線程架構(gòu)

      通過引入多線程,系統(tǒng)可以同時發(fā)送和播放語音。語音的發(fā)送和播放通過SendTestAudio和Play-TestAudio線程來實現(xiàn)。引入SendTest的目的是通過編碼和播放測試語音,測試語音質(zhì)量和計算語音編碼器的編碼效率。

      1.3 語音通信實驗系統(tǒng)界面

      實驗系統(tǒng)界面如圖3所示,在 “參數(shù)設(shè)定”中選擇語音編碼器類型、采樣率和量化級數(shù)。當對方收到通話邀請時,系統(tǒng)會自動詢問是否匹配參數(shù),只有參數(shù)匹配一致才能正常傳輸。 “設(shè)備選擇”的設(shè)置主要是考慮到當一個終端擁有多個語音輸入輸出設(shè)備時,要對參與工作的設(shè)備進行選擇。“本地設(shè)置”用于設(shè)置本地IP地址和端口號11100。本地設(shè)置完成后,單擊 “監(jiān)聽”,然后在“目標設(shè)置”中,設(shè)置接收端的IP地址和端口號11100。收發(fā)兩端點擊 “開始通話”,則可以進行雙向的實時通信。在通話過程中,系統(tǒng)還可以實時顯示編解碼延時、接收和發(fā)送數(shù)據(jù)包的數(shù)量和字節(jié)數(shù)?!鞍l(fā)送測試音”和 “播放測試音”可以對wav格式的語音文件進行編解碼處理和播放。

      圖3 語音通信實驗系統(tǒng)界面

      2 語音通信實驗系統(tǒng)的應(yīng)用

      本文設(shè)計的系統(tǒng)能測試語音質(zhì)量、壓縮比、編解碼延時、數(shù)據(jù)流量等指標,可用于語音編碼相關(guān)課程的理論和實驗教學,如老師講解某個語音編碼器的編碼原理和方法時,可以現(xiàn)場為學生播放經(jīng)過該系統(tǒng)輸出的語音,也可以比較不同語音編碼器的特點,如音質(zhì)、算法復雜度、壓縮比等。實驗老師用該系統(tǒng)可以開發(fā)出一些相關(guān)的實驗項目,如要求學生去實現(xiàn)一些語音編碼器,然后用該系統(tǒng)進行測試等。

      圖4 G.711 A率編碼器測試結(jié)果

      如果在本地和目標IP地址均設(shè)置為127.0.0.1,系統(tǒng)可以進行自發(fā)自收的自環(huán)測試。自環(huán)測試時,點擊 “發(fā)送測試音”,從PC機中選擇要編碼的語音文件,然后點擊 “開始通話”,用選擇的語音編碼器對語音文件數(shù)據(jù)進行編解碼處理;再點擊 “發(fā)送測試音”,可以播放經(jīng)過編解碼后的語音,如果點擊 “播放測試音”,則可播放沒有經(jīng)過任何編解碼處理的原始語音文件。

      如圖3所示,是沒有經(jīng)過壓縮編碼的某個語音文件的自環(huán)測試界面,接收和發(fā)送字節(jié)數(shù)均為110.375 kB,即該語音測試文件的大小為110.375 kB。如圖4所示,顯示了該測試語音文件經(jīng)G.711 A率編碼器的測試結(jié)果,收發(fā)字節(jié)數(shù)為55.187 5 kB,編解碼延時分別為2.1μs和1.2μs,通過計算該編碼器發(fā)送字節(jié)數(shù)和原始語音文件字節(jié)數(shù)之比,可得出該編碼器的語音壓縮比為1/2。分別點擊圖4系統(tǒng)界面的 “發(fā)送測試音”和 “播放測試音”,啟動語音的播放,通過試聽,可以體驗經(jīng)過編解碼處理后的語音和原始語音之間音質(zhì)的差別,評估出語音編碼器的主觀語音質(zhì)量。如圖5所示,是G.729語音編碼器的測試結(jié)果,收發(fā)字節(jié)數(shù)均為7.031 25 kB,壓縮比接近1/16,編解碼延時分別為678.6μs和256.3 μs。

      圖5 G.729編碼器測試結(jié)果

      圖6 采用SMV編碼器的語音通信界面

      如圖6所示,是在兩臺PC機上運行本文語音通信測試系統(tǒng),通過校園局域網(wǎng)進行語音通話的界面。兩端系統(tǒng)均選擇SMV 4 kb/s語音編碼器,“本地設(shè)置”和 “目標設(shè)置”分別輸入本地和目的IP地址,點擊 “開始通話”后,兩端語音通信測試系統(tǒng)即可進行雙向?qū)崟r語音通信,并實時顯示收發(fā)數(shù)據(jù)流量和編解碼延時。

      3 結(jié)束語

      本文采用多線程模塊化結(jié)構(gòu)進行軟件設(shè)計,通過UDP/IP協(xié)議,以局域網(wǎng)為傳輸通道,實現(xiàn)了具有良好可擴展性和實用性的語音通信系統(tǒng)。該系統(tǒng)既能通過局域網(wǎng)絡(luò)進行雙向?qū)崟r語音通信,又能測試各種語音編碼器語音的主觀質(zhì)量和壓縮比,還能實時顯示語音通信過程中編解碼延時,可用于語音信號處理相關(guān)課程的理論教學案例演示,也可基于該系統(tǒng)開發(fā)相應(yīng)的實驗項目,還可用于學生測試自己實現(xiàn)的語音編碼器的質(zhì)量。

      [1]張鳴.通信原理仿真實驗系統(tǒng)設(shè)計[J].實驗技術(shù)與管理,2013,30(6):54-57,61.

      [2]晏燕,王惠琴.多媒體通信課程的教學改革與探討[J].蘭州文理學院學報(自然科學版),2014,28(4):107-110,128.

      [3]涂繼輝,蘇麗秋.基于OpenBTS和Asterisk的移動通信實驗系統(tǒng)設(shè)計與實現(xiàn)[J].實驗技術(shù)與管理,2014,31(5):65-70.

      [4]楊毅,鄧北星,馬曉紅.《語音信號處理》實驗教學研究與實踐[J].實驗科學與技術(shù),2012,10(6):112-115,180.

      [5]崔鶴,劉云清,盛家進.基于FPGA的UDP/IP協(xié)議棧的研究與實現(xiàn)[J].長春理工大學學報(自然科學版),2014,37(2):133-137.

      [6]馮金金,吳游.基于DSP的音頻信號壓縮通信系統(tǒng)的設(shè)計與實現(xiàn)[J].信息技術(shù),2016(8):200-203.

      [7]李桂菊.利用DSP底層結(jié)構(gòu)提高MPEG-4編碼的實時性[J].中國光學,2011,4(5):461-467.

      [8]徐海潮,張江鑫,蔣伊樂.基于DM365的IP語音終端設(shè)計[J].杭州電子科技大學學報 (綜合版),2013,33(5):146-149.

      [9]郭燕.多點語音通信在船舶通信系統(tǒng)中的仿真[J].艦船科學技術(shù),2016,38(7):98-99.

      [10]李強,謝虹恩.改進的基于MELP的非連續(xù)傳輸語音編碼算法[J].重慶郵電大學學報(自然科學版),2014,26(5):636-641.

      [11]夏曉峰.可選取模式聲碼器SMV算法優(yōu)化[J].雞西大學學報 (綜合版),2014,14(9):49-51.

      [12]范開俊,徐丙垠,陳羽,等.配電網(wǎng)分布式控制實時數(shù)據(jù)的GOOSE over UDP傳輸方式[J].電力系統(tǒng)自動化,2016,40(4):115-120.

      [13]李淑梅,王志彬.Socket在局域網(wǎng)聊天系統(tǒng)中的應(yīng)用[J].吉林師范大學學報(自然科學版),2014,35(1):71-73.

      [14]張立晨,張晉豫.基于分區(qū)概率的P2P實時流媒體緩存策略[J].軟件,2014,35(4):12-17.

      猜你喜歡
      編解碼通話局域網(wǎng)
      1553B總線控制器編解碼設(shè)計
      基于VPN的機房局域網(wǎng)遠程控制系統(tǒng)
      電子制作(2019年16期)2019-09-27 09:35:04
      大型民機試飛遙測視頻編解碼方法研究
      《戊戌元日與友人通話》
      中華詩詞(2018年5期)2018-11-22 06:46:08
      基于H.265編解碼的高清視頻傳輸系統(tǒng)研究
      電子測試(2018年18期)2018-11-14 02:30:54
      基于802.1Q協(xié)議的虛擬局域網(wǎng)技術(shù)研究與實現(xiàn)
      電子制作(2017年17期)2017-12-18 06:40:48
      局域網(wǎng)性能的優(yōu)化
      電子制作(2017年8期)2017-06-05 09:36:15
      低成本視頻通話APP
      2013年11月通信業(yè)主要指標完成情況(一)
      電信科學(2014年1期)2014-09-29 04:48:34
      主流視頻編解碼軟件的硬件性能分析與設(shè)計
      計算機工程(2014年6期)2014-02-28 01:27:54
      鹤峰县| 瑞昌市| 泸州市| 长宁区| 湖北省| 凤冈县| 崇义县| 天柱县| 津市市| 宁陵县| 阿图什市| 阜新市| 武清区| 邹城市| 田阳县| 乌拉特前旗| 建水县| 巴楚县| 莱州市| 云南省| 若羌县| 昌黎县| 克什克腾旗| 年辖:市辖区| 镇沅| 顺平县| 永康市| 彭泽县| 石屏县| 柳林县| 清水河县| 泗阳县| 新巴尔虎左旗| 绩溪县| 烟台市| 龙井市| 乌兰察布市| 新田县| 博兴县| 满洲里市| 武陟县|