Open Journal of Acoustics and Vibration
Vol.05 No.02(2017), Article ID:20971,7 pages
10.12677/OJAV.2017.52005

Two-Way Sound Signals Analysis and Procession System Based on MATLAB-GUI

Xiuhui Chen, Yuxuan Zhao, Kai Qin, Jing Wang*

College of Electronic Science and Engineering, Nanjing University of Posts and Telecommunications, Nanjing Jiangsu

Received: May 24th, 2017; accepted: Jun. 12th, 2017; published: Jun. 15th, 2017

ABSTRACT

A GUI for signal procession system for single-way or two-way sounds is presented, based on MATLAB, where various operations can be carried out such as analysing sound signals, adding noise, filtering by window function method. On account of the noise at different frequencies added to the original sound signal, applicable window function can be utilized to complete filtration independently. This experiment manifests that it is convenient to understand sound signals and filter’s characteristics on this GUI, because of its simplified procedures and friendly interface, which makes this GUI perfect for teaching use.

Keywords:Two-Way, Sound Signal, FIR Filter, Window Function, MATLAB-GUI

基于MATLAB的双声道语音信号分析 及处理系统

陈秀慧,赵宇轩,秦锴,王靖*

南京邮电大学电子科学与工程学院,江苏 南京

收稿日期:2017年5月24日;录用日期:2017年6月12日;发布日期:2017年6月15日

摘 要

基于MATLAB设计了一个支持单、双声道的语音信号处理系统,可实现语音信号的分析、加噪及窗函数滤波。针对语音信号中所添加的不同频段的噪声,可自主地选择合适的窗函数完成噪声滤波,并进行各种滤波效果的对比。实验表明:该系统界面友好、操作简单,便于直观了解语音信号和滤波器特性,可用于作教学演示等。

关键词 :双声道,语音信号,FIR滤波器,窗函数,MATLAB-GUI

Copyright © 2017 by authors and Hans Publishers Inc.

This work is licensed under the Creative Commons Attribution International License (CC BY).

http://creativecommons.org/licenses/by/4.0/

1. 引言

语音具有一定的音调和音强 [1] 。音调指声音的高低,取决于声波的频率,低频部分装载着语音的大部分信息;高频部分主要起着修饰和润色的作用,装载信息较少。声音的强弱称为音强,是由声波振动幅度决定的。在日常生活和通信中,噪声对信息的传递有着严重的干扰,了解噪声的特性并且掌握消除噪声的方法有一定的实际意义。在语音分析处理 [2] [3] 时,数字滤波器相较模拟滤波器具有可靠性高、稳定性好、灵活性强的特点 [4] [5] ,不存在阻抗匹配的问题,同时可对较低频率实现滤波。

图形用户界面(Graphical User Interface,简称GUI)是指采用图形方式显示的计算机操作用户界面。与命令行界面相比,图形界面对于用户来说在视觉上更易于接受。

目前,基于MATLAB-GUI的语音信号处理系统普遍具有语音信号分析、加噪及滤波功能 [6] - [13] ,但主要是针对单声道语音信号,且存在滤波滤波器种类单一、缺乏各类窗函数滤波性能比较而不便于选择等问题 [6] [7] [8] [9] ;少数系统虽也可对双声道信号进行处理,但无法实现左/右声道选择、加噪与滤波 [10] [11] [12] ,且GUI界面参数修改麻烦、效果不直观 [13] 。

鉴于此,本文综合了目前大多数系统所具有的基本功能,进一步提出了基于窗函数法的语音信号滤波的GUI系统。本系统可通过预置各类噪声,实现对单、双声道语音信号的加噪,并实现对带噪声语音信号的频谱分析、滤波器性能比较,以及语音滤波等功能。

2. 系统框图

系统平台由四个模块组成:语音库、添加噪声、滤波器设计和滤波分析,如图1所示。

3. 系统模块设计

1) 语音库模块。库内可存放各种单声道和双声道语音信号。采集语音信号的方法很多,如利用WINDOWS操作系统自带的录音机录制,或利用MATLAB2014工具箱的audioread函数,其对双声道语音同样适用。

2) 添加噪声模块。系统可提供单频噪声和高斯噪声。其中,单频噪声由余弦函数产生,高斯噪声由awgn函数产生,加噪语音信号为语音信号与等长高斯噪声的线性叠加。在添加噪声时,可直接设置噪声频段,并通过“信噪比”任意控制噪声强度。应注意,在调用audioread函数对语音信号添加噪声时,需要对左右声道分别加噪。

3) 滤波器设计模块。利用MATLAB工具箱自带的fir1函数 [14] 和kaiserord函数 [15] ,采用窗函数法

(a) (b)

