美文网首页
感悟及语谱图代码实现

感悟及语谱图代码实现

作者: sunnylxs | 来源:发表于2018-01-11 19:48 被阅读0次

    今天看了杨澜采访李飞飞的视频和开讲啦施一公的视频,感触颇多,现在的社会太过于浮躁,多多听听正能量的东西是非常有必要的,李飞飞的成就让我很是钦佩,她对人工智能,计算机视觉的热爱很感染我,以及想为国家,为社会做出贡献的这颗心让我很感动,施一公等创建的西湖大学,相信未来会培养一批又一批的国家的栋梁之才,国家的繁荣发展要依靠青年也能成就青年,虽然现在只是一个小小的研究生,但是梦想还是要有的,万一实现了呢,哈哈。希望看到这个帖子的同学也能去看一下这2个视频,会有所收获的。

    下面是对文件夹里声所有的.wav文件提取语谱图特征的基于matlabde 的代码,注释非常清晰了

    mkdir('general');%创建保存声谱图的文件夹

    file = 'C:\Users\li\Desktop\无噪音频\general\'; % 语音文件夹 

    file1 = strcat(file, '*.wav'); 

    file2=dir(file1);%搜索.wav 后缀的文件 

    k=length(file2);%统计文件的数目 

    R=1024;%设置窗函数长度 

    window=hamming(R);%使用汉明窗 

    N=1024;%短时傅立叶函数点数 

    L=512;%步长 

    overlap=R-L;%窗重叠点数 

    for i=1:k 

        file3 = strcat(file, file2(i).name); 

        [x,fs]=audioread(file3);%读取.au 文件

        xx=double(x);%预加重处理

        xx=filter([1 -0.97],1,xx);

        %str1 = strcat('C:\Users\li\Desktop\yinpin\琵琶夹\trainpp\bad\classicalshengputu\', file2(i).name);%记录.wav 文件名字 

        str1 = strcat('C:\Users\li\Desktop\无噪音频\general\general\', 'general');%记录.wav 文件名字 

        figure('visible','off')

        %x= awgn(x,5,'measured','linear');

        [S,F,T]=spectrogram(xx,window,overlap);%生成声谱图 

        y=20*log10(abs(S)+eps);%如需要在转换实数和虚数 

        %[y,PS] = mapminmax(y,0,1);%如需要归一化成[0,1]调用 

        [y,PS] = mapminmax(y,-1,1);%如需要归一化成[-1,1]调用 

        y = y*255;%归一化ss后需转化成声谱图调用 

        y=uint8(y);%归一化后需转化成声谱图调用 

        axis off;%关闭坐标 

        imagesc(y);%把矩阵绘制成图时调用,imagesc(A) 将矩阵A中的元素数值按大小转化为不同颜色

        %colormap gray %如果需要声谱图为灰度声谱图调用

        str2=strcat(str1,'_'); 

        str2=strcat(str2,num2str(i-1)); 

        set(gcf,'position',[0,0,200,256]);%设定 figure 的位置和大小,此处大小为 200*200   

        set(gca,'position',[0 0 1 1]);%调整坐标轴位置时调用,去掉边框,不去掉保存会有一圈灰色的 

        f=getframe(gcf); %直接保存为声谱彩图,大小由上面呢参数决定 

        imwrite(f.cdata,strcat(str2,'.png'),'png');   

        close(gcf) 

    end 

    相关文章

      网友评论

          本文标题:感悟及语谱图代码实现

          本文链接:https://www.haomeiwen.com/subject/ksvtoxtx.html