Twistronics Blog

Matlab音频转换实验

April 28, 2016

实验准备

使用 Matlab_straight 进行此次音频实验,不过在运行源代码时matlab提示出现以下错误

WAVWREAD will be removed in a future release. Use AUDIOREAD instead.

还有

WAVWRITE will be removed in a future release. Use AUDIOWRITE instead.

使用 audioread、audiowrite 函数修改相对应的源代码,错误消失后继续实验

实验1:A to X声音转换

  • 首先是原版郭德纲的音频:guodegang.wav

    • 使用 Matlab_straight 进行修改

    1 保存为guodegang1.wav,此时音频为

    • 继续修改

    2

    保存为guodegang2.wav,此时音频为

    • 继续修改

    3

    保存为guodegang3.wav,此时音频为

  • 然后是著名评书演员单田芳的音频 : shantianfang.wav

    使用 Matlab_straight 进行修改

    • 使用 Matlab_straight 进行修改

    4 保存为shantianfang1.wav,此时音频为

    • 使用 Matlab_straight 进行修改

    5 保存为shantianfang2.wav,此时音频为

    • 使用 Matlab_straight 进行修改

    6 保存为shantianfang3.wav,此时音频为

实验2:A to B声音转换

  • 首先,对于源音频A/sen6000.wav

和目标音频B/sen6000.wav

观察它们的声学特征 7

9

然后进行调整 8

保存为res/sen6000.wav

  • 同理,继续对A/sen6015.wav进行修改

    目标音频B/sen6015.wav

    修改后音频res/sen6015.wav

  • A/sen6028.wav进行修改

    目标音频B/sen6028.wav

    修改后音频res/sen6028.wav

  • A/sen6044.wav进行修改

    目标音频B/sen6044.wav

    修改后音频res/sen6044.wav

  • A/sen6147.wav进行修改

    目标音频B/sen6147.wav

    修改后音频res/sen6147.wav

实验3:声音转换评价

首先对音频进行傅里叶变换,然后分别计算它们之间的 Euclidean distance 和 Bhattacharyya distance。测试它们的声音距离。在这里直接使用matlab进行距离计算

file = 'ttt.wav';
[y,Fs] = audioread(file);
Nsamps = length(y);
t = (1/Fs)*(1:Nsamps);     
y_fft = abs(fft(y));     
y_fft = y_fft(1:Nsamps/2);     
f = Fs*(0:Nsamps/2-1)/Nsamps;    

直接做傅里叶变换 距离结果

  • Euclidean distance

    A/sen6000.wav  B/sen6000.wav  9.6655e+03  
    res/sen6000.wav  B/sen6000.wav  4.7692e+03
    A/sen6000.wav  res/sen6000.wav  4.1568e+03

    好像做过变换之后差距会小一点,但效果不大

  • Bhattacharyya distance

    A/sen6000.wav  B/sen6000.wav  0.3803 
    res/sen6000.wav  B/sen6000.wav  0.3252
    A/sen6000.wav  res/sen6000.wav  0.3351

对于郭德纲音频

  • Euclidean distance

    guodegang.wav  guodegang1.wav  1.1593e+04 
    guodegang.wav  guodegang2.wav  1.2155e+04
    guodegang.wav  guodegang3.wav  1.3041e+04
  • Bhattacharyya distance

    guodegang.wav  guodegang1.wav  0.3138
    guodegang.wav  guodegang2.wav  0.3276
    guodegang.wav  guodegang3.wav  0.2863