如何将回音语音转换为普通语音?

时间:2012-11-07 17:19:53

标签: matlab wav

我正在研究MatLab并试图提高自己。

我目前已将一些.wav文件转换为带有

功能的回显版本
function [ ] = lab2echo(alpha,m )

fil=wavread('daffy.wav'); 
fil=transpose(fil);
fil2=[fil zeros(1,m)];
shifting_fil=[zeros(1,m) fil];
fil_echo=alpha*shifting_fil;
result=fil2+fil_echo;
sound(result);
end

现在我想编写一个将回显语音转换为旧版本的函数。

有没有简单的方法呢?

2 个答案:

答案 0 :(得分:2)

计算信号与自身的互相关。你应该得到两个高峰。峰值之间的差异应该是回声延迟。

答案 1 :(得分:0)

很可能不是一个简单的方法。但您可以尝试首先使用xcorr自行交叉关联信号以找出滞后。然后你必须估计回声的贡献并减去它。

可能有一个值α,可以最小化signal + alpha*delayed_signal的能量,其中alpha> 0。