基于MATLAB 语音信号处理的研究
2012-09-07阴艳丽
阴艳丽
(辽宁省盘锦市辽河油田通信公司,辽宁 盘锦 124010)
正弦交流信号与方波信号是两种应用极为广泛的信号,它们通常作振荡电路产生的,然后将得到的正弦波经过电压比较器或积分电路,则可输出一个方波信号。正弦波振荡电路是一。在MATLAB 中,[y,fs,bits]=wavread('Blip',[N1 N2]);用于读取语音,采样值放在向量y 中,fs 表示采样频率(Hz),bits 表示采样位数。[N1 N2]表示读取从N1点到N2点的值(若只有一个N的点则表示读取前N点的采样值)。sound(x,fs,bits);用于对声音的回放。向量y 则就代表了一个信号(也即一个复杂的“函数表达式”)也就是说可以像处理一个信号表达式一样处理这个声音信号。
1 图形用户界面设计
1.1 GUI设计模板
在MATLAB 主窗口中,选择File 菜单中的New 菜单项,再选择其中的GUI 命令,就会显示图形用户界面的设计模板。MATLAB为GUI设计一共准备了4 种模板,分别是Blank GUI(默认)、GUI with Uicontrols(带控件对象的GUI 模板)、GUI with Axes and Menu(带坐标轴与菜单的GUI 模板)与Modal Question Dialog(带模式问话对话框的GUI 模板)。当用户选择不同的模板时,在GUI设计模板界面的右边就会显示出与该模板对应的GUI 图形。
1.2 GUI设计窗口
在GUI设计模板中选中一个模板,然后单击OK 按钮,就会显示GUI设计窗口。选择不同的GUI设计模式时,在GUI设计窗口中显示的结果是不一样的。GUI设计窗口由菜单栏、工具栏、控件工具栏以及图形对象设计区等部分组成。GUI设计窗口的菜单栏有 File、Edit、View、Layout、Tools和Help 6个菜单项,使用其中的命令可以完成图形用户界面的设计操作。
1.3 GUI设计窗口的基本操作
在GUI设计窗口创建图形对象后,通过双击该对象,就会显示该对象的属性编辑器。例如,创建一个Push Button 对象,并设计该对象的属性值。下面的一段程序是语音信号在MATLAB中的最简单表现,它实现了语音的读入打开,以及绘出了语音信号的波形频谱图。
2 图形用户界面模块调试
下面的一段程序是语音信号在MATLAB中的最简单表现,它实现了语音的读入打开,以及绘出了语音信号的波形频谱图。
2.1 语音信号的读入与打开
[x,fs,bits]=wavread('ding.wav',[10245120]);
sound(x,fs,bits);
X=fft(x,4096);
magX=abs(X);
angX=angle(X);
subplot(221);plot(x);title('原始信号波形');
subplot(222);plot(X);title('原始信号频谱');
subplot(223);plot(magX);title('原始信号幅值');
subplot(224);plot(angX);title('原始信号相位');
2.2 语音信号的定点分析
已知一个语音信号,数据采样频率为100Hz,试分别绘制N=128点DFT的幅频图和N=1024点DFT 幅频图。编程如下:
3 图形用户界面制作
MATLAB 中图形用户界面的制作有两种方法:M 文件和GUIDE,本设计采用GUIDE的方法制作GUI。
3.1 新建一个空白GUI 模板:进入MATLAB程序界面以后执行File→New→GUI 过程,即可进入
3.2 选择空白模板选项条,单击OK,一个空白GUI 模板生成
3.3 拖拉白色框的右下角调整界面大小,现在就可以开始设计GUI 功能界面了。从左边控件框选择所需要的控件放置在GUI 面板中,然后对各个控件进行编辑,包括位置、大小、颜色、名称以及编写回调函数等。本设计主要用到下拉菜单、坐标系、框架和按钮,现分别介绍。
3.4 按钮设计:按钮键又称命令按钮或按钮,是小的长方形屏幕对象,常常在对象本身标有文本。将鼠标指针移至对象,单击鼠标按钮执行由回调字符串所定义的动作。单击空间框左侧的Push Button 按钮,在图形编辑框中确定其位置后单击鼠标左键即可放置现在开始编写回调函数,确定按钮功能。在按钮上单击鼠标右键,选择view-callbacks→callback 即可在M 文件中找到该按钮的回调函数位置。然后编写功能函数,本设计中该按钮的功能是绘制原始波形,那么只需要读取语音信号并画出波形。
3.5 坐标系设计:坐标轴对象是许多图形对象的父对象,每一个可视化显示用户数据的图形窗口都包含一个或多个坐标轴对象。坐标轴对象确定了图形窗口的坐标系统,所有绘图函数都会使用当前坐标轴对象或创建一个新的坐标轴对象,用于确定其绘图数据点在图形中的位置。单击空间框左侧的Axes 按钮,在图形编辑框中确定其位置后单击鼠标左键即可放置
3.6 框架设计:框架对象仅是带色彩的矩形区域,框架提供了视觉的分隔性,框架的style 属性值是Frame。在其他对象放入框架之前,框架应事先定义,否则框架可能覆盖控制框使他们不可见。语音信号处理是语音学与数字信号处理技术相结合的交叉学科,课题在这里不讨论语音学,而是将语音当做一种特殊的信号,即一种“复杂向量”来看待。也就是说,课题更多的还是体现了数字信号处理技术。用到了处理数字信号的强有力工具MATLAB,通过MATLAB 里几个命令函数的调用,很轻易的在实际化语音与数字信号的理论之间搭了一座桥。我们可以像给一般信号做频谱分析一样,来给语音信号做频谱分析,也可以较容易的用数字滤波器来对语音进行滤波处理。利用MATLAB的gui 界面设计。设计出了一个简易的用户应用界面,可以让人实现界面操作。更加方便的进行语音的频谱分析与滤波处理。
[1] 王备战.基于KM的电子政务技术的研究与实现[D].西北工业大学,2003.
[2] 付中华.说话人识别系统鲁棒性研究[D].西北工业大学,2004.
[3] 苏宏涛.基于统计特征的人脸识别技术研究[D].西北工业大学,2004.