Matlab中声音文件中人声的去除
我使用Matlab分离声音文件的左声道和右声道。代码可以编译,但不能完全从声音文件中删除人声。为什么呢 代码如下:Matlab中声音文件中人声的去除,matlab,audio,signal-processing,Matlab,Audio,Signal Processing,我使用Matlab分离声音文件的左声道和右声道。代码可以编译,但不能完全从声音文件中删除人声。为什么呢 代码如下: [y,fs]=wavread('On the floor.wav'); left=y(:,1); right=y(:,2); wavplay(left-right,fs); 人声抑制是一个难题,是许多学术和商业研究的主题。在学术界,这种问题被称为源分离,近年来已成为热门的博士研究课题;因此有大量的文献存在 您似乎正在实施的方法是减去立体图像中心的节目材料。当正确地执
[y,fs]=wavread('On the floor.wav');
left=y(:,1);
right=y(:,2);
wavplay(left-right,fs);
人声抑制是一个难题,是许多学术和商业研究的主题。在学术界,这种问题被称为源分离,近年来已成为热门的博士研究课题;因此有大量的文献存在
您似乎正在实施的方法是减去立体图像中心的节目材料。当正确地执行(见上面的评论)时,这可能会抑制某些曲目上的一些人声,但也会导致大量其他材料混入您希望保留的中心 你在右边听到了什么,在左边听到了什么?人声被抑制了一点,但没有完全消失。我该怎么做?我是否在这段代码中遗漏了什么,以及如何在matlab中播放文件时停止声音播放。我在工作区中尝试了
clear playsnd
,但它不起作用,我很惊讶你竟然在这方面取得了一些成功。如果它真的那么简单,请尝试left-2.0*right
或找到一个f
来最小化abs(left-f*right)
,然后计算left-f*right
。您也可以截断y
如y=y(1:ceil(大小(y,1)/10),:)
只处理歌曲的前10首。好的,您能告诉我如何在播放音乐时停止音乐吗