matlab提取语音信号特征

原谅我上课走神了,,结果用了更多的时间去补偿自己上课浪费的时间。。。
以后课前一定做好预习,课后及时做好反馈,整个下来其实花的时间也不是很多,归根结底还是自己tcl

基本要求

  1. 录音,自己读5个数字0-4,然后录下来转成单声道的wav文件

  2. 求基音
    基音的求法可以比较简单,就是通过加w=20ms,160个样点的汉明窗,然后计算出短时自相关函数,取最大值就是基音的频率

  3. 通过LP,求预测增益,画出数字0的预测增益

m4a转wav格式

matlab

[y,fs] = audioread('5num.m4a');
audiowrite('5num.wav', y(:,1), 8000)

这样就转成了wav格式的文件

当然我比较偷懒,本来双声道应该是要做一点处理再变成单声道的,但是为了方便就直接变好了

求基音频率

这里当然我是不知道写代码的,所以用了别人的代码,下面好好分析一下:

说实话我有点晕不知道应该是怎么说比较好

栗1

x = audioread('5num.wav');
figure(1);
stem(x, '.');

n=160; %每一帧160个样点

for m=1:length(x)/n;%帧的个数
    for k=1:n;%一帧有160个点
        Rm(k)=0;
        % 求自相关函数
        for i=(k+1):n;
            Rm(k)=Rm(k)+x(i+(m-1)*n)*x(i-k+(m-1)*n);
        end
    end
    p=Rm(30:n);
    [Rmax,N(m)]=max(p);
end

首先读入音频,然后分帧,每一帧是160个样点,取出每一帧来,通过

        for i=(k+1):n;
            Rm(k)=Rm(k)+x(i+(m-1)*
  • 11
    点赞
  • 137
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值