7

スカイプで誰かと話しているときに音楽を聴くことができるソフトウェアを作成することを検討しています。問題は、スピーカーでこれを行うと、音楽が他のユーザーにも転送されることです。これは避けたいことです。

そこで、私の音楽アプリケーションの出力を聞くことで、スカイプに送信されたマイク入力からの音を相殺する何かを書くことを考えていました。

私はGoogleを少し検索しましたが、ここの誰かがこのプロジェクトをいくつかのポインタ/アイデア/などでキックスタートできるかもしれません...

編集: 誰かが以前にJACKを使用したことがありますか?

4

2 に答える 2

8

やりたいことは基本的に電話のエコーキャンセルと同じです。

http://www.voip-info.org/wiki/view/Asterisk+echo+cancellationは簡単な紹介です。また、そこにあるマークおよびマーク 2 エコー キャンセラのページと、前述のTI アプリケーション ノートも参照してください。

また、このサイト: http://www.embeddedstar.com/articles/2003/7/article20030720-1.html は、メカニズムを非常によく説明しています。

音楽プレーヤーの出力とマイク入力の両方を傍受し、サンプルをある種の IPC 経由で DSP プロセスに渡す必要があります。JACK は実際にこれを行いますが、セットアップ (たとえば、ALSA->JACK ブリッジ、音楽プレーヤーや Skype がサウンド インターフェイスとして JACK をネイティブにサポートしていない場合) にはある程度のスキルが必要です。

かなりうまくいくと思いますが、おそらくかなりのCPUが必要です。特に、XRUNS (オーディオ バッファのアンダーランまたはオーバーラン) は、エコー キャンセラにとって非常に悪い場合があります。つまり、リアルタイムの Linux カーネル パッチが必要になる場合があります。実装も簡単ではありません。また、音楽プレーヤーからのステレオ サウンドを使用すると、キャンセルの成功率が低下します。

HTH

于 2011-02-02T22:33:42.630 に答える
0

一般的に、ノイズ キャンセリングに関しては、優先順位が 2 つあります。

  1. ハードウェア - ノイズ キャンセル機能を備えた MIC/ヘッドフォン、またはその機能が既に組み込まれている内蔵サウンド カード MIC のいずれか。

  2. ソフトウェア - 良い例は Skype です。私の知る限り SKype を使用すると、オーディオ品質を微調整できますが、残念ながら調整部分はこれまで Windows プラットフォームにしか存在しませんでした。Linux では、[環境設定] > [サウンド デバイス] で [Skype によるミキサー レベルの自動調整を許可する] チェックボックスのオプションを選択できます。

私の理解では、ノイズキャンセリングに関しては、サウンドカードライバーのプログラミングに対処する必要があります.現在、上記の機能を搭載した将来のUbuntuソフトウェアリリースにいくつかのノイズが記載されています.ここで言及されています.

于 2011-02-02T14:59:50.970 に答える