web-dev-qa-db-ja.com

soxを使用してオーディオノイズをクリーンアップする必要があります

私が今していることは、arecordを使用してマイクからオーディオを録音し、次のように生の出力をVLCにパイプすることです。

arecord -r 8000 - | vlc -vvv - 

出てくるオーディオに多くのノイズがあることを除いて、それはうまく機能します。 soxを使用してバックグラウンドノイズをクリーンアップすることは可能ですが、正しいコマンドを理解できないようです。 (ノイズ除去を試みずに)出力をテストするためだけに「再生」を使用すると、以下を使用して出力がひどく聞こえます。

play -t raw -b 16 -c 1 -e signed -r 8000 -

Sox/play以外の解決策はありますか? VLC自体を介してこれを行うことができれば、それは理想的です。音も増幅する必要があるので、VLCを使用しています。 soxでオーディオをクリーンアップし、出力をVLCにパイプで戻すことができれば、それは素晴らしいことです。どうすればこれを達成できますか、それは可能だと確信しています。

私の目標は、(1)すべてのバックグラウンドノイズをクリーンアップし、(2)オーディオを可能な限り増幅することです。

3
eagleon

これは、soxでボーカルオーディオを修正するためのbashスクリプトです。

#!/bin/sh                                                                                                                                

# This script shows using several
# effects in combination to normalise and trim voice recordings that                                                                   
# may have been recorded using different microphones, with differing                                                                   
# background noise etc.                                                                                                                   

SOX=/usr/bin/sox

if [ $# -lt 2 ]; then
  echo "Usage: $0 infile outfile"
  exit 1
fi

$SOX "/tmp/tmp_audio_leveled.wav" -n trim 0 0.5  noiseprof newprofile
$SOX "/tmp/tmp_audio_leveled.wav" $2 noisered newprofile

$SOX "$1" "/tmp/tmp_audio_leveled.wav" \
    remix - \
    highpass 100 \
    norm \
    compand 0.05,0.2 6:-54,-90,-36,-36,-24,-24,0,-12 0 -90 0.1 \
    vad -T 0.6 -p 0.2 -t 5 \
    fade 0.1 \
    reverse \
    vad -T 0.6 -p 0.2 -t 5 \
    fade 0.1 \
    reverse \
    norm -0.5 `                                                                                                        
5
frazras