APP下载

MATLAB在数字语音课程教学中的应用

2015-04-21罗敏娜蔡云凤

关键词:频谱滤波器语音

罗敏娜, 蔡云凤

(1. 沈阳师范大学 计算机与数学基础教学部, 沈阳 110034; 2. 沈阳师范大学 科信软件学院, 沈阳 110034)



MATLAB在数字语音课程教学中的应用

罗敏娜1, 蔡云凤2

(1. 沈阳师范大学 计算机与数学基础教学部, 沈阳 110034; 2. 沈阳师范大学 科信软件学院, 沈阳 110034)

MATLAB在数字语音处理方面功能强大,利用MATLAB软件解决数字语音课程教学中存在的难点,通过对时域、频域及二者相结合的过程进行分析,构建将理论结果可视化和基本概念直观化相结合的多媒体课程教学模式。MATLAB在语音课程教学中的实现过程,首先是将数字语音读取,查看其波形图。其次是录入数字语音并保存。最后经过对数字语音的滤波、叠加、预处理等过程,实现对数字语音的分析和重构。逐步改变了教学方法和教学手段,从而达到培养学生的学习兴趣和操作能力的目的。

MATLAB; 数字语音; 课程教学; GUI工具

0 引 言

MATLAB是由美国math works公司推出的,它在一个视图窗口中集成了数值分析、矩阵计算以及非线性动态系统的仿真和建模等功能。它在许多方面,如控制论、时间序列分析、系统仿真、图像信号处理等都提供了很好的使用功能[1-6]。

矩阵是MATLAB中的一个基本数据单位,数学、工程中一些常用的表达形式与MATLAB中的一些指令表达式都十分相似,所以,用MATLAB解答一些问题要比用C、FORTRAN等语言完成相同的事情要简单方便很多,并且在MATLAB新版中已经加入了对C、FORTRAN、JAVA、C++的支持,在新版中已经存在一些经典的程序,使用者可以直接调用已存在的一些函数,下载后可直接使用[7-10];也可以根据自己需求编写程序,导入到MATLAB函数库中去,便于以后进行调试使用。

对于数字语音教学课程的开展,可以使用MATLAB软件制作的GUI界面工具,通过该软件将语音输入进去,然后将语音转变成波形图,再将语音形象具体地展现给学习该课程的同学们[11],最后通过进一步的具体分析和比较,确定出不同声音之间的差别,从而让学生更加清楚地知道语音之间的差异,以及不同发生方式产生的不同结果。对于这门数字语音教学课,可以扩展到很多学科,对于涉及语音学习的课程都可以引入。

1 MATLAB在语音信号处理中的应用

1.1 相关函数介绍

1.1.1 自相关函数

对于离散的语音信号x(n),它的自相关函数定义为[3]:

R(k)=∑x(n)x(n-k)

自相关函数与信号x(n)具有相同的周期性,且二者的周期一定相同。在自相关函数中,当一个周期是整数倍的周期信号时,它的自相关函数就可以达到最大值。所以,在研究自相关函数时,可以不考虑它的起始时间,而是通过自相关函数的第一个最大值的位置,来估计出信号的基音周期[12]。

1.1.2 短时自相关函数

语音信号不一定是平稳的信号,应该使用短时自相关函数来处理问题。短时自相关函数的具体使用方法是在信号的第n个样本点附近,用短时窗截取一段信号[4],再做自相关计算所得的结果

Rm(k)=∑x(n)x(n-k)

其中n表示窗函数是从第n点开始加入。

1.2 时域及频域分析

1.2.1 时域分析

作为最直接的信号分析方法是将时间定为自变量进行信号的分析,短时能量、短时平均过零率、短时平均幅度差和短时自相关数是语音信号典型的时域特征。

对于信号x(n),它的短时能量定义:

图1 短时能量En输出过程

式中:h(n)=w2(n);N为窗长;En代表一种短时能量,它是在信号的第n个点开始加窗函数时产生的。短时能量En可以看成是语音信号的平方经过一个线性滤波器的输出,该线性滤波器的单位冲激响应为h(n)[13],如图1所示。

1.2.2 频域分析

人的听觉系统能够进行频谱分析,感知语音的过程与之密切关联,因此对语音信号进行频谱分析是处理语音信号的重要方法。

滤波器组法

使用滤波分析语音信号的频谱,方法简单,并且实时性好,滤波器可以用宽(窄)带带通滤波器代替。

语音信号x(n)可以通过计算机进行分析和处理。首先将语音信号x(n)输入带通滤波器f1,f2,…,fn,通过滤波器输出具有一定频带的中心频率为f1,f2,…,fn的信号,经过滤波器组输出的信号,再经过自适应增量调制器变为二进制脉冲信号,再经过多路开关,变为一连串的二进制脉冲信号[14],这就完成了滤波器信号的采集工作。

傅里叶频谱分析

