第1章 语音信号的提取与播放
1.1提取
使用audioread()函数对语音信号进行提取;
[Vc,fs]=audioread('voice.wav');
说明: audioread:语音信号采集函数;
Vc:语音信号向量;
fs:语音信号频率;
‘voice.wav’:文件名与文件类型,需要和matlab的.m文件放在同一文件夹,或者使用语音文件的完整地址。
1.2播放
使用sound()函数进行语音的播放;
sound(Vc,fs);
说明:
Vc:需要播放的语音信号向量;
fs:需要播放的语音信号频率;(值可以自设,大于原频率则偏向于女声,小于原频率则倾向于男声。)
第2章 绘制语音信号的时域与频域图
2.1时域图:
Vc_N=length(Vc); %音频信号采样数量
T=(Vc_N-1)/fs; %音频信号时间长
t=0:1/fs:T; %时间序列
figure(1); %绘图1
plot(t,Vc); %原始信号的时域波形Vc
title('语音信号的时域波形Vc(t)'); %图形标签
xlabel('t(s)'); ylabel('Vc'); %xlabel:x轴标签;ylabel:y轴标签
2.2频域图:
Vc_f=fft(Vc); %离散傅里叶变换
说明: Vc_f:傅里叶变换后的向量
Vc: 信号向量
Vc_f直接用来画图只能显示出基本趋势,需要进一步处理才能显示出频率与幅值的关系。
Vc_fFs=fs*(0:Vc_N/2)/Vc_N; %频率向量 有效频率范围只有采样频率的一半
Vc_f1=abs(Vc_f/Vc_N); %取绝对值
Vc_fr= Vc_f1(1:Vc_N/2+1);
Vc_fr(2:end-1) = 2* Vc_fr(2:end-1); %除第一项都要加倍
数据处理完成,开始画图
figure(2);
plot(Vc_fFs,Vc_fr); %原始信号的频域波形
title('原始信号的频域波形Vcfr(f)'); %图形标签
xlabel('f(hz)'); ylabel('Vcffr'); %xlabel:x轴标签;ylabel:y轴标签