• 大小: 3KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-05-28
  • 语言: Matlab
  • 标签: 语音信号  

资源简介

matlab语音信号某段语音的特征值提取

资源截图

代码片段和文件信息

close all; 
clear all; 
[xfsbit]=wavread(‘2.wav‘);%读语音数据数据放入了Xfs代表采样率,bit代表采样位数 
framelength=240;%设置帧长,%30ms under 8khz 
framenumber=fix(length(x)/(framelength));%总的数据帧数 
totaltime=length(x)/fs;%该段语音总的时间长度 
sp1=x(fix(1.1*fs):(fix(1.1*fs)+framelength+framelength-1));%1.1*fs=8.8秒处为浊音始点,取两帧 
sp2=x(0.8*fs:(0.8*fs+framelength+framelength-1));%0.8*fs=6.4秒处为清音始点,取两帧 
d=0;%初始化,浊音波峰判断 
R1=0;%初始化,浊音一个基音周期内帧数 
%计算每帧的能量 
for i=1:framenumber; 
   E(i)=0;%短时能量初始化 
   Z(i)=0;%短时过零率初始化 
   M(i)=0;%短时平均幅度初始化 
   K(i)=0;%短时零能比初始化 
   for j=(framelength*(i-1)+1):framelength*i; 
       E(i)=E(i)+x(j)*x(j);  %第i帧短时能量 
   end 
   for j=(framelength*(i-1)+2):framelength*i; 
       Z(i)=Z(i)+abs(sign(x(j)-0.2)-sign(x(j-1)));%第i帧短时过零率 
   end 
   for j=(framelength*(i-1)+1):framelength*i; 
       M(i)=M(i)+abs(x(j)); 
   end 
 M(i)=M(i)/framelength;%第i帧短时平均幅度 
    

end 
   for i=1:framelength; 
       R(i)=0; 
       for j=1:framelength; 
  R(i)=R(i)+sp1(j)*sp1(i+j);%浊音的短时自相关函数 
          end 
      if (R(i)>=110.11) 
          R(i)=110.11;%修正最高波峰最大值为110.11 
          d=d+1;%当波峰为110.11时,自加一 
      end 
  if (d==1)%以第一个波峰110.11为起始点,下一个波峰110.11为终点

评论

共有 条评论