3

Сейчас я занимаюсь записью звука с моего микрофона с использованием arecord и передачей необработанного вывода в VLC следующим образом:

arecord -r 8000 - | vlc -vvv - 

Это прекрасно работает, за исключением того, что звук, который выходит, имеет много шума. Я знаю, что можно убрать фоновый шум с помощью sox, но я не могу понять, какие правильные команды. Когда я использую "play" только для проверки вывода (даже не пытаясь устранить шум), вывод звучит ужасно, используя:

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

Есть ли другие решения, кроме sox/play? Если бы я мог сделать это через сам VLC, это было бы идеально. Мне также нужно усилить звук, поэтому я использую VLC. Если бы я смог получить sox для очистки звука и передачи вывода обратно в VLC, это было бы удивительно. Как я мог сделать это, я уверен, что это возможно.

Мои цели: (1) убрать весь фоновый шум и (2) максимально усилить звук.

1 ответ1

5

Вот скрипт bash для исправления вокального аудио с помощью sox:

#!/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 `                                                                                                        

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .