基于LabVIEW实现网络语音通信
语音播放程序用到以下四个声音处理相关VI:
本文引用地址:https://www.eepw.com.cn/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是什么
数字通信相关文章:数字通信原理
通信相关文章:通信原理
土壤湿度传感器相关文章:土壤湿度传感器原理 热电偶相关文章:热电偶原理
评论