当前位置:首页 > 测试测量 > 测试测量
[导读]LabVIEW具有强大的信号采集功能和网络通信功能,这些功能使得LabVIEW的用户可以很容易编写出具有强大网络通讯能力的LabVIEW应用软件,实现远程虚拟仪器。为了将人的语音或某个地点现场的声音信号远传,可以依托LabVI

LabVIEW具有强大的信号采集功能和网络通信功能,这些功能使得LabVIEW的用户可以很容易编写出具有强大网络通讯能力的LabVIEW应用软件,实现远程虚拟仪器。为了将人的语音或某个地点现场的声音信号远传,可以依托LabVIEW这些功能,将联网计算机声卡上采集的语音信号,进行远程语音数据的点对点传输。应用环境的网络拓扑图,如图1所示。

1 利用DataSocket技术传输语音

LabVIEW实现网络通信有3大类方法:(1)使用网络通信协议编程实现网络通信,可以使用的通信协议类型包括TCP/IP协议、UDP、串口通信协议等;(2)使用基于TCP/IP的数据传输协议DSTP的DataSocket技术实现网络通信;(3)使用共享变量实现网络通信。由于网络语音通信要求实时性强。本文采用第二种方法即DataSocket技术实现网络语音通信。

DataSocket是NI公司提供的一种实时数据传输技术,可用于一个计算机内或网络中多个应用程序之间的数据交换,是专门面向测量和自动化工程的网络实时高速数据交换的编程技术。DataSocket克服了传统TCP/IP传输协议需要较为复杂的底层编程、传输速率较慢(特别是对动态数据)等缺点,大大简化了实时数据传输问题,它提供了一种易用、高效、可编程的软件接口,能够很方便地实现网络上的多台计算机之间的实时数据交换[1]。

DataSocket包括了DataSocketServer Manager、DataSocketServer和DataSocket函数库这几个工具软件,以及DSTP(DataSockettransfer protocol,DataSocket传输协议)、URL(uniform resource locator,通用资源定位符)和文件格式等技术规范[2]。在LabVIEW中,用户可以很方便地使用这些工具来实现远程数据采集。

语音传输程序用到以下两个DataSocketVI:

(1)读取DataSocket函数(ReadDataSocket.vi):该节点用于从打开的URL连接中读取数据。

(2)写入DataSocket函数(WriteDataSocket.vi):该节点用于向打开的URL连接中写入数据。这里的数据可以是单个或数组形式的字符串、逻辑(布尔)量和数值量等多种类型。

2 语音采集

利用声卡采集语音信号实现语音信号双声道模拟输入。将麦克风(话筒)插在声卡的话筒输入端口,并将其插入声卡上的标记为“Mic In”的插孔中。通过该端口可以采集人的语音信号。

语音采集程序用到以下三个声音处理相关VI:

(1)配置声音输入函数(Sound Input Configure.vi):利用该VI配置声卡,并开始进行语音采集。采样率设置为44.1kHz。通道数为2(即立体声双声道输入),每采样比特数(即采样位数为16位,采样模式为连续采样,缓存大小设置为每通道10000个样本。

(2)读取声音输入函数(Sound Input Read.vi):利用该VI从缓存中读取数据。程序中,为了连续采集语音信号,将“读取声音输入VI”放在了一个While循环中,用于从缓存中连续读取语音数据,设置每次从每个通道中读取样本数为4410个。

(3)声音输入清零函数(Sound Input Clear.vi):利用该VI停止采样,并进行清除缓存和清除占用的内存等操作。

3 语音播放

利用声卡输出语音信号实现语音信号双声道模拟输出。将扬声器(喇叭)插在扬声器输出端口,并将其插入声卡上的标记为“Speaker”或“SPK”的插孔中。通过该端口可以外接音箱的音频线插头,从而播放通过网络传输过来的语音信号。

语音播放程序用到以下四个声音处理相关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通信之前,必须首先运行DataSocketServer[5]。

5 结束语

DataSocket面向测量和网上实时高速数据交换,可用于一个计算机内或者网络中多个应用程序之间的数据交换。使用DataSocket技术,可以更加方便地编写出LabVIEW的远程数据采集应用程序。所以本例利用DataSocket技术开发网络语音通信模块既能实现开发快速,又能实现软件模块的高效可靠。

 

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