基于LabVIEW實現網絡語音通信
語音播放程序用到以下四個聲音處理相關VI:
本文引用地址:http://www.104case.com/article/276360.htm(1)配置聲音輸出函數(Sound Output Configure.vi):利用該VI配置聲卡,并開始聲音輸出。采樣率設置為44.1kHz。通道數為2(即立體聲雙聲道輸入),每采樣比特數(即采樣位數為16位,采樣模式為連續采樣,緩存大小設置為每通道10000個樣本。
(2)調用讀取聲音輸入函數(Sound Input Write.vi):該VI用于向緩存中寫入信號,本項目用來向緩存中寫入由網絡傳輸過來的語音信號。程序中,在其外邊添加一個While循環,實現連續寫入語音數據。
(3)設置聲音輸出音量函數(Sound Output Set Volume.vi):該VI使用時串接在“設置聲音輸出音量VI”上,用于控制輸出音量大小。
(4)聲音輸出清零VI(Sound Output Clear.vi):該VI用于停止輸出并執行相應的清除操作。
4 程序實現
程序采用C/S(Client/Server)模式,即客戶/服務器模式,包括一個服務器VI和一個客戶機VI。這種模型設計人員要做兩方面的開發,一是客戶端采集程序和數據遠程發布的程序的設計,另一個是客戶端數據的接收程序的設計。
程序的URL輸入端口設置數據連接網絡地址,可以使用psp、opc、ftp、http和file等通信協議傳輸數據,本程序根據寫入數據的類型及網絡配置使用dstp協議。dstp協議是LabVIEW專門為測試數據的安全快速的傳輸而設置[3-4]。
(1)服務器端VI采集語音信號,并利用寫入DataSocket節點將數據發布到URL“dstp://127.0.0.1/TestWave” 指定的位置中。服務器VI的程序框圖如圖2所示。
(2)客戶端VI,將傳輸過來的語音信號通過聲卡播放出來。客戶機VI利用讀取DataSocket節點將數據從URL“dstp://127.0.0.1/TestWave”指定的位置讀出,并還原為原來的語音數據送到聲卡中。客戶端VI的程序框圖如圖3所示。
本程序的URL輸入端口地址配置為:dstp://127.0.0.1/TestWave,即只使用一臺電腦模擬網絡傳輸。另外,需要注意的是,在利用上述兩個VI進行DataSocket通信之前,必須首先運行DataSocket Server[5]。
5 結束語
DataSocket面向測量和網上實時高速數據交換,可用于一個計算機內或者網絡中多個應用程序之間的數據交換。使用DataSocket技術,可以更加方便地編寫出LabVIEW的遠程數據采集應用程序。所以本例利用DataSocket技術開發網絡語音通信模塊既能實現開發快速,又能實現軟件模塊的高效可靠。
參考文獻:
[1]齊躍,李珩.熱電偶溫度計遠程校準系統設計[J].計量與測試技術,2012,39(2):14-15
[2]何萌,呂國義.利用LabVIEW實現溫度傳感器遠程校準[C]. 第十三屆中國濕度與水分學術交流會、第十一屆中國氣濕敏傳感技術學術交流會、2010年國防科技工業熱工流量技術交流會論文集.2010:73-75
[3]阮奇楨.我和LabVIEW 一個NI工程師的十年編程經驗[M].北京:北京航空航天出版社,2012
[4]李江全,任玲,廖潔安等. LabVIEW虛擬儀器從入門到測控應用130例[M].北京:電子工業出版社,2013
[5]陳錫輝,張銀鴻.LabVIEW 8.20程序設計從入門到精通[M].北京:清華大學出版社,2007
tcp/ip相關文章:tcp/ip是什么
數字通信相關文章:數字通信原理
通信相關文章:通信原理
土壤濕度傳感器相關文章:土壤濕度傳感器原理 熱電偶相關文章:熱電偶原理
評論