您想要做的与电话中的Echo取消基本相同.
http://www.voip-info.org/wiki/view/Asterisk+echo+cancellation简单介绍.另请参阅那里的mark和mark2 echo canceller的页面以及提到的TI应用笔记.
此网站:http: //www.embeddedstar.com/articles/2003/7/article20030720-1.html很好地解释了这些机制.
您必须截取音乐播放器的输出和麦克风输入,然后通过某种IPC将样本传递到DSP过程中.JACK实际上是这样做的,但是设置(例如ALSA-> JACK桥,如果您的音乐播放器和/或Skype本身不支持JACK作为声音接口)确实需要一些技巧.
我想它可以运行得相当好,但它可能需要相当多的CPU.特别是XRUNS(音频缓冲区欠载或溢出)对你的回声消除器来说真的很糟糕,即你可能需要实时的linux内核补丁.实施也不是微不足道的.从音乐播放器获得立体声也会降低取消成功率.
HTH