资源简介

语音信号时频分析,包括语谱图,过零率,自编的自相关,用了三种方法(短时能量和过零率、谱熵法、Teager算子)进行端点检测,代码完整且测试通过

资源截图

代码片段和文件信息

clc
clear
[y1Fs]=wavread(‘clearspeech.wav‘);
[yFs]=wavread(‘clearspeech.wav‘);
%[yFs]=wavread(‘noisyspeech.wav‘);
l=length(y);
subplot(211);
plot(linspace(0(l-1)/Fsl)y1);
xlabel(‘time(s)‘);
title(‘The original signal‘);
hold on;
%find the endpoints of the original signal manully
plot([0.320.32][-11]‘r‘);
hold on;
plot([1.151.15][-11]‘g‘);
hold on;
plot([1.31.3][-11]‘r‘);
hold on;
plot([22][-11]‘g‘);
hold on;
plot([2.082.08][-11]‘r‘);
hold on;
plot([2.62.6][-11]‘g‘);
hold on;
plot([2.82.8][-11]‘r‘);
hold on;
plot([3.423.42][-11]‘g‘);
hold off;
tw=input(‘Please input the length of window(s):‘);
wl=floor(tw*Fs);
tm=input(‘Please input the length of moving step(s):‘);
ml=floor(tm*Fs);
%calculate the short time characteristics
[energymagnitudezerocro]=st_ener_mag_zc(yFswlml);
le=length(energy);
lz=length(zerocro);
%the threshold of energy
noise=energy(1:floor((0.3*Fs+1)/ml));
thresh_e=0.3;
%the threshold of zerocrossing rate
thresh_z=32;
%put the final signal in vector ys
ys=zeros(1l);
%preallocate
tp=zeros(1le);
j=1;
m=0;

for i=1:le
    %if energy is not less than thresh_ewe decide this frame is speechand
    %most likely voiced speech
    if energy(i)>thresh_e
        ys((i-1)*ml+1:(i-1)*ml+wl)=y((i-1)*ml+1:(i-1)*ml+wl);
        %if the former frame is a silence segment(m==0)then the index of
        %this frame is stored as the starting point of a speech segment
        if m==0
            tp(j)=i;
            j=j+1;
            m=1;
        end
    %if the zerocrossing rate is not less than thresh_zthis frame is most
    %likely unvoiced speech
    elseif zerocro(i)>thresh_z
        ys((i-1)*ml+1:(i-1)*ml+wl)=y((i-1)*ml+1:(i-1)*ml+wl);
        if m==0
            tp(j)=i;
            j=j+1;
            m=1;
        end
    else
        %a silence frame is found
        if m==1
            tp(j)=i;
            j=j+1;
            m=0;
        end
    end
end
wavwrite(ysFs[‘edp_double_‘num2str(thresh_e)‘_‘num2str(thresh_z)‘.wav‘]);

subplot(212);
plot(linspace(0(l-1)/Fsl)ys);
title(‘The result of endpoint detection using short time energy and zerocrossing‘);
xlabel(‘time(s)‘);
% hold on;
% %mark the endpoints of the signal after detection
% %note that the number of none-zero elements in vector tp is j-1not j
% for i=1:2:j-2
%     plot([(tp(i)-1)*ml/Fs(tp(i)-1)*ml/Fs][-11]‘r‘);
%     hold on;
%     plot([(tp(i+1)-1)*ml/Fs(tp(i+1)-1)*ml/Fs][-11]‘g‘);
%     hold on;
% end
% hold off;

%         


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2014-02-18 18:56  project1\
     文件        1828  2013-04-04 16:10  project1\Untitled.asv
     文件        1834  2013-04-08 08:54  project1\Untitled.m
     文件      330824  2002-06-25 12:47  project1\clearspeech.wav
     文件      330824  2013-04-08 09:32  project1\edp_double_0.3_32.wav
     文件      330824  2013-04-08 08:51  project1\edp_double_18_49.wav
     文件      330824  2013-04-04 19:55  project1\edp_double_18_49_noisy.wav
     文件      330824  2013-04-08 09:02  project1\edp_entropy_16_3.5.wav
     文件      330824  2013-04-08 08:58  project1\edp_entropy_16_3.wav
     文件      330824  2013-04-04 19:46  project1\edp_entropy_20_3.6.wav
     文件      330824  2013-04-08 09:03  project1\edp_entropy_64_4.6.wav
     文件      330824  2013-04-08 09:11  project1\edp_teager_0.004.wav
     文件     2025132  2013-04-30 09:08  project1\eg_f1.wav
     文件        2600  2013-04-08 08:42  project1\epd_doublethresh.asv
     文件        2604  2013-04-08 09:32  project1\epd_doublethresh.m
     文件        3388  2013-04-08 08:57  project1\epd_spec_entropy.asv
     文件        3388  2013-04-08 09:03  project1\epd_spec_entropy.m
     文件        2616  2013-04-08 09:07  project1\epd_teager.asv
     文件        2615  2013-04-08 09:10  project1\epd_teager.m
     文件        1835  2013-04-14 19:34  project1\find_thresh_ez.asv
     文件        1839  2013-04-14 20:04  project1\find_thresh_ez.m
     文件        3525  2013-04-02 08:52  project1\my_spectrogram.asv
     文件        3504  2013-04-02 08:55  project1\my_spectrogram.m
     文件      330824  2002-06-25 12:47  project1\noisyspeech.wav
     文件        1409  2013-03-31 15:38  project1\project1_1.asv
     文件        1402  2013-04-30 09:26  project1\project1_1.m
     文件         422  2013-03-25 16:51  project1\project1_2.asv
     文件         421  2013-04-08 20:36  project1\project1_2.m
     文件        2193  2013-04-03 21:40  project1\project1_3.asv
     文件        2183  2013-04-13 23:30  project1\project1_3.m
     文件         598  2013-05-05 16:43  project1\revised_autocor.asv
............此处省略3个文件信息

评论

共有 条评论