2011-02-02 47 views
7

我正在看編寫一些軟件,這將允許我在與Skype上的某個人交談時聽音樂。問題是,如果你用揚聲器做到這一點,音樂也會轉移到其他用戶,這是我想避免的。Linux上的軟件聲音取消(破壞性干擾)工具?

所以我想寫點東西,通過聽我的音樂應用程序的輸出,從麥克風輸入發送到Skype取消這些聲音。

我已搜查谷歌了一下,但也許有人在這裏可以kickstart的這個項目有一些指針/創意/等..

編輯:有沒有人用過JACK

回答

7

你想要做的事情基本上和電話中的回聲消除一樣。

http://www.voip-info.org/wiki/view/Asterisk+echo+cancellation很簡單的介紹。另請參閱標記和mark2回波消除器的頁面以及提及的TI application note

也是這個站點: http://www.embeddedstar.com/articles/2003/7/article20030720-1.html 解釋力學很好。

您必須截取音樂播放器的輸出和麥克風輸入,然後將樣本通過某種IPC傳遞到您的DSP過程中。 JACK實際上是這樣做的,但是設置一些東西(例如,如果你的音樂播放器和/或Skype本身不支持JACK作爲聲音界面,則ALSA-> JACK bridge)需要一些技巧。

我想它可以工作得很好,但它可能需要相當多的CPU。特別是XRUNS(音頻緩衝區溢出或溢出)可能對您的回聲消除器非常不利,即您可能需要實時Linux內核補丁。實施也不是微不足道的。從音樂播放器播放立體聲也會降低您的取消成功率。

HTH

+0

謝謝你的回答。我現在試着潛入:-) – o1iver 2011-02-04 17:28:29

0

一般來說,當涉及到噪音消除,它是在優先順序,由於兩件事情:

  1. 硬件 - 無論是與噪音消除功能一個MI​​C /耳機或已建成的內置聲卡的MIC該功能。

  2. 軟件 - 一個很好的例子是Skype,AFAIK SKype允許您微調音頻質量,但不幸的是迄今爲止調諧部分只存在於Windows平臺中。在Linux中,您可以在首選項>聲音設備中選擇「允許Skype自動調整我的混音器級別」複選框。

我的理解是,當噪聲消除來了,你要處理的聲音車司機節目,目前有幾個噪聲指出到未來的Ubuntu的軟件版本攜帶所述特徵,有here提及。

+0

感謝您的鏈接。然而這並不是我想要做的。從理論上講,聲音是來自skype/msn/etc還是音樂來自哪裏,因爲我想在聲音界面級別(在Skype下面)管理它,這應該不重要。 Skype甚至不應該知道這個應用程序正在運行。我想修改Skype的輸入(麥克)信號,然後到達Skype ... – o1iver 2011-02-02 15:06:54