Figure 1. System realization block diagram; (a) Layout of main interface; (b) Modular structure

图1. 系统实现框图;(a) 主界面面板布置;(b) 模块结构

设计出六种滤波器,并可直接在界面上可修改滤波器参数、对比不同滤波器的优劣,最终选择出满足指标的滤波器。

4) 滤波分析模块。调用MATLAB工具箱的fftfilt函数 [14] 完成滤波,调用plot函数画出滤波后信号的时域图和频域图,调用freqz函数 [16] 查看所设计滤波器的幅频及相位特性。

4. 图形用户界面操作

系统由主界面和子界面组成,其中主界面(如图2所示)分为控制区和显示区,子界面用于显示帮助。主界面的控制区具有模块选择功能及参数设置功能,显示区可用来显示控制区的操作结果。操作时,主界面自动隐去了与当前操作无关的操作按钮,使操作更加清晰、简洁。

4.1. 主界面操作

点击“打开”按钮,选择已采集的原始语音。选择“左”或“右”复选框(若二者均不选,则默认为双声道语音),再点击“播放”按钮可播放对应声道的语音,并可查看其时域波形和频谱图。

在“噪声类型”下拉菜单中选择噪声(高斯噪声和单频噪声)类型,并设置合适的信噪比与噪声频段。通过选择“左”或“右”复选框,选择噪声添加的信道(若二者均不选,则默认两个声道均加入噪声)。

在滤波器选择模块中,选择需要的滤波器类型——“高通”、“低通”、“带通”、“带阻”四种;在“窗函数”菜单中,选择所需要的窗函数类型——“巴特利特”、“布莱克曼”、“汉明”、“汉宁”、“切比雪夫”、“凯泽”六种窗函数。对“噪声特性”分析,确定噪声的频段,此可作为噪声带宽完成相应滤波器设计的依据。再点击“滤波”按钮,会显示符合设计要求的滤波器的幅频特性图、滤波后语音信号的时域图,以及滤波后语音信号的频域图,同时出现滤波结果模块操作按钮。点击“清除”按钮,返回到初始界面。

滤波操作后,点击各“查看”按钮,可放大滤波结果原图,并可对其进行后期处理。

图2所示为系统主界面和滤波器设计过程示例。首先,从语音库中选择一个语音信号,如 双声道语音文件“XPquit2.wav”,在左声道添加频域范围为3000 Hz~10,000 Hz、信噪比为6 dB的高斯噪声。点击“加噪”,则出现左声道加噪(而右声道不变)的双声道时域及频域图;再点击“噪声特性”按钮,出现受噪声污染的语音信号的时域波形及频谱。此时若点击“播放”按钮(调用工具箱中sound函数),则可明

Figure 2. System main interface

图2. 系统主界面

显听见与刺耳的高频背景噪声。然后,分析噪声频域图,合理设置滤波器参数,如3000 Hz~10,000 Hz 的“凯泽”、“带阻”,再点击“滤波”按钮并分析滤波后的频域图可知,该频段内的噪声已基本被滤除。最后,选择“左”/“右”复选框,再点击“播放”按钮,则可播放对应声道的语音。

4.2. 子界面操作

系统有4个子界面,分别由相应的按钮控制。点击“窗函数特性”按钮,可弹出相同指标下不同窗函数的阶数及幅频特性子图;“噪声特性”可以弹出噪声信息子图;“滤波结果对比”能同时比较6种窗函数的滤波结果;“两次对比”可以给出两次滤波效果的对比,如图3所示。

5. 结论分析

5.1. 滤波特性

本系统采用经典滤波器完成语音信号滤波操作,而为获得良好的滤波效果,需预设噪声的种类和频段。由图2可知,在滤除3000 Hz~10,000 Hz高斯噪声的同时,双声道语音文件“XPquit2.wav”在同频段内的高频分量也将被消除,可明显听到滤波后的语音回放较为低沉。图4所示为8 kHz单频噪声对单声道语音文件“XPquit.wav”的影响。分析可知,由于样本语音的能量主要集中在低频0~2 kHz,未与噪声频率发生混叠,故可较好地滤除该单频噪声。

5.2. 滤波器窗函数分析

滤波器设计时所选窗函数不同,滤波器的幅频特性之间存在着较大的差别。图5所示为一个过渡带宽为100 Hz、截止频率为8000 Hz窗函数的幅频特性,从中可清晰地看到窗函数幅频特性之间的差异。其中,使用凯泽窗设计数字滤波器时,系统会根据滤波器指标自动选取最符合要求的b值。当凯泽窗的b选取为几个特定的数值时 [14] ,凯泽窗会变成某些特定的窗函数。例如,在阶数N相同的条件下,b = 0时,凯泽窗变为矩形窗;b = 5.44时,凯泽窗近似于汉明窗,但凯泽窗旁瓣频谱收敛得更快,汉明窗除0.037%能量外都在主瓣之内,而凯泽窗除0.012%能量外都在主瓣之内,因此能量更为集中;b = 8.5时,