法国科学家Fourier提出傅立叶频谱分析方法,它是语音信号频域分析中最为常用的一种方法,傅立叶变换是傅立叶频谱分析的基础,傅立叶谱、自相关函数、功率谱、倒谱可以利用傅立叶变换及其反变换求得。

信号x的短时傅立叶变换为[6]:

图2 利用带通滤波器来理解短时傅里叶变换

式中w(n)为窗口函数。图2表示利用带通滤波器来理解短时傅立叶变换。

Xn(ejw)可以看作是加窗后函数的傅立叶变换,为了实现反变换,将Xn(ejw)进行频率采样,即令wk=2πK/L则有

其中L为频率采样点数。

短时功率谱可以通过短时傅里叶变换幅度来计算,也就是短时傅里叶变换幅度的平方,它是信号x(n)的短时自相关函数的傅里叶变换,即

式中Rn(k)是自相关函数。

2 使用GUI工具创建交互界面

GUI是MATLAB提供的图形用户界面开发环境,可以使用里面的工具创建图形界面,实现页面布局等工作的简化。

MATLAB在GUI设计中有4个模板,分别是Blank GUI、GUI Uicontrols、GUI with Axes and Menu、Modal Qupestion Dialog。

SPTool是MATLAB中的一个窗口,在这个窗口中可以进行交互式信号分析处理,通过这一窗口能够让使用者在不完全了解MATLAB的信号处理工具的函数语法规则下,就可以进行大部分的信号分析处理。窗口有信号(Signal)、滤波器(Filter)、频谱(Spectra)3栏,用户能够使用鼠标在计算机屏幕上面控制数字语音信号的观察、测量和时域分析,观测滤波器的时域和频域特性,设计和实现数字滤波器以及观察信号的频谱,分析信号的频率成分等[15]。

除此之外,MATLAB还能提供其他的工具,如窗函数设计工具 Wintool、随机噪声生成器RANDTool以及数字滤波器设计分析工具FDAtool等等。

3 实践处理过程

MATLAB在语音教学课程中的实现过程,主要是将数字语音读取,并查看其波形图;录入数字语音并保存;经过对数字语音的滤波、叠加、预处理等过程,实现对数字语音的分析和重构。

由于随着时间的推移和对教学的深入研究,在教学中运用的功能和模块将会进行更加复杂和庞大的GUI界面集成的编写。在这里只设置了其中的4个应用方面。

3.1 数字语音的播放读取

3.1.1 GUI界面:

进入语音播放读取的界面,点击“打开”,将会打开.wav格式的音频文件,其波形图会在左边的第1个曲线绘制框里面描绘出语音文件的原始语音信号,左边的第2个曲线绘制框将绘制出语音文件的信号频谱。

其余按钮(从上至下)的功能依次为:关闭GUI界面、将选择的音频文件进行播放、暂停播放、继续播放、停止播放等。

3.1.2 实现过程的函数

表1 实现播放读取过程的函数

3.2 数字语音的录入

3.2.1 GUI界面

进入语音输入GUI界面,主要功能有:

【滚动条】: 选择需要录入的时间长度(2 s~9 s)。

【记录】: 该按钮是开始触发系统对输入的语音进行记录和采集,按键被点击之后会提示 “开始录音”的字样,表示已经进入数字语音采样阶段。当采样完成之后,会将其采样的文件记录下来,自动绘制出其具体的波形图。

【播放】: 录入的语音文件将会播放。

【保存】: 将语音文件保存为后缀名为.wav格式。

【退出】: 退出GUI界面。

3.2.2 实现过程的函数

表2 实现语音录入过程的函数

3.3 数字语音的分析和重构

MATLAB软件对数字语音的分析与重构,重在表现对语音的深入分析,从它的原始信号,频谱信号,haar分解信号,haar分解频谱信号以及haar小波4层分解后重构信息化与原始信号的比较等方面对一段语音进行完整的分析。该GUI是由3个独立界面组合而成的,为了直观分析和查看到具体信息,采用多个曲线坐标轴来绘制曲线[16-17]。

GUI界面包括:原始语音信号和频谱信号的坐标轴图;haar的3种分解信号和频谱信号。

实现过程:

由于此GUI界面是由3组直观图所组成,即存在3个M文件:test.m(主函数),MallatDec.m(小波分解),MallatRec.m(小波重构),见表3。

表3 GUI界面直观函数

3.4 数字语音的集成处理

在语音教学课程中,难免需要一些综合型的小系统来处理一些大量的语音文件来提高教学效率。因此在前面的研究和学习中,将一些常用的功能集成在一起,以便能够更加直观的了解语音文件的详细信息。

在研究过程中,通过查找图书馆的相关书籍和文案,并且上网查找了一些资料,将这个小系统集成在一起,虽然实现了大部分的功能,但是在将来更深入的研究之中,需要更加有效的集成更多有用的工具。

