基于LabVIEW实现网络语音通信

  作者:杨海明 马志强 龚松显 李悦 时间:2015-07-08来源:电子产品世界

编者按:为了实现虚拟仪器的远程网络语音通信,依托LabVIEW强大的网络通信能力,采用NI公司开发的基于TCP/IP协议的DataSocket技术,编程实现远程语音数据的点对点传输。用此技术可以很大程度上简化甚至免除网络通讯编程,可以很容易在网络上实现高速语音数据传递。

  语音播放程序用到以下四个声音处理相关VI:

  (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

1 2

关键词: DataSocket 语音通信 LabVIEW 201507

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版