Figure 3. Comparison between the result of this filtering operation and the last one

图3. 操作前后两次滤波效果对比

Figure 4. Effect of a single-frequency noise on sounds

图4. 单频噪声对语音信号的影响

凯泽窗近似于布莱克曼窗。图6所示为汉明窗、布莱克曼窗和凯泽窗这三种常见的窗函数幅频特性对比。

因此,若加入的噪声频率远离语音频段,对滤波器截止频率和过渡带宽要求就越宽松,噪声对语音信号的影响也就越便于观察。

6. 结束语

基于MATLAB设计了一款支持单、双声道语音信号分析及滤波处理的GUI系统。通过选择、预置两种噪声类型及其频段,并有针对性地选择六种不同的窗函数,系统可完成滤波器设计及相应的带噪声

Figure 5. Amplitude-frequency characteristics of window functions

图5. 窗函数幅频特性

Figure 6. Comparing Kaiser window’s amplitude-frequency characteristic with others

图6. 凯泽窗与其它常见窗函数的比较

语音信号滤波;反复调整滤波参数后,即可达到最佳的滤波效果。另外,系统操作时自动隐去了与当前操作无关的操作控件(按钮),使界面更加清晰、简洁。

本系统操作简便、结果显示清晰、实用性强,可用于语音信号分析和滤波原理的教学演示。

基金项目

南京邮电大学大学生创新项目(XYB2016073)。

文章引用

陈秀慧,赵宇轩,秦 锴,王 靖. 基于MATLAB的双声道语音信号分析及处理系统
Two-Way Sound Signals Analysis and Procession System Based on MATLAB-GUI[J]. 声学与振动, 2017, 05(02): 27-33. http://dx.doi.org/10.12677/OJAV.2017.52005

参考文献 (References)

  1. 1. 姚天任. 数字语音处理[M]. 武汉: 华中科技大学出版社, 1992.

  2. 2. 王彬, 于丹, 汪洋. MATLAB数字信号处理[M]. 北京: 机械工业出版社, 2010.

  3. 3. 张德丰. MATLAB数字信号处理与应用[M]. 北京: 清华大学出版社, 2010.

  4. 4. 赵颖, 刘祖深, 等. 基于MATLAB的FIR数字滤波器的方法设计[J]. 国外电子测量技术, 2012, 31(10): 35-37.

  5. 5. 徐靖涛, 王金根. 基于MATLAB的语音信号分析和处理[J]. 重庆科技学院学报(自科版), 2008, 10(1): 132-136.

  6. 6. 冯浩. 基于MATLABGUI的FIR数字滤波器语音信号去噪处理[J]. 菏泽学院学报, 2016, 38(5): 68-72.

  7. 7. 陈然, 张霞萍. 基于MATLAB GUI的FIR数字滤波器设计与仿真[J]. 南京晓庄学院学报, 2015(6): 15-20.

  8. 8. 申艳, 陈后金, 薛健, 郝晓莉, 周航. 基于Matlab加噪语音的FIR滤波器设计[J]. 电气电子教育学报, 2011, 33(2): 41-44.

  9. 9. 窦海鹏. 数字滤波语音信号除噪设计[J]. 长春工业大学学报(自然科学版), 2013, 34(6): 663-667.

  10. 10. 张学敏, 吕晓丽, 钟菲. 基于MATLAB图形用户界面的语音去噪分析实现[J]. 长春工程学院学报(自然科学版), 2015, 16(4): 97-99.

  11. 11. 周玲. 基于MATLAB的语音信号数字滤波处理[J]. 安庆师范学院学报, 2011, 17(3): 46-49.

  12. 12. 冯彦君, 靳鸿, 章晓眉. 应用MATLAB分析语音信号[J]. 光电技术应用, 2011, 26(3): 57-60.

  13. 13. 张康, 刘雅. 基于MATLAB的音频文件数字滤波处理[J]. 计算机与现代化, 2007(12): 98-100.

  14. 14. 余成波, 陶红艳, 杨菁, 等. 数字信号处理及MATLAB实现[M]. 第二版. 北京: 清华大学出版社, 2007.

  15. 15. 从玉良. 数字信号处理原理及其MATLAB实现[M]. 北京: 电子工业出版社, 2015.

  16. 16. 杨述斌, 李永全. 数字信号处理实践教程[M]. 武汉: 华中科技大学出版社, 2007.

期刊菜单