【语音分析】语音信号短时时域分析【含Matlab源码 3029期】

在这里插入图片描述

⛄一、获取代码方式

获取代码方式1:
完整代码已上传我的资源:【语音分析】基于matlab语音信号短时时域分析【含Matlab源码 3029期】
点击上面蓝色字体,直接付费下载,即可。

获取代码方式2:
付费专栏Matlab语音处理(初级版)

备注:
点击上面蓝色字体付费专栏Matlab语音处理(初级版),扫描上面二维码,付费29.9元订阅海神之光博客付费专栏Matlab语音处理(初级版),凭支付凭证,私信博主,可免费获得1份本博客上传CSDN资源代码(有效期为订阅日起,三天内有效);
点击CSDN资源下载链接:1份本博客上传CSDN资源代码

⛄二、语音信号短时时域分析简介

语音信号短时时域分析是一种对语音信号进行时间分析的方法。它将语音信号划分为多个短时窗口,并在每个窗口内对语音信号进行时域分析。这种分析方法可以用于许多语音处理任务,例如语音识别、语音合成和语音增强等。

短时时域分析的基本步骤如下:

分帧:将整个语音信号划分为多个短时窗口,通常窗口长度为10-30毫秒。这样做的目的是在时间上保持语音信号的稳定性,假设在每个窗口内语音信号是稳定的。

加窗:对每个窗口内的语音信号应用窗函数,常见的窗函数包括汉明窗、矩形窗等。窗函数的作用是减小频谱泄露现象,使得频谱分析更准确。

傅里叶变换:对加窗后的语音信号进行傅里叶变换,将时域信号转换为频域信号。这样可以得到每个窗口内语音信号的频谱信息,包括其频率成分和幅度。

特征提取:从频谱中提取特征用于后续的语音处理任务。常见的特征包括短时能量、短时平均过零率、梅尔频谱系数等。

通过短时时域分析,可以获得语音信号的局部特征,帮助我们理解语音信号的含义,并进一步进行语音处理和分析。

⛄三、部分源代码

function [y F0 w_y]=Auto_function_xx(w, N, S , i_f, Fs)
st_f = (i_f-1) * S + 1;
en_f = (i_f-1) * S + N;
y=zeros(N);
w_y=zeros(N);
F0=0;
for k=0 :N-1
for j=0 : N-1
y(k+1)=y(k+1)+w( st_f + j ) * w (st_f + j + k );

    end
end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%削波
q=sort(y);
if (q(N)<0.05)
return
end
std=q( N-4 );
F0=1;
for i=1 : N
if (y(i) > std ) w_y(i)=1;
else if (y(i) < -std) w_y(i)=-1;
else w_y(i)=0;
end
end
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
s=1;
e=s+16;
while (w_y(s) ~= 1 )
s=s+1;
end
while ((w_y(e) ~= 1)&& (e<=N) )
e=e+1;
end
if (e==N)
F0=0;
return;
end
F0=Fs/(e-s);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
s=e+16;
while ( (w_y(s) ~= 1 )&& (s<=N) )
s=s+1;
end
if (abs(Fs/abs(e-s) - F0)>50 )
F0=0;
return;
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
end

⛄四、运行结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

⛄五、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1]韩纪庆,张磊,郑铁然.语音信号处理(第3版)[M].清华大学出版社,2019.
[2]柳若边.深度学习:语音识别技术实践[M].清华大学出版社,2019.

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除

  • 23
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Matlab领域

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值