一、获取代码方式

获取代码方式1:

完整代码已上传我的资源:​​【短时平均过零率】基于matlab语音信号短时平均过零率【含Matlab源码 1721期】​


二、短时平均过零率原理简介

短时平均过零率表示一帧语音中语音信号波形穿过横轴的次数

三、部分源代码

clear all; clc; close all;
filedir=[]; % 设置路径
filename='s.wav'; % 设置文件名
fle=[filedir filename]; % 构成完整的路径和文件名
[xx,Fs]=audioread(fle); % 读入数据文件
x=detrend(xx); % 消除直流分量
wlen=200; inc=80; % 设置帧长、帧移
win=hanning(wlen); % 窗函数
N=length(x); % 求数据长度
X=enframe(x,win,inc)'; % 分帧
fn=size(X,2); % 获取帧数
zcr1=zeros(1,fn); % 初始化

time=(0:N-1)/Fs; % 计算时间坐标
frameTime=frame2time(fn,wlen,inc,Fs); % 求出每帧对应的时间
% 作图
subplot 211; plot(time,x,'k'); grid;
title('语音波形');
ylabel('幅值'); xlabel(['时间/s' 10 '(a)']);
subplot 212; plot(frameTime,zcr1,'k'); grid;
title('短时平均过零率');
ylabel('幅值'); xlabel(['时间/s' 10 '(b)']);

四、运行结果

【短时平均过零率】基于matlab语音信号短时平均过零率【含Matlab源码 1721期】_matlab

五、matlab版本及参考文献

1 matlab版本

2014a

2 参考文献

[1]韩纪庆,张磊,郑铁然.语音信号处理(第3版)[M].清华大学出版社,2019.

[2]柳若边.深度学习:语音识别技术实践[M].清华大学出版社,2019.

[3]宋云飞,姜占才,魏中华.基于MATLAB GUI的语音处理界面设计[J].科技信息. 2013,(02)