7

JavaSound またはサードパーティのサウンド キャプチャ ツールでキャプチャし、ファイルに記録する場合。その後、ファイルを読み込んで変更します。Java アプリケーションで「バックグラウンド ノイズ」を除去する方法はありますか。

主人公が話している間の道路交通/空気の騒音など?

ありがとう

4

3 に答える 3

4

バックグラウンド ノイズの除去は非常に困難です。飛行機の「ホワイト」ノイズなどの均一なノイズの場合、それらの周波数成分を除去するアルゴリズムがあります。しかし、ノイズが均一ではなく、良好な録音と性質が類似している場合 (背景で話している人、通りの騒音など)、それらを分離することは非常に困難です。これについては多くの研究が行われてきました。

少なくとも、何が良いオーディオで何が悪いオーディオかを正確に知る必要があります。たとえば、音声をキャプチャしている場合、音声を他の音から分離するための特別なオーディオ修復ソフトウェアが利用できる場合があります (例: http://www.izotope.com/products/audio/rx/ ) 。音声をステレオで録音している場合は、音声の左右の位置を分析し、左右を関連付けて非音声成分を除去することで成功する場合があります。

Re: mkb さんのコメント:

  1. ノイズ ゲートは、(一部またはすべての周波数成分の) レベルがしきい値を下回るとオーディオをミュートします。バックグラウンド ノイズのレベルによっては、これが役立つ場合もありますが、「良い」オーディオがそこにあり、その間に無音がある限り、バックグラウンドが聞こえるため、ノイズ ゲートが煩わしいことがよくあります。
  2. ローパスフィルターは高周波成分を取り除きます(低周波を通過させます)!そのため、バックグラウンド ノイズの周波数が高い場合は、役立つ可能性があります。単純な FIR または IIR ローパス フィルターは、簡単に実装できます。ただし、高周波成分が含まれている場合は、「良い」オーディオにも影響します。
于 2011-08-09T10:20:09.727 に答える
1

MARF (Modular Audio Recognition Framework)は、マニュアルで「ノイズ除去」について言及しています ( Audacity のノイズ除去と同様に、ノイズ プロファイル フェーズとノイズ除去フェーズの 2 フェーズを使用)...

...しかし、残念ながらまだ実装されていません。:(

于 2015-03-06T17:27:10.830 に答える
0

非常に単純なノイズゲートの実装は難しくありません。

于 2011-08-02T18:43:59.163 に答える