随着信息技术的发展,各种仪器无不转向智能化、自动化和集成化。虚拟仪器技术已经成为测量仪器和测试技术的重要发展方向。无所不在的计算机应用为虚拟仪器的推广提供了良好的基础。虚拟仪器利用专有的软硬件配合计算机实现专有设备的功能,并使其自动化、智能化,适合于一切需要计算机辅助进行数据存储、数据处理、数据传输的场合。虚拟仪器的引入,使测量与处理、结果与分析相脱节的面貌大为改观,数据的提取、存储、处理、分析既有条不紊又迅捷快速。
虚拟音频处理平台的研究是虚拟仪器技术和音频分析技术相结合的有益尝试。按照软件过程中的结构化设计方法,虚拟式音频分析仪被划分为采集、分析、显示、识别几个模块,模块内部实现各不相同的功能,外部提供统一的接口,模块之间协同工作,组成完整的系统。虚拟音频处理平台在语音采集与分析方面主要是利用了LV对声卡具有初始化的功能,使用最普通的声卡代替数据采集卡,使用麦克风进行语音的输入,然后再虚拟软件的平台上面对语音信号进行保存、分析和重载,其中分析包括幅频测量、信息测量以及功率谱测量;在语音识别方面利用了LV对Matlab脚本文件的调用功能,结合两者的优势,使用矢量量化的方法和LBG算法实现对说话人的识别。
作为将虚拟仪器技术运用到音频分析中的一次尝试,虚拟音频处理平台实现了基本的音频分析功能,并实现了语音识别功能,达到了预定的目的,然而在测量结果的尤其是识别方面的精确化以及打包使其脱离软盘方面还有值得改进的地方,这些将作为今后进一步研究和开发的重点问题。
系统整体设计
Labview作为一种强大的虚拟仪器开发平台,广泛地被工业界、学术界和研究实验室所接受,被视为一个标准的数据采集和仪器控制软件。在这次的设计中主要就是利用Labview软件的作为工具,以搭建虚拟音频的处理平台。
在设计中,系统将要达到:对输入的语音信号进行采集并显示、保存为音频文件、重载和分析已经保存了的语音信号,语音识别四个功能。这四个模块同存于一个开始的界面,通过选择,调用相应的模块功能并显示子模块的运行界面。
整体系统的框架为 :
图 2-1 整体系统框架
数据采集部分的设计思路是:屏幕上显示有数据的采集位数、声道选择、暂停、停止,以及波形的显示器。在设置好采集位数以及声道后就可以开始运行了,在运行过程中,按下开始键后,波形实时显示;按下暂停键够,即使有输入,停止显示,但是不退出运行界面;按下停止键后,退出整个运行界面。
数据保存部分的设计思路是:在选择了开始运行之后便也启动了录音部分,在选择了Stop后提示是否保存,并且保存的格式为*.wav音频格式。
数据分析部分的设计思路是:数据分析主要是针对以前保存过得语音图形而言的,一方面要能够再现数据采集时的采集为数,声道选择等各部分的设定,同时也要在再现保存了的语音图形;另一方面也要提供对保存了的语音信号的幅度相位分析、语音信号的参数分析,功率谱分析三个分析方面。
语音识别部分的设计思想是:输入语音信号,在训练阶段将语音信号通过特征提取以后保存在语音库中,在识别阶段,则将输入的语音经过特征提取以后与语音库中的模板进行匹配。(在设计中主要用矢量量化的算法进行算法抉择。)然后根据匹配结果与设定的阈值相比较。如果小于设定的阈值,则表示是合法人员;如果大于了设定的阈值,则表示是非法人员。
虚拟音频处理平台的搭建
3.1 声卡工作原理 [ ]
声卡一般有 Line In 和 Mic In 两个信号输入插孔,声音传感器(本文采用通用的麦克风)可通过这两个插孔连接到声卡。声音的本质是一种波,表现为振幅、频率、相位等物理量的连续性变化。声卡作为语音信号与计算机的通用接口,其主要功能就是将所获取的模拟音频信号转换为数字信号,经过 DSP 音效芯片的处理,将该数字信号转换为模拟信号输出。声卡的基本工作流程为:输入时,麦克风获取的音频信号通过 A/D 转换器转换成数字信号,送到计算机进行播放、录音等各种处理;输出时,计算机通过总线将数字化的声音信号以 PCM(脉冲编码调制)方式送到 D/A转换器,变成模拟的音频信号,进而通过功率放大器送到音箱等设备转换为声波,人耳侦测到环境空气压力的改变,大脑将其解释为声音。
衡量声卡的技术指标包括复音数量、采样频率、采样位数(即量化精度)、声道数、信噪比(SNR)和总谐波失真(THD)等。
3.2 labview简介
LabVIEW[ ]是Laboratory Virtual Instrument Engineering Workbench(实验室虚拟仪器集成环境)的简称,是由美国国家仪器公司创立的一个功能强大而又灵活的仪器和分析软件应用开发工具。LabVIEW内置信号采集、测量分析与数据显示功能,集开发、调试、运行于一体,不仅提供了几乎所有经典的信号处理函数和大量现代的高级信号分析工具,而且可以非常容易的与各种数据采集硬件、以太网系统无缝集成,与各种主流的现场总线通信以及与大多数通用数据库链接[ ]。
Labview是一种图形化的程序语言,使用这种语言编程时,基本上不用写程序代码,取而代之的是程序流程图[ ]。它的两种组成窗口分别是前面板窗口和框图窗口,前面板包含了各种控件和指示器(即输入和输出)。框图中包含的端子相当于前面板上的控件和指示器,框图还包含了常量、函数、子VI、结构以及将数据从一个对象传送到另一个对象的连线。VI有三个主要部分:前面板、框图和图标/连接器。