语音信号短时域分析之短时平均能量(四)

本文探讨了语音信号处理中的短时能量分析方法,详细解释了如何通过计算短时平均能量来区分清音和浊音,以及在高信噪比环境下识别有声和无声段。此外,还提供了MATLAB代码示例,展示了如何实现语音信号的短时能量计算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       因为语音信号的能量随时间而变化,清音和浊音之间的能量区别相当显著。因此对短时能量和短时平均幅度进行分析,能够描写叙述语音的这样的特征变换情况。定义n时刻某语音信号的短时平均能量E为:

                             

式中,N为窗长,可见短时能量为一帧样点值的加权平方和。当窗函数为矩形窗时

                                                                                       

        短时平均能量用途:

       (1) 能够作为区分清音和浊音的特征參数;

       (2) 在信噪比比較高的情况下,短时能量能够作为区分有声和无声的根据;

       (3) 能够作为辅助的特征參数用于语音识别中。

       当中短时能量matlab代码例如以下: 

x = wavread('beijing.wav');
%计算N=50,帧移=20时的语音能量
s=fra(50,20,x);               
s2=s.^2;                    %一帧内各样点的能量
energy=sum(s2,2);            %求一帧能量
subplot(2,2,1);               %定义绘图数量和布局 
plot(energy);                %画N=50时的语音能量图
xlabel('帧数');               %横坐标
ylabel('短时能量 E');         %纵坐标
legend('N=50');              %曲线标识
axis([0,1500,0,2*10^10]);      %定义横纵坐标范围

取不同帧时能量例如以下图:

                                                                          

当中,fra()为分帧函数,matlab代码例如以下:

function f=fra(len,inc,x)
fh=fix(((size(x,1)-len)/inc)+1)
f=zeros(fh,len);
i=1;n=1;
while i<=fh
    j=1;
    while j<=len
        f(i,j)=x(n);
        j=j+1;n=n+1;
    end
    n=n-len+inc;
    i=i+1;
end

转载于:https://www.cnblogs.com/ldxsuanfa/p/10856260.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值