基于LabVIEW实现网络语音通信

发布者:未来感知最新更新时间:2015-09-07 来源: eefocus关键字:LabVIEW  网络语音通信 手机看文章 扫描二维码
随时随地手机看文章
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包括了DataSocket Server Manager、DataSocket Server和DataSocket函数库这几个工具软件,以及DSTP(DataSocket transfer protocol,DataSocket传输协议)、URL(uniform resource locator,通用资源定位符)和文件格式等技术规范[2]。在LabVIEW中,用户可以很方便地使用这些工具来实现远程数据采集。

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

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

(2)写入DataSocket函数(Write DataSocket.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通信之前,必须首先运行DataSocket Server[5]。

5 结束语

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

关键字:LabVIEW  网络语音通信 引用地址:基于LabVIEW实现网络语音通信

上一篇:基于LabView的机动车尾气检测系统的设计
下一篇:关于labview的队列的简单领悟

推荐阅读最新更新时间:2024-03-30 23:03

基于LabVIEW和PXI的汽车数字仪表测控系统
引言 在汽车智能数字仪表的开发过程中,数字仪表所需要采集的信息量比较多,各种车型的信息参数又差别较大,这些问题的存在给仪表的实车测试和参数标定带来了困难。为了在开发过程中能够快速有效地测试系统的各项功能,提高系统开发效率,我们设计了一套测试系统,它能够模拟产生汽车上的各种参数信息,快速地对设计仪表进行全面的测试,节约台架或实车测试时间,降低测试风险。 图1 仪表测试系统硬件功能框图 图2 仪表测试平台软件总体功能框图 系统设计 汽车智能数字仪表测试系统的开发要求针对不同的车型,能够模拟产生出仪表所需的各种采集信号信息,并且能够通过CAN接口与被测仪表进行通信。本文介绍的测试系统包括以下主要功能: 车速里程表的脉冲信号模
[测试测量]
基于<font color='red'>LabVIEW</font>和PXI的汽车数字仪表测控系统
LabVIEW程序设计模式(三)—消息队列型状态机模式
针对基本状态机模式的第(1~3)个问题,需要对模式进行改进。本节将一一分析这些问题对应的解决方案,并最终形成一种新的状态机模式 消息队列型状态机模式。 状态的分类不清晰。 这是一个涉及各个状态分类管理的问题,是一个组织问题。我们可以做一个类比,在一个书桌上有许多种类的书籍(通信、计算机、机械、法律等),这些书都摆放在书桌上很整齐。但是我们在寻找一本书时并不会觉得很迅速和随意,因为书籍的摆放是无序的,每次寻找书籍我们不得不从第一本开始浏览直至找到我们想要的书籍。或许可以做一些改变,我们设置一些书立,将不同种类的书使用书立分开。并且在书立上标明这些书籍表示的种类。这样我们在寻找某一种书籍时就不需要从第一本书开始寻找了,只需要找到对
[测试测量]
<font color='red'>LabVIEW</font>程序设计模式(三)—消息队列型状态机模式
助力5G变革— NI携其最新LabVIEW通信系统设计套件亮相EDI CON
2015年4月14日,美国国家仪器有限公司(National Instruments, 简称NI)亮相2015第三届电子设计创新会议(EDI CON),这是NI连续第三年参与该行业盛会,并在此次会议上隆重介绍最新结合软件无线电(SDR)硬件和全方位软件设计流程的LabVIEW通信系统设计套件(LabVIEW Communications System Design Suite)。 在移动互联网与物联网(loT,Internet of Things)两大趋势的推动下,5G的需求与应用也随之而来,其所带来的革命性影响将颠覆我们的生活。NI始终致力于为工程师和科学家提供解决方案来应对全球严峻的工程挑战。面对5G即将引爆的
[网络通信]
助力5G变革— NI携其最新<font color='red'>LabVIEW</font><font color='red'>通信</font>系统设计套件亮相EDI CON
利用LabVIEW对大型造纸厂的纸浆生产进行仿真与控制
  The Challenge:   创建一个用来监测大型造纸厂纸浆的生产过程,以节约能源和降低成本。   The Solution:   为了增加吞吐量,节约能源,以及优化生产过程,我们利用NI LabVIEW数据记录和监控(DSC)模块来处理复杂的,非线性的建模过程。   "LabVIEW工具包使同时运行多个模型变得更加容易,这意味着在线性能监控功能可以变得简单直接。"   位于英国Workington的Iggesund纸板公司,其生产线上主要有五个造纸机,运行每个造纸机至少需要消耗 15兆瓦的能量。节约能源对于降低我们的运营成本至关重要,因此,我们需要一个解决方案,以优化我们能源的使用效率,同时确保造纸机
[测试测量]
利用<font color='red'>LabVIEW</font>对大型造纸厂的纸浆生产进行仿真与控制
基于CompactDAQ与LabVIEW的便携式流感诊断系统设计
利用NI公司的Compact DAQ硬件系统,以及用于控制和数据分析的LabVIEW图形化系统设计软件,我们创建了一个小型且便携式的系统。Hsieh Tseng Ming James, Institute of Bioengineering and Nanotechnology, A-Star The Challenge:开发一个比传统系统更加易于使用的,易于携带的,并且成本更低廉的小型热循环仪。 The Solution: 使用NI公司的CompactDAQ硬件系统和LabVIEW软件来创建小型热循环仪,并且凭借USB接口的即插即用功能,以执行实时的聚合酶链反应。 聚合酶链反应(PCR)热循环是进行分子诊断的黄金准则。然
[测试测量]
基于CompactDAQ与<font color='red'>LabVIEW</font>的便携式流感诊断系统设计
labview-tcp通信总结
1、波形图是每次将久数据清空,然后显示新数据,而波形图表是将新数据接到旧数据的后面。趋势图可以将新的数据添加到曲线的尾端,从而反映实时数据的变化趋势,主要用于显示实时的数据。而图表在画图之前会自动清空当前图表,然后把输入的数据画成曲线。 2、字符串常量中的\r\n这里是算四个字符,而不是指转义字符。 3、通过stop按钮来停止程序的运行,可以采用while循环和事件结构,事件触发条件改为值改变,然后按键机械动作改为保持转换直到释放,保持转换直到释放相当于两次改变事件stop的值。 4、while循环是首先读入stop的值,然后在执行一次后在根据这个值来判断,当while里含有将stop改为true的语句,这个值将写入判断条件,再
[测试测量]
基于LabVIEW与凌阳SPCE061A实现串口数据采集
引言 LabVIEW是一个划时代的图形化编程系统,应用于数据采集与控制、信号分析等方面,它为不熟悉文本语言编程的专业科技工作者在测控领域建立计算机仪器系统——虚拟仪器,提供了一个便捷、轻松的图形化设计环境。由于其灵活、简单易用、开发效率高等特点,正逐渐成为科技工作者进行仪器应用与开发的得力工具。数据采集是开发过程中一个重要的环节,NI公司提供了各种不同类型的基于LabVIEW的数据采集卡,但是其价格昂贵,对于小型企业、实验教学等方面仍存在着不可避免的资金问题。而市面上销售的第三方开发的数据采集卡,由于不具备对LabVIEW的直接支持,需要用户开发其驱动程序,使用也不方便。如果采用以凌阳16位单片机SPCE061A作为前端数据采
[单片机]
基于<font color='red'>LabVIEW</font>与凌阳SPCE061A实现串口数据采集
LabVIEW是一种通用的编程语言吗?
作者自传 Jeff Kodosky,1976年NI的合作创始人而且从那时起一直担任总经理。他在1978年被任命为公司的副董事长。从1980年到2000任R%26;amp;D部门的副董事长,而且最近被任命为NI 商业和技术伙伴。他之所以闻名是因为他创建了LabVIEW,即公司的图形化仪器技术软件包。在1976年之前,他任职于UT Austin 的ARL。Jeff从Rensselaer理工学院获得物理学士学位。 我经常听到,甚至有时关注于对LabVIEW的争论,即LabVIEW是一种通用的语言还是一种用于测量和自动化的特定应用程序的开发环境。一方面,有经验的程序员指出了LabVIEW缺乏的流行编程语言所具有的特性,但是另一
[应用]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
最新测试测量文章
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved