基于MATLAB的语音信号处理

2020-02-22 03:10郗华
现代信息科技 2020年17期
关键词:滤波

摘  要:随着智能化设备的广泛普及,语音信号作为智能化设备的一个重要的交互语言显得尤为重要,语音信号处理被广泛地应用在语音识别、智能控制、身份识别、智能家居等领域,MATLAB仿真软件具有强大的信号处理功能,能对语音信号进行平移、尺度变换、系统分析、时频转换和滤波等操作,文章借助MATLAB软件对语音信号进行处理,实现对语音信号的音效处理、时频分析、滤波处理等功能。

关键词:语音信号;时频处理;滤波

中图分类号:TN912.3      文獻标识码:A 文章编号:2096-4706(2020)17-0076-03

Abstract:With the widely using of intelligent equipment,the speech signal as an important interactive language of intelligent equipment are more and more important. The speech signal had been used in speech recognition,intelligent control,personal identification,smart home and other fields. MATLAB simulation software had powerful function of signal processing,it can be used in parallel moving,scale transformation,system analysis,time frequency transformation,filtering and other operation. In this paper,MATLAB software is used to process the voice signal to realize the sound effect processing,time-frequency analysis,filtering processing and other functions.

Keywords:speech signal;time-frequency processing;filtering

0  引  言

越来越多的智能设备和产品中集成了语音信号处理模块,语音信号处理作为计算机接口和人机交互的重要手段得到了广泛的应用,语音信号处理包含语音采集、语音分析、语音转换、语音识别、语音合成等内容,本文对录制语音进行了时域频域分析,并进行了变换以产生不同的音效,对录制的按键音进行了特征参数的分析与提取,最后设计了滤波系统对语音信号进行了滤波处理。

在西安工商学院开展课堂教学创新活动期间,对语音信号的采集和处理在“信号与系统”课程和“数字信号处理”课程的课堂创新教学中发挥了重要作用,作者通过对语音信号进行采集变换的方式,将变换前后语音音效及频谱图展示给学生,增强了学生对信号的感知和理解,提高了课堂效果。

1  原始语音信号读入

首先,利用电脑或者手机录制一段音频,时长在5秒以内,录制的音频格式如果不为.wav格式的话需要用相应的软件将音频格式转换成.wav,WAV是一种无损的音频格式,标准格式化的WAV文件,取样频率是44.1 kHz,量化数字为16位。

采用MATLAB在命令窗口输入[y,Fs,bits] = wavread('e:\ 1.wav')就可以把语音信号读取进来,原始语音信号放置在电脑E盘下面,命名为1,格式为.wav格式。其中y为语音采样后的数据,幅度已经归一化了;Fs为语音信号的采样率;bits为采样精度,可以求出语音信号的长度。采用n=length(y)可以求得语音信号的长度n,n=176 128,信号长度也由语音信号时长L(秒)和采样频率Fs决定,n=L*Fs。采用plot(y)将语音信号显示出来,系统默认自变量为采样后的顺序点数,如图1所示。

2  语音信号处理

为了让学生直观感受信号处理在实际中的用途,我们对采集的语音信号进行了变换处理,产生了回声和变音的两种音效。

通过对采集语音进行数学运算,利用延时叠加产生回声的音效,利用采集尺度变换即采集信号的频率参数发生变化来实现语音信号的变音效果,利用傅里叶变换将语音信号从时域变换到频域,再在频域对不同按键语音进行核心频率识别,最后设计了一个低通滤波系统对所采集语音进行滤波,消除高频分量,保留低频分量。具体的流程如图2所示。

2.1  回声音效

对语音信号进行时域延时,再和原始语音信号进行叠加就能产生回声的效果。对语音信号进行延时,做法是产生一个规格相同的0序列列向量叠加到语音信号之前。叠加延时后语音信号需要和原始语音信号长度相同,所以需要给原始语音信号后面补上相应的0序列。对于本语音,发现延时0.1秒到0.3秒回声效果相对较好。程序片段如下:

y1=[y;zeros(6000,1)];

y2=[zeros(6000,1);y];

y3=y1+y2;

sound(y3,Fs)

2.2  变音音效

实际中为了保护语音采访者的隐私,媒体一般都会对采访者的语音进行处理,在MATLAB环境中,为了达到对语音信号进行变声的效果,首先把原始语音信号采集进来后,通过改变播放时的播放频率,原始语音信号本身有一个采样频率,可以用一个更高的采样频率或者一个更低的采样频率对其进行采样,播放出来的音效就有了变音的功效。原始语音Fs=48 000 Hz,当采用采样频率为60 000 Hz进行播放时,sound(y,60 000),语音输出更清脆,因为采样频率变高了,语速变快,音调变高,声音更向女生的音色方向变化。同样的,采用采样频率为40 000 Hz对原始语音进行播放时,sound(y,40 000),我们听到了语音更低沉,更缓慢,音色更接近与男生的音色。调节此参数可以调节变声效果,从数学运算的角度,这等同于把原始语音信号进行尺度变换,把原来的信号在时域进行扩展和压缩。从语音信号的处理效果上来看,起到了很好的“变声”的效果。

2.3  频域变换

对比教学可以加深学生对知识和概念的掌握,实际中我们听到每一个人的音色都不一样,男生和女生的声音差异也比较大。为了区别每一个人的声音特征,我们可以通过傅里叶变换工具将语音信号变换到频域,然后分析语音的特征频段即语音幅度相对较大的20%比例的频段的特性。

