あるプロジェクトの開発中に、興味深いパズルに出会いました。
ベースライン:
-ffmpeg経由でWebカメラを介してオーディオトラック付きのビデオを記録したデバイス
-レコードの長さは約1分
-ノイズリダクションを1回設定する条件を作成し、後で自律的に動作するようにします
当然、その瞬間からブレインストーミングが始まりました。
まず、ノイズとは何か、どのように発生するかを理解することにしました。
「ノイズは、強度と周波数が変化する非周期的な音のコレクションです」Wiki
ノイズは、少なくとも一定であり(パチパチという音、ブザー音)、不安定な(車、転倒、音楽、衝撃)です。
最初のタイプでは、すべてがはるかに単純であることが判明しました。多くのプログラムおよびアルゴリズムは、ノイズマスクを取得するだけで(たとえば、録音の開始時に)、このマスクを使用して他のすべてをクリアする必要があるため、周期的および一定のノイズに特化しています。 しかし、まさに混exactlyとしたノイズがあったので、先に進みましょう。
私の場合、ノイズはカオス的であり、一般的な周期的なマスクがなく、できませんでした。 グーグルでたくさんの時間をつぶし、audifilフォーラムを読んだ後、3つの解決策を見つけました。
-スペクトルノイズ減算
-アクティブノイズリダクション
-人間の声で使用される周波数の制限
スペクトル減算
実際の信号(録音)のノイズには、いくつかの特徴があります。
-非周期的
-有限のスペクトルを持っています
周期的なノイズの場合、すべてのノイズを消去するのに1つのマスクで十分な場合、この場合、トラックは多くのセグメントに分割され、各セグメントは独立した信号と見なされ、そのノイズマスクは個別に考慮されます。 したがって、使用できるマスクがいくつか得られます。 この考え方は、離散フーリエ変換スキームに似ています。 このアイデアは発展する可能性がありますが、そのようなスキームに従って機能する単一のソフトウェア製品は見つかりませんでした。 したがって、この項目は省略されました。
アクティブノイズリダクション
アクティブノイズリダクションの本質は、ノイズのみを含む同期信号を受信することです(ボーカル、音声、その他の興味のある音はなし)。 さらに、この「純粋なノイズ」信号は、いわゆる逆位相に反転され、ノイズの多い録音に重畳されます。 その結果、ノイズとアンチノイズが互いに圧倒され、出力はきれいな録音になります。 それは思われる-どちらが簡単ですか? しかし、私の状況では、興味のあるコンテンツがなければ、バックグラウンドノイズを記録するために2番目のマイクを使用することはできませんでした。 そして、このアイテムは忘れ去られました。
人間の声で使用される周波数の制限
繰り返しになりますが、300ヘルツから3000ヘルツの範囲が人間の声の範囲に採用されました。
この項目は実行においてより現実的であることが判明しましたが、優れた結果を保証するものではありませんでした。
ソリューションはNero Wave Editorでテストされ、周波数が制限されました。 バックグラウンドノイズはもちろん消えませんでしたが、体重が減り、単調でくぐもった音になりましたが、人間の声は変化せず、すでにずっと良く聞こえていました。
したがって、私は最後のアイテムを選択しました。 結果は完全ではありませんが、個人的なコストをほとんど必要としない、自律的なノイズ低減の最も簡単な方法です。 唯一の注意点は、録音全体が少し静かになったことで、まったく怖くない。
PSすべての推論は、騒音低減のための自律性の要件に正確に基づいていました。 当然、ファイルを手動で処理する場合、さらに多くのオプションがあります。
参照:
ビデオ放送中の騒音を抑制する問題の調査。