语音信号处理(四):生成语音信号的语谱图

关于语谱图的简单介绍可以参考这篇文章
现代语音信号处理之语谱图(spectrogram)

下面对 ai d s t 这四个语音进行语谱图绘制

绘制代码如下

mkdir('***');%新建存放语谱图的文件夹
file='***';%声音信号所在文件夹
file1=strcat(file,'*.wav');
% file1='***';%(strcat:连接多个字符串)
file2=dir(file1);%获取文件夹下所有的wav文件(dir:读取文件夹下所有文件和文件夹/特定后缀的文件)
k=length(file2);%计算wav文件个数(length:数组长度,行数或者列数的较大值  size:数组的行数和列数 numel:元素总数)
R=512;%窗长
window=hamming(R);%汉明窗
N=512;%fft个数,与窗长相同
L=256;%步长
overlap=R-L;%帧长重叠部分,也叫帧移,一般重叠部分为50%
for i=1:k
    file3=strcat(file,file2(i).name);%单个音频的绝对路径
    [x,fs]=audioread(file3);%读取单个音频,fs是采样频率
    x1=x(:,1)%x为双声道,所以后面取单声道数据
    %plot(x1)%可以画波形图
    file4=strcat('***',file2(i).name,'.jpg')%语谱图命名方式和存储文件夹
    %x1=awgn(x1,100,'measured','linear');%可以加白噪
    subplot(2,2,i);
    
    specgram(x1,N,fs,window,overlap);%第一种:specgram无输出的时候,直接画出来
    saveas(gca,file4);%保存语谱图图片
    title('窄带语谱图');
    
   
end

宽带语谱图

语音信号处理(四):生成语音信号的语谱图_第1张图片

窄带语谱图

语音信号处理(四):生成语音信号的语谱图_第2张图片

你可能感兴趣的:(语音信号处理)