语音信号的傅里叶变换在MATLAB中利用FFT来实现。FFT是离散时间傅里叶变换的快速算法,通过FFT得到的是信号的频域函数,一般情况下是一个复数,进行信号的频域分析时需要对这个复数分别取其模和相位,分析其幅频图和相频图,一般问题只需要分析到其幅频图就可以了。

根据傅里叶变换的特征,语音信号的幅度谱一般为对称图形,其自变量为整数,代表的是数字频率k。为了更好地理解,我们可以把自变量k转换成模拟频率f,转换公式:f=k*Fs/length(y)。

如图3所示,所录制信号的主要频率在0.8×104 Hz以内,低频尤其是0.5×104 Hz频段以内信号分布较多。

2.4  语音识别

人体语音包含的频段比较宽,我们选择了手机按键音进行语音识别。我们选取了某款手机按键数字分别为1、5、9的录音10组,利用傅里叶变换将按键音转换到频率,观察其特征频率。频域图形显示,按键音在频域出现了两个核心频段,记录该频段数值,利用统计学的手段,对10组语音的核心双频段的10个数值进行统计运算,求其算术平均值和标准差,然后根据算术平均值及其标准差得到测量结果。

由表1可以看出,相同按键音的核心频率相近,有个别频率变化较大,在实际中可以根据误差理论与数据处理中对测量数据中粗大误差的发现方法,进行异常值判定并剔除;把剩余的数据取平均值然后得到一个大概率的数据变化区间,对1、5、9按键音录取测试语音,取其核心频段进行测试识别。其中,数字1、5、9按键音的核心频率分别取了两个,1.1和1.2为数字1的按键音两个核心频率,2.1和2.2为数字5的按键音两个核心频率,3.1和3.2为数字9的按键音两个核心频率。

2.5  语音滤波系统设计

基于MATLAB的语音信号滤波器是一个能够实现给语音信号滤波的系统,滤波系统从功能上分为低通、高通、带通和带阻。滤波器的设计方法分为FIR数字滤波器设计方法和IIR数字滤波器设计方法,窗函数是常见的FIR数字滤波器設计方法,常见的窗函数有矩形窗、海明窗、汉宁窗、布拉克曼窗和凯塞窗等;IIR数字滤波器的设计方法有脉冲响应不变法和双线性变换法。本设计采用双线性变换法设计数字滤波器系统对原始语音信号进行处理,滤波程序片段如下:

Fp=2000;

Fs=3000;

Ft=80000;

As=100;

Ap=1;

wp=2*pi*Fp/Ft;

ws=2*pi*Fs/Ft;

[n,wn]=ellipord(wp,ws,Ap,As,'s');

[b,a]=ellip(n,Ap,As,wn,'s');

[B,A]=bilinear(b,a,1);

[h,w]=freqz(B,A);

由图4可以看出,语音信号原始的频率分布范围在0.8× 104 Hz以内,主要频率范围在0.5×104 Hz以内,我们设计的滤波系统通带截止频率和阻带截止频率分别为0.2×104 Hz和0.3×104 Hz,将0.2×104 Hz内信号进行保留,将0.3× 104 Hz以上信号进行滤除。由于滤除以后依然保留了原始语音的核心频段,滤波后语音用原有采样频率播放音频的语音效果和原始语音差别不大,可以通过调节通带和阻带截止频率的参数来改变保留信号的频段。

3  结  论

通过MATLAB对录制的语音进行延时叠加,变换采样频率,达到了回声混响音效处理和变音处理的音效;通过对录制语音进行时频变换处理并对比,得到男女音频域分布的差别和特征;通过对按键音进行频域特征频率识别,有效地对语音信号进行了识别;最后设计了低通滤波系统,对语音信号进行了低通滤波处理,消除了语音信号内频率在0.3× 104 Hz以上的频谱分量。采用MATLAB能方便快捷地对语音信号进行分析、变换和参数提取,给语音信号的后续分析处理打下了良好的基础。

参考文献:

[1] 刘婷,柳钰,薛小庆.MATLAB在语音信号处理中的应用 [J].电子测试,2018(23):74-75.

[2] 燕丽红.基于Matlab & GUI语音信号处理平台的设计 [J].计算机与数字工程,2020,48(1):267-270.

[3] 武轩然.基于MATLAB的语音信号处理 [J].电子制作,2019(14):55-58+63.

[4] 黄永忠.语音信号处理课程教学改革的探讨 [J].科技创新导报,2019,16(1):181-182.

[5] 申俊杰.MATLAB语音信号处理 [J].数字通信世界,2018 (6):87.

作者简介:郗华(1982.07—),女,汉族,陕西西安人,专职教师,讲师,硕士研究生,主要研究方向:信号的采集与处理。

猜你喜欢
滤波
基于小波域滤波的电子通信信道恶意干扰信号分离方法
应用于农业温度监测的几种滤波算法研究
对地铁车辆滤波电抗器日常维护及常见故障探究
试论地铁列车电容滤波和电感滤波的优缺点
高炉风口辐射图像滤波与分割
几种图像滤波处理方法比较
基于非下采样剪切波变换与引导滤波结合的遥感图像增强
基于联合采用EMD与高通低通滤波的信号分析
降低逆变器传导噪声滤波算法的选择与验证
基于正则化的高斯粒子滤波算法