【问题标题】:Removing Vocals from sound file in Matlab在 Matlab 中从声音文件中删除人声
【发布时间】:2013-01-18 06:40:57
【问题描述】:

我正在使用 Matlab 分离声音文件的左右声道。代码可以编译,但并没有从声音文件中完全删除人声。这是为什么呢?

代码如下:

 [y,fs]=wavread('On the floor.wav');

 left=y(:,1);
 right=y(:,2);


 wavplay(left-right,fs);

【问题讨论】:

  • 你在右边听到什么,你在左边听到什么?
  • 人声被抑制了一点,但并没有完全消失。我怎样才能做到这一点?我在这段代码中遗漏了什么
  • 在matlab中播放文件时如何停止声音播放。我在工作区中尝试过clear playsnd,但它不起作用
  • 我很惊讶你甚至在这方面取得了一些成功。如果它真的那么简单,试试left-2.0*right 或找到一个最小化abs(left-f*right)f 然后计算left-f*right。您还可以像 y=y(1:ceil(size(y,1)/10),:) 一样截断 y 以仅处理歌曲的前 10 个。
  • 好的,你能告诉我如何在播放 matlab 时停止音乐

标签: matlab audio signal-processing


【解决方案1】:

声音抑制是一个困难问题,是大量学术和商业研究的主题。在学术界,这种问题被称为源分离,近年来一直是博士研究的热门课题;因此存在大量文献。

您似乎正在实施的方法是在立体图像的中心减去节目素材。如果正确实施(参见上面的评论),这可能会很好地抑制某些轨道上的一些人声,但也会将大量其他材料混合到您希望保留的中心。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多