西安电子科技大学-信号与线性系统大作业-歌曲人声消除

西安电子科技大学-信号与线性系统大作业-歌曲人声消除

  • 简介
  • 一、内容与要求
  • 二、思路与方案
    • 2.1 立体声消除人声
      • 2.1.1 基本原理
      • 2.1.2 通过左右两声道的音频消除人声
    • 2.2 设计带阻滤波器消除人声
      • 2.2.3 基本原理
      • 2.2.4 通过设计带阻滤波器消除歌曲中的人声
  • 三、成果及展示
    • 3.1 导入音频
    • 3.2 左右声道相减,消去人声
    • 3.3 使用带阻滤波器消去人声
    • 3.4 最终效果
  • 四、总结与感想
  • 五、附录

简介

  本文旨在给学弟学妹做大作业时提供思路,学校作业可能会查重,学弟学妹使用的时候一定要读懂后进行修改!!!
  如果发现哪里有错可以评论留言。
  代码和报告见我的GitHub找相应的课程,求个Star:XDU_HW,里面还有其他课程的代码和报告

一、内容与要求

  本文通过歌曲立体声和滤波的知识实现对歌曲中人声的消除并较好地保留背景音乐。使用 设计仿真程序,对不同歌曲进行测试,从而验证并实现了其可行性。

二、思路与方案

2.1 立体声消除人声

2.1.1 基本原理

  假设有两个信号

  当我们分别去听这两个信号时,听到的声音是完全一样的。当我们把这两个信号相加,得到一段新的音频信号

  得到的就是一条幅值为零的直线,听不到任何声音。

2.1.2 通过左右两声道的音频消除人声

  由2.1.1我们可以知道,两个振幅、频率完全相同的音频信号相位相差 时,人耳听到的两者声音没有区别,并且把这两个振幅、频率完全相同且相位相差 的两个音频信号相加后,声音被消除了,根据这个原理,我们可以消除歌曲中的人声。
对于一般的立体声歌曲,人能够感受到立体的原因是左右两个声道的伴奏在频率、振幅和相位上有区别,而人声在左右两个声道是基本一致的。
  假设人声信号为 ,左声道的伴奏为 ,右声道的伴奏为 ,则左右声道的音频分别为

  我们将左声道减去右声道得到新的左声道音频信号 ,再把右声道减去左声道得到新的右声道音频信号

  对于单声道输出设备,新的左右声道的信号会相互消除,所以当使用单声道输出设备时,可以令 ,使声音正常输出。

2.2 设计带阻滤波器消除人声

2.2.3 基本原理

  消除声音的另一种方法是把音频信号在某一段频率的能量使用带阻滤波器降为零,从而使原信号中某一段频率的声音消失。

2.2.4 通过设计带阻滤波器消除歌曲中的人声

  经过查阅的资料,男歌声的频率大约在 之间,而女歌手的频率大约在 之间,我们可以设计两个带阻滤波器,分别滤除这两个频率范围内的音频信号来消除人声。

三、成果及展示

  使用 设计仿真程序,完整代码见附录一。

3.1 导入音频

  使用 中的 函数导入一段音频,并差分左右声道,分别进行离散傅里叶变换,得到的左右声道时域和频域的结果如下图所示。

西安电子科技大学-信号与线性系统大作业-歌曲人声消除_第1张图片

3.2 左右声道相减,消去人声

  先左声道减去右声道得到新的左声道音频信号,再把右声道减去左声道得到新的右声道音频信号。得到新的左右两声道的音频信号的时域与频域结果如下图所示。

西安电子科技大学-信号与线性系统大作业-歌曲人声消除_第2张图片

3.3 使用带阻滤波器消去人声

  使用 中的 函数设计两个 阶的带阻滤波器,信号的截至频率分别为 和 。再用 函数对最新得到的左右声道音频信号使用刚刚得到的带阻滤波器进行滤波,滤波后得到的最终左右声道时域和频域的结果如下图所示。

西安电子科技大学-信号与线性系统大作业-歌曲人声消除_第3张图片

3.4 最终效果

  运行程序,对不同的歌曲进行人声消除,效果都十分显著,人声几乎消失,达到了要求。

四、总结与感想

  本文通过左右声道相减和带阻滤波器的方式对歌曲中的人声进行消除,并用 进行实现,实现了实践的要求。
  通过本次实践,我对音频的原理有了更深的理解,对滤波器的使用有了经验,通过把书本中的知识运用到实际问题中,不仅对知识有了更加深刻的理解,还对信号与线性系统这门课有了更浓的兴趣。

五、附录

完整代码可以在歌曲人声消除MATLAB实现下载

你可能感兴趣的:(信号处理,matlab)