您现在的位置:首页 >> 语音处理 >> 内容

基于mfcc和DTW语音信息特征提取算法matlab仿真

时间:2023/4/15 23:35:30 点击:

  核心提示:A997,包括程序操作录像...

1.完整项目描述和程序获取

>面包多安全交易平台:https://mbd.pub/o/bread/ZJeblZxq

>如果链接失效,可以直接打开本站店铺搜索相关店铺:

点击店铺

>如果链接失效,程序调试报错或者项目合作可以加微信或者QQ联系。

2.部分仿真图预览


3.算法概述

       由于即使同一个人不同时间发出同一个声音,也不可能具有相同的长度,因此就需要用到动态时间归正(DTW)算法。把时间归正和距离测度计算结合起来的一种非线性归正技术。DTW 本质上是一个简单的动态规划算法,是用来计算两个维数不同的向量之间的相似度的问题,即计算向量 M1 和 M2 的最短距离。是一种非常常用的语音匹配算法。

4.部分源码

function [mj,melNo]= Melfilterbank(STFf,frq,frameNo,points)

melNo=25; %number of mel filters

syms mel(freq)

mel(freq)=1127*log(1+freq/700);             % mel scale

center=zeros(1,(melNo+2));

freq1=7000;

freq0=50;

center(1)=mel(freq0);

hbandwidth=(mel(freq1)-mel(freq0))/(melNo+1);% half of bandwidth of each mel filter in mel scale

for i=2:melNo+2

    center(i)=center(i-1)+hbandwidth;  % center of each filter in mel scale

end

for i=1:melNo+2

    center(i)=(exp(center(i)/1127)-1)*700; %moving centers to normal frequency scale

end

mj=zeros(frameNo,melNo);

for i=1:melNo

    for j=1:frameNo

        for k=1:(points/2)+1

            if frq(k)>center(i) && frq(k)<center(i+1)

                melresult=STFf(j,k)*((1/(center(i+1)-center(i)))*(frq(k)-center(i)));

            elseif frq(k)>center(i+1) && frq(k)<center(i+2)

                melresult=STFf(j,k)*((-1/(center(i+2)-center(i+1)))*(frq(k)-center(i+2)));

            else

                melresult=0;

            end

            mj(j,i)=melresult^2+mj(j,i);

        end

    end

end

mj=log10(mj);

A997

作者:我爱C编程 来源:我爱C编程
本站最新成功开发工程项目案例
相关评论
发表我的评论
  • 大名:
  • 内容:
  • FPGA/MATLAB商业/科研类项目合作(www.store718.com) © 2025 版权所有 All Rights Reserved.
  • Email:1480526168@qq.com 站长QQ: 1480526168