web-dev-qa-db-ja.com

コマンドラインからの音声録音を消去しますか?

以前、録音から ノイズを除去するためのAudacity を使用しましたが、コマンドラインの使用が非常に制限されています。私はこれから数か月にわたって見る予定の短い講義ビデオを100本ほど持っています。それらを一度に、または見る前に必要に応じて簡単にきれいにしたいのですが。

これを行うために使用できるコマンドラインツールまたは一般的な言語ライブラリはありますか?

28
AnnanFay

soxをご覧ください

引用man sox

SoX - Sound eXchange, the Swiss Army knife of audio manipulation

[...]

SoX is a command-line audio processing  tool,  particularly  suited  to
making  quick,  simple  edits  and to batch processing.  If you need an
interactive, graphical audio editor, use audacity(1).

だから、それはaudaciyに代わるコマンドラインの代替として、すてきなフィットになるはずです!


録音をクリーニングする実際のタスクについては、フィルターnoiseredを見てください。このフィルターは ノイズ低減フィルターAudacity に相当します。

man sox | less -p 'noisered \['

           [...]
   noisered [profile-file [amount]]
           Reduce noise in the audio signal by profiling and filtering.
           This effect is moderately effective at  removing  consistent
           background  noise such as hiss or hum.  To use it, first run
           SoX with the noiseprof effect on a  section  of  audio  that
           ideally  would  contain silence but in fact contains noise -
           such sections are typically found at the  beginning  or  the
           end  of  a recording.  noiseprof will write out a noise pro‐
           file to profile-file, or to stdout if no profile-file or  if
           `-' is given.  E.g.
              sox speech.wav -n trim 0 1.5 noiseprof speech.noise-profil
           To  actually remove the noise, run SoX again, this time with
           the noisered effect; noisered will reduce noise according to
           a  noise  profile  (which  was generated by noiseprof), from
           profile-file, or from stdin if no profile-file or if `-'  is
           given.  E.g.
              sox speech.wav cleaned.wav noisered speech.noise-profile 0
           How  much  noise  should be removed is specified by amount-a
           number between 0 and 1 with a default of 0.5.   Higher  num‐
           bers will remove more noise but present a greater likelihood
           of removing wanted components of the audio  signal.   Before
           replacing  an  original  recording with a noise-reduced ver‐
           sion, experiment with different amount values  to  find  the
           optimal one for your audio; use headphones to check that you
           are happy with the results, paying particular  attention  to
           quieter sections of the audio.

           On  most systems, the two stages - profiling and reduction -
           can be combined using a pipe, e.g.
              sox noisy.wav -n trim 0 1 noiseprof | play noisy.wav noise
           [...]
17
Volker Siegel

受け入れられた答えは実用的な例を示していません(最初のコメントを参照してください)ので、ここで例を挙げようとしています。 Ubuntuにaptをインストールすると、soxとオーディオ形式のサポートをインストールする必要があります

sox

最初にインストール sox とフォーマットのサポート(mp3を含む):

Sudo apt install sox libsox-fmt-*

次に、ファイルでコマンドを実行する前に、まずプロファイルを作成し、ノイズのサンプルを作成する必要があります。これは、ノイズが発生する最適な時間を選択するために必要な最も重要な部分です。このサンプルに音声(または保持しようとする音楽/信号)があります。

ffmpeg -i source.mp3 -ss 00:00:18 -t 00:00:20 noisesample.wav

次に、そのソースからプロファイルを作成します。

sox noisesample.wav -n noiseprof noise_profile_file

最後に、ファイルに対してノイズ削減を実行します。

sox source.mp3 output.mp3 noisered noise_profile_file 0.31

どこ noise_profile_fileはプロファイルであり、0.30は値です。値は0.20から0.30の間のどこかで最高になり、0.3を超えると非常にアグレッシブになり、0.20未満はややソフトで非常にノイズの多いオーディオに適しています。

それを試してみて、他の設定トリックを見つけたら、その結果とチューニング設定についてコメントしてください。

それらをバッチ処理する方法

ノイズが似ている場合は、すべてのMP3に同じプロファイルを使用できます

ls -r -1 *.mp3 | xargs -L1 -I{} sox {}  {}_noise_reduced.mp3  noisered noise_profile_file 0.31

またはフォルダ構造がある場合:

tree -fai . | grep -P ".mp3$" | xargs -L1 -I{} sox {}  {}_noise_reduced.mp3  noisered noise_profile_file 0.31
14