基于LabVIEW实现网络语音通信

来源 :电子产品世界 | 被引量 : 0次 | 上传用户:aqcnbbz1
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:为了实现虚拟仪器的远程网络语音通信,依托LabVIEW强大的网络通信能力,采用NI公司开发的基于TCP/IP协议的DataSocket技术,编程实现远程语音数据的点对点传输。用此技术可以很大程度上简化甚至免除网络通讯编程,可以很容易在网络上实现高速语音数据传递。本文网络版地址:http:∥www.eepw.com.cn/article/276360.htm
  关键词:DataSocket;语音通信;LabVIEW
  DOI:10.3969/j.issn.1005-5517.2015.6.013
  引言
  LabVIEW具有强大的信号采集功能和网络通信功能,这些功能使得LabVIEW的用户可以很容易编写出具有强大网络通讯能力的LabVIEW应用软件,实现远程虚拟仪器。为了将人的语音或某个地点现场的声音信号远传,可以依托LabVIEW这些功能,将联网计算机声卡上采集的语音信号,进行远程语音数据的点对点传输。应用环境的网络拓扑图,如图1所示。
  1 利用DataSocket技术传输语音
  LabVIEW实现网络通信有3大类方法:(1)使用网络通信协议编程实现网络通信,可以使用的通信协议类型包括TCP/IP协议、UDP、串口通信协议等;(2)使用基于TCP/IP的数据传输协议DSTP的JDataSocket技术实现网络通信;(3)使用共享变量实现网络通信。由于网络语音通信要求实时性强。本文采用第二种方法即DataSocket技术实现网络语音通信。
  DataSocket是NI公司提供的一种实时数据传输技术,可用于一个计算机内或网络中多个应用程序之间的数据交换,是专门面向测量和自动化工程的网络实时高速数据交换的编程技术。DataSocket克服了传统TCP/IP传输协议需要较为复杂的底层编程、传输速率较慢(特别是对动态数据)等缺点,大大简化了实时数据传输问题,它提供了一种易用、高效、可编程的软件接口,能够很方便地实现网络上的多台计算机之间的实时数据交换。
  DataSocket包括了DataSocketServer Manager、DataSocket Server和DataSocket函数库这几个工具软件,以及DSTP(DataSocket transferprotocol,DataSocket传输协议)、URL(uniform resource locator,通用资源定位符)和文件格式等技术规范。在LabVIEW中,用户可以很方便地使用这些工具来实现远程数据采集。
  语音传输程序用到以下两个DataSocketⅥ:
  (1)读取DataSocket函数(ReadDataSocket.vi):该节点用于从打开的URL连接中读取数据。
  (2)写入DataSocket函数(WriteDataSocket.vi):该节点用于向打开的URL连接中写入数据。这里的数据可以是单个或数组形式的字符串、逻辑(布尔)量和数值量等多种类型。
  2 语音采集
  利用声卡采集语音信号实现语音信号双声道模拟输入。将麦克风(话筒)插在声卡的话筒输入端口,并将其插入声卡上的标记为“Mic In”的插孔中。通过该端口可以采集人的语音信号。
  语音采集程序用到以下三个声音处理相关Ⅵ:
  (1)配置声音输入函数(SoundInput Configure.vi):利用该Ⅵ配置声卡,并开始进行语音采集。采样率设置为44.1kHz。通道数为2(即立体声双声道输入),每采样比特数(即采样位数为16位,采样模式为连续采样,缓存大小设置为每通道10000个样本。
  (2)读取声音输入函数(SoundInput Read.vi):利用该Ⅵ从缓存中读取数据。程序中,为了连续采集语音信号,将“读取声音输入Ⅵ”放在了一个While循环中,用于从缓存中连续读取语音数据,设置每次从每个通道中读取样本数为4410个。
  (3)声音输入清零函数(Sound InputClear.vi):利用该Ⅵ停止采样,并进行清除缓存和清除占用的内存等操作。
  3 语音播放
  利用声卡输出语音信号实现语音信号双声道模拟输出。将扬声器(喇叭)插在扬声器输出端口,并将其插入声卡上的标记为“Speaker”或“SPK”的插孔中。通过该端口可以外接音箱的音频线插头,从而播放通过网络传输过来的语音信号。
  语音播放程序用到以下四个声音处理相关Ⅵ:
  (1)配置声音输出函数(SoundOutput Configure.vi):利用该Ⅵ配置声卡,并开始声音输出。采样率设置为44.1kHz。通道数为2(即立体声双声道输入),每采样比特数(即采样位数为16位,采样模式为连续采样,缓存大小设置为每通道10000个样本。
  (2)调用读取声音输入函数(SoundInput Write.vi):该Ⅵ用于向缓存中写入信号,本项目用来向缓存中写入由网络传输过来的语音信号。程序中,在其外边添加一个While循环,实现连续写入语音数据。
  (3)设置声音输出音量函数(SoundOutput Set Volume.vi):该Ⅵ使用时串接在“设置声音输出音!Ⅵ”上,用于控制输出音量大小。
  (4)声音输出清零Ⅵ(sound OutputClear.vi):该Ⅵ用于停止输出并执行相应的清除操作。
  4 程序实现
  程序采用C/S(Client/Server)模式,即客户/服务器模式,包括一个服务器Ⅵ和一个客户机Ⅵ。这种模型设计人员要做两方面的开发,一是客户端采集程序和数据远程发布的程序的设计,另一个是客户端数据的接收程序的设计。
  程序的URL输入端口设置数据连接网络地址,可以使用psp、opc、ftp、http和file等通信协议传输数据,本程序根据写入数据的类型及网络配置使用dstp协议。dstp协议是LabVIEW专门为测试数据的安全快速的传输而设置。
  (1)服务器端Ⅵ采集语音信号,并利用写入DataSocket节点将数据发布到URL“dstp:∥127.0.0.1/TestWave”指定的位置中。服务器Ⅵ的程序框图如图2所示。
  (2)客户端Ⅵ,将传输过来的语音信号通过声卡播放出来。客户机Ⅵ利用读取DataSocket节点将数据从URL“dstp:∥127.0.0.1/TestWave”捂定的位置读出,并还原为原来的语音数据送到声卡中。客户端Ⅵ的程序框图如图3所示。
  本程序的URL输入端口地址配置为:dstp:∥127.0.0.1/TestWave,即只使用一台电脑模拟网络传输。另外,需要注意的是,在利用上述两个Ⅵ进行DataSocket通信之前,必须首先运行DataSocket Servertsr。
  5 结束语
  DataSocket面向测量和网上实时高速数据交换,可用于一个计算机内或者网络中多个应用程序之间的数据交换。使用DataSocket技术,可以更加方便地编写出LabVIEW的远程数据采集应用程序。所以本例利用DataSocket技术开发网络语音通信模块既能实现开发快速,又能实现软件模块的高效可靠。
其他文献
近几年建筑行业的快速发展导致了其领域在能源方面的消耗逐步增多,要有效地发挥能源节约的作用,把建筑物的节能环保效果提高,就需要在建筑给排水中把环保节能理念落到实处,进
本刊讯2016年12月6日,全球基础设施中心(Global Infrastructure Hub,简称GIH)项目库正式在线启动。项目库将帮助各国政府部门开发和推进基础设施项目,面向全球社会资本发布各国基
讨论中间站停留车辆和长时间停留列车的概念,针对中间站停留车辆的股道设置和有长时间停留列车股道设置问题提出建议:对于普速铁路,在地形条件不是特别困难的情况下,不应将有调车
截至2014年2月24日,京沪高速铁路2014年春运期间累计开行列车11174列,日均279列;累计发送旅客1070.2万人,日均26.8万人。2014年2月6日,农历正月初七,京沪高速铁路发送旅客33.5万人,创造
目的研究小分子干扰RNA(siRNA)干扰蛋白激酶Cα相互作用蛋白(PICK)1基因对人结肠腺癌HT-29细胞增殖、凋亡及侵袭的影响。方法设计合成针对PICK1基因的siRNA序列,分为实验组(PICK1-
目的建立生色底物法测定大鼠血浆中低分子肝素(LMWH)含量的方法,研究p H敏感巯基壳聚糖/O-羧甲基壳聚糖(TCS/O-CMC)混合聚合物纳米粒在SD大鼠体内的相对生物利用度。方法采用生色
百里巨龙瀚海腾,天堑珠联港澳东.神州欢奏恢弘曲,旷世奇迹五洲惊.
我国城市地下空间的建设发展,经历了从仅满足战备需要的人防工程建设,到贯彻“平战结合”方针,人防工程建设与城市建设同步发展,再到城市地下空间综合开发利用的过程。改革开放以
<正>近日读金庸之《笑傲江湖》,展卷即不能罢,掩卷而心不能平,颇有所感,因记于下。关于令狐冲如果仅仅用"豪放"、"洒脱"、"放浪"等等词汇来形容这个人物,我以为是远远不够的
摘要:本文分析了典型的可穿戴设备的设计要点,提供了一种超低静态电流IC解决方案。本文网络版地址:http:∥www.eepw.com.cn/article/283515.htm  关键词:可穿戴设备;低功率;健康;电源  DOI:10.3969/j.issn.1005-5517.2015.11.003  一度像走路或跑步计步器一样简单的可穿戴设备,似乎一夜之间就变得更先进或智能化了。从面向听障人士