我正在寻找一些软件,这些软件可以让我在Skype上与某人交谈时听音乐.问题是,如果你用扬声器这样做,音乐也会转移到另一个用户,这是我想要避免的.
所以我正在考虑写一些东西,通过听我的音乐应用程序的输出,从发送到Skype的麦克风输入中取消那些声音.
我已经搜索了一下Google,但也许有人可以用一些指针/想法等启动这个项目……
编辑:之前有人使用过JACK吗?
解决方法
您想要做的与电话中的Echo取消基本相同.
http://www.voip-info.org/wiki/view/Asterisk+echo+cancellation简单介绍.另外看看那里的mark和mark2 echo canceller以及上面提到的TI application note的页面.
还有这个网站:
http://www.embeddedstar.com/articles/2003/7/article20030720-1.html
很好地解释了这些机制.
你必须截取音乐播放器的输出和麦克风输入,然后通过某种IPC将样本传递到你的DSP过程中. JACK实际上是这样做的,但是进行设置(例如ALSA-> JACK桥,如果您的音乐播放器和/或Skype本身不支持JACK作为声音接口)确实需要一些技巧.
我想它可以运行得相当好,但它可能需要相当多的cpu.特别是XRUNS(音频缓冲区欠载或溢出)对你的回声消除器来说真的很糟糕,即你可能需要实时的Linux内核补丁.实施也不是微不足道的.从音乐播放器获得立体声也会降低取消成功率.
HTH