2011-08-02 4 views
7

JavaSoundまたはサードパーティのサウンドキャプチャツールでキャプチャしてファイルに記録するとき。その後、それを修正するためにファイルを読んでください、私のJavaアプリケーションで "バックグラウンドノイズ"を取り除く方法はありますか?クラウドゾーンでオーディオを録音する際に、Javaでバックグラウンドノイズを除去するにはどうすればよいですか?

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

おかげ

答えて

4

背景ノイズを除去することは非常に困難です。航空機の「白色」ノイズのような一様なノイズの場合、それらの周波数成分を除去するアルゴリズムがあります。しかし、雑音が不均一で、良好なレコーディングと性質上類似している場合、たとえば、背景で話している人、路上の騒音などを分けるのは非常に難しいでしょう。これに関する多くの研究が行われてきました。

少なくとも、良いオーディオが何であるか、悪いオーディオは何かを正確に知る必要があります。例えば。あなたが音声をキャプチャしている場合、他の音声から音声を分離するための特別な音声修復ソフトウェアがあるかもしれません。 http://www.izotope.com/products/audio/rx/。音声をステレオで録音する場合は、音声の左右の位置を分析し、左と右を相関させて非音声コンポーネントを取り除くことで成功する可能性があります。

再:MKBのコメント:(一部又は全ての周波数成分の)レベルが閾値未満である場合

  1. ノイズゲートは、オーディオミュートします。背景ノイズのレベルに応じて、これは役に立ちますが、「良い」オーディオが存在し、その間に静寂がある限り、背景を聞くことがあるので、しばしばノイズゲートが面倒です。
  2. ローパスフィルタは、高周波成分を除去します(低周波を通過させます)。あなたのバックグラウンドノイズが高い頻度であるなら、それは助けるかもしれません。シンプルなFIRまたはIIRローパスフィルタは簡単に実装できます。しかし、高周波成分がある場合は、「良い」オーディオにも影響します。
1

非常に単純なnoise gateを実装するのは難しいことではありません。

関連する問題