由于题目没有具体说明要加入的嗓声是什么,我这里以一个简单的人声音频文件为例进行演示。

  1. 读取音频文件并绘制时域图

使用 audioread 函数读取音频文件,并使用 plot 函数绘制时域图。

[x, Fs] = audioread('sample.wav');
t = (0:length(x)-1)/Fs;
plot(t, x);
xlabel('Time (s)');
ylabel('Amplitude');
title('Time Domain Signal with Voice');
  1. 绘制加入嗓声后的时域图

为了在时域图中加入嗓声,可以将原始音频信号与一个人声音频信号相加。这里我使用了一个高音女声的音频文件。

voice = audioread('voice.wav');
y = x + 0.5 * voice(1:length(x));
plot(t, y);
xlabel('Time (s)');
ylabel('Amplitude');
title('Time Domain Signal with Voice');

在绘制时域图时,我将人声音频信号的振幅调整为原始音频信号的一半,以免人声音频信号过于突出。

  1. 绘制加入嗓声后的频域图

使用 fft 函数将加入嗓声后的音频信号转换为频域信号,并使用 plot 函数绘制频域图。

Y = fft(y);
f = (0:length(Y)-1)*Fs/length(Y);
plot(f, abs(Y));
xlabel('Frequency (Hz)');
ylabel('Magnitude');
title('Frequency Domain Signal with Voice');

这里需要注意的是,频域信号是对称的,因此只需要绘制前一半即可。另外,使用 abs 函数将频域信号的虚部取绝对值后再绘制

通过 matlab 绘制加入嗓声图像的时域及频域图

原文地址: https://www.cveoy.top/t/topic/fa9n 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录