基于LabVIEW實(shí)現網(wǎng)絡(luò )語(yǔ)音通信
摘要:為了實(shí)現虛擬儀器的遠程網(wǎng)絡(luò )語(yǔ)音通信,依托LabVIEW強大的網(wǎng)絡(luò )通信能力,采用NI公司開(kāi)發(fā)的基于TCP/IP協(xié)議的DataSocket技術(shù),編程實(shí)現遠程語(yǔ)音數據的點(diǎn)對點(diǎn)傳輸。用此技術(shù)可以很大程度上簡(jiǎn)化甚至免除網(wǎng)絡(luò )通訊編程,可以很容易在網(wǎng)絡(luò )上實(shí)現高速語(yǔ)音數據傳遞。
本文引用地址:http://dyxdggzs.com/article/276360.htm引言
LabVIEW具有強大的信號采集功能和網(wǎng)絡(luò )通信功能,這些功能使得LabVIEW的用戶(hù)可以很容易編寫(xiě)出具有強大網(wǎng)絡(luò )通訊能力的LabVIEW應用軟件,實(shí)現遠程虛擬儀器。為了將人的語(yǔ)音或某個(gè)地點(diǎn)現場(chǎng)的聲音信號遠傳,可以依托LabVIEW這些功能,將聯(lián)網(wǎng)計算機聲卡上采集的語(yǔ)音信號,進(jìn)行遠程語(yǔ)音數據的點(diǎn)對點(diǎn)傳輸。應用環(huán)境的網(wǎng)絡(luò )拓撲圖,如圖1所示。
1 利用DataSocket技術(shù)傳輸語(yǔ)音
LabVIEW實(shí)現網(wǎng)絡(luò )通信有3大類(lèi)方法:(1)使用網(wǎng)絡(luò )通信協(xié)議編程實(shí)現網(wǎng)絡(luò )通信,可以使用的通信協(xié)議類(lèi)型包括TCP/IP協(xié)議、UDP、串口通信協(xié)議等;(2)使用基于TCP/IP的數據傳輸協(xié)議DSTP的DataSocket技術(shù)實(shí)現網(wǎng)絡(luò )通信;(3)使用共享變量實(shí)現網(wǎng)絡(luò )通信。由于網(wǎng)絡(luò )語(yǔ)音通信要求實(shí)時(shí)性強。本文采用第二種方法即DataSocket技術(shù)實(shí)現網(wǎng)絡(luò )語(yǔ)音通信。
DataSocket是NI公司提供的一種實(shí)時(shí)數據傳輸技術(shù),可用于一個(gè)計算機內或網(wǎng)絡(luò )中多個(gè)應用程序之間的數據交換,是專(zhuān)門(mén)面向測量和自動(dòng)化工程的網(wǎng)絡(luò )實(shí)時(shí)高速數據交換的編程技術(shù)。DataSocket克服了傳統TCP/IP傳輸協(xié)議需要較為復雜的底層編程、傳輸速率較慢(特別是對動(dòng)態(tài)數據)等缺點(diǎn),大大簡(jiǎn)化了實(shí)時(shí)數據傳輸問(wèn)題,它提供了一種易用、高效、可編程的軟件接口,能夠很方便地實(shí)現網(wǎng)絡(luò )上的多臺計算機之間的實(shí)時(shí)數據交換[1]。
DataSocket包括了DataSocket Server Manager、DataSocket Server和DataSocket函數庫這幾個(gè)工具軟件,以及DSTP(DataSocket transfer protocol,DataSocket傳輸協(xié)議)、URL(uniform resource locator,通用資源定位符)和文件格式等技術(shù)規范[2]。在LabVIEW中,用戶(hù)可以很方便地使用這些工具來(lái)實(shí)現遠程數據采集。
語(yǔ)音傳輸程序用到以下兩個(gè)DataSocket VI:
(1)讀取DataSocket函數(ReadDataSocket.vi):該節點(diǎn)用于從打開(kāi)的URL連接中讀取數據。
(2)寫(xiě)入DataSocket函數(Write DataSocket.vi):該節點(diǎn)用于向打開(kāi)的URL連接中寫(xiě)入數據。這里的數據可以是單個(gè)或數組形式的字符串、邏輯(布爾)量和數值量等多種類(lèi)型。
2 語(yǔ)音采集
利用聲卡采集語(yǔ)音信號實(shí)現語(yǔ)音信號雙聲道模擬輸入。將麥克風(fēng)(話(huà)筒)插在聲卡的話(huà)筒輸入端口,并將其插入聲卡上的標記為“Mic In”的插孔中。通過(guò)該端口可以采集人的語(yǔ)音信號。
語(yǔ)音采集程序用到以下三個(gè)聲音處理相關(guān)VI:
(1)配置聲音輸入函數(Sound Input Configure.vi):利用該VI配置聲卡,并開(kāi)始進(jìn)行語(yǔ)音采集。采樣率設置為44.1kHz。通道數為2(即立體聲雙聲道輸入),每采樣比特數(即采樣位數為16位,采樣模式為連續采樣,緩存大小設置為每通道10000個(gè)樣本。
(2)讀取聲音輸入函數(Sound Input Read.vi):利用該VI從緩存中讀取數據。程序中,為了連續采集語(yǔ)音信號,將“讀取聲音輸入VI”放在了一個(gè)While循環(huán)中,用于從緩存中連續讀取語(yǔ)音數據,設置每次從每個(gè)通道中讀取樣本數為4410個(gè)。
(3)聲音輸入清零函數(Sound Input Clear.vi):利用該VI停止采樣,并進(jìn)行清除緩存和清除占用的內存等操作。
3 語(yǔ)音播放
利用聲卡輸出語(yǔ)音信號實(shí)現語(yǔ)音信號雙聲道模擬輸出。將揚聲器(喇叭)插在揚聲器輸出端口,并將其插入聲卡上的標記為“Speaker”或“SPK”的插孔中。通過(guò)該端口可以外接音箱的音頻線(xiàn)插頭,從而播放通過(guò)網(wǎng)絡(luò )傳輸過(guò)來(lái)的語(yǔ)音信號。
tcp/ip相關(guān)文章:tcp/ip是什么
數字通信相關(guān)文章:數字通信原理
通信相關(guān)文章:通信原理
土壤濕度傳感器相關(guān)文章:土壤濕度傳感器原理 熱電偶相關(guān)文章:熱電偶原理
評論