7

我正在考虑编写一些软件,让我可以在与 Skype 上的某人交谈时听音乐。问题是,如果您使用扬声器执行此操作,音乐也会传输给其他用户,这是我想要避免的。

所以我正在考虑写一些东西,通过收听我的音乐应用程序的输出,消除来自发送到Skype的麦克风输入的那些声音。

我在谷歌上搜索了一下,但也许这里有人可以用一些指针/想法/等来启动这个项目......

编辑:以前有人用过杰克吗?

4

2 回答 2

8

您要做的与电话中的回声消除基本相同。

http://www.voip-info.org/wiki/view/Asterisk+echo+cancellation是简单的介绍。还可以查看 mark 和 mark2 回声消除器的页面以及提到的TI 应用说明

还有这个网站: http : //www.embeddedstar.com/articles/2003/7/article20030720-1.html 很好地解释了机制。

您必须拦截音乐播放器的输出和麦克风输入,然后通过某种 IPC 将样本传递到您的 DSP 进程中。JACK 实际上是这样做的,但是设置(例如 ALSA->JACK 桥,如果您的音乐播放器和/或 Skype 本身不支持 JACK 作为声音接口)确实需要一些技巧。

我想它可以很好地工作,但它可能需要相当多的 CPU。尤其是 XRUNS(音频缓冲区不足或溢出)可能对您的回声消除器非常不利,即您可能需要实时 linux 内核补丁。实施也不是微不足道的。音乐播放器的立体声也会降低您的取消成功率。

高温高压

于 2011-02-02T22:33:42.630 回答
0

一般来说,当谈到降噪时,它是由于以下两件事的优先顺序:

  1. 硬件 - 具有降噪功能的 MIC/耳机或已内置该功能的内部声卡 MIC。

  2. 软件 - 一个很好的例子是 Skype,AFAIK SKype 允许您微调音频质量,但不幸的是,到目前为止,微调部分仅存在于 Windows 平台中。在 Linux 中,您可以在“首选项”>“声音设备”中选择“允许 Skype 自动调整我的混音器级别”复选框的选项。

我的理解是,在降噪方面,您必须处理声音汽车驱动程序编程,目前在未来的 Ubuntu 软件版本中会注意到带有上述功能的一些噪音,这里提到了。

于 2011-02-02T14:59:50.970 回答