在这部分,实现了语音信号从输入到分析再到显示的过程,显示的部分包括数据和波形图。

4 结 语

本文对数字语音信号的处理做了简略的介绍,将整个实践过程的图形和界面进行了展示,给出了相关的函数,由于代码量相对较大,没有给出程序代码。MATLAB软件功能真的很强大,对于语音教学这部分的应用仅仅是很小的一个部分,这里只是做出一个较为简略的应用界面,对于语音信号噪声处理的部分也并没有涉及。MATLAB对于语音信号的处理实现了从声音到数字图形的转换,对于语音教学课程的学习将产生很大的帮助,为了更好地与实际相结合,需要更多的实践作为基础,这部分有待以后更为具体的研究。

[ 1 ]何强,何英. MATLAB扩展编程[M]. 北京:清华大学出版社, 2002:59-123.

[ 2 ]王洪元. MATLAB语言及其在电子信息工程中的应用[M]. 北京:清华大学出版社, 2004:42-112.

[ 3 ]张德喜,贺勤,张永. MATLAB在工程数学课程教学中的应用[J]. 许昌学院学报, 2010,29(5):137-140.

[ 4 ]胡冰,李艳方. MATLAB软件在高等数学课程教学中的应用[J]. 中国科教创新导刊, 2007,38(9):154-155.

[ 5 ]曹昕燕. 基于MATLA的数字语音信号处理课程改革[J]. 长春大学学报, 2007,12(4):95-97.

[ 6 ] 程佩青.数字信号处理教程[M]. 3版. 北京:清华大学出版社, 2007:110-157.

[ 7 ]唐俊波,费秀海,尹国成. MATLAB在数学教学中的几类应用[J]. 保山学院学报, 2010,29(5):84-88.

[ 8 ]徐国钰.基于多小波的基音检测法及歌声的客观评价研究[D].桂林:广西师范大学, 2006:22-47.

[ 9 ]丁玉美,高西全. 数字信号处理[M]. 西安:西安电子科技大学出版社, 2006:56-92.

[10]童峰,李霞. MATLAB在“信号与系统”课程教学中的应用[J]. 电气电子教学报, 2007,29(1):82-84.

[11]田慧. 支持向量机集成及在音乐分类中的应用[D]. 济南:山东师范大学, 2009:5-26.

[12]巩萍,赵杰. MATLAB在数字信号处理中的应用[J]. 长沙大学学报, 2009(9):78-79.

[13] 武丽,姜斌,张海瑞. MATLAB在数字信号处理教学中的应用[J]. 科技传播, 2012,3(2):179.

[14]汪冰. 小词汇非特定人的孤立词语音识别系统的研究与设计[D]. 广州:广东工业大学, 2008:8-24.

[15]王坤,刘天伟,杜芳芳,等. MATLAB在对图像进行边缘检测方面的应用[J]. 沈阳师范大学学报:自然科学版, 2005,23(2):161-165.

[16]陈贵明. 应用Matlab建模与仿真[M]. 北京: 科学出版社, 2001:20-60.

[17]杨行峻,迟惠生. 语音信号数字处理[M]. 北京: 国防工业出版社, 1995:32-74.

Application of MATLAB in digital speech course teaching

LUOMinna1,CAIYunfeng2

(1. Department of Basic Computer and Math, Shenyang Normal University, Shenyang 110034, China;2. Software Cellege, Shenyang Normal University, Shenyang 110034, China)

As a powerful tool in digital speech processing, MATLAB can be used to solve many problems appeared in digital speech course teaching. Through the analysis of time domain, frequency domain and the process of combining both, a multimedia course instruction model is constructed based on the combination of visualizations of both theoretical results and basic concepts. In the course of the digital speech course teaching, the digital speech is read and the waveform graph is checked in the first place. Secondly, the digital speech is input and saved. At last, the analysis and reconstruction of digital speech is realized after the process of the filtering, superposition and pretreatment of the digital speech. Through the improved teaching method and teaching means, the students’ learning interest and operation ability are cultured.

MATLAB; digital speech; course teaching; GUI tool

2015-03-26。

国家自然科学基金青年科学基金资助项目(61104023); 辽宁省教育厅大学生创新创业项目(201310166059)。

罗敏娜(1965-)女,辽宁锦州人,沈阳师范大学教授。

1673-5862(2015)03-0400-05

TP319

A

10.3969/ j.issn.1673-5862.2015.03.018

猜你喜欢

频谱滤波器语音
一种用于深空探测的Chirp变换频谱分析仪设计与实现
魔力语音
基于MATLAB的语音信号处理
从滤波器理解卷积
基于MQ3与MP3的价廉物美的酒驾语音提醒器
一种基于稀疏度估计的自适应压缩频谱感知算法
对方正在输入……
开关电源EMI滤波器的应用方法探讨
基于Canny振荡抑制准则的改进匹配滤波器
基于TMS320C6678的SAR方位向预滤波器的并行实现