Необходимо разделить стерео трек, отбросить правый канал и удалить шум
Я использую Audacity для обработки некоторых коротких аудиоклипов - около 300 (!!!), так что я бы действительно не стал повторять свои шаги вручную для каждого.
Тем не менее, я не могу найти способ создать цепочку, которая включает в себя шаг "разделить стерео трек и выбросить правый канал". Я в конце своего остроумия; Есть какой-либо способ сделать это? Если нет, есть ли другая программа, которая позволила бы мне сделать это в автоматическом режиме?
2 ответа
Я бы предложил использовать sox
для такого рода вещей. Пропустите правый канал с помощью:
sox in.wav out.wav remix 1
Чтобы уменьшить шум, вам нужно получить профиль шума из тихой части файла, то есть что-то вроде этого:
sox noisy.wav -n trim 0 1 noiseprof | play noisy.wav noisered
Смотрите ниже подробности о noise prof и noisered.
Таким образом, последовательность для каждого файла будет выглядеть примерно так, если предположить, что первая секунда записи содержит только фоновый шум:
sox in.wav -n remix 1 trim 0 1 noiseprof NOISE_PROFILE
sox in.wav out.wav remix 1 noisered NOISE_PROFILE
От sox
человек:
noiseprof [profile-file]
Calculate a profile of the audio for use in noise reduction. See
the description of the noisered effect for details.
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 profile to profile-file, or to stdout if no pro-
file-file or if `-' is given. E.g.
sox speech.wav -n trim 0 1.5 noiseprof speech.noise-profile
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.3
How much noise should be removed is specified by amount-a number
between 0 and 1 with a default of 0.5. Higher numbers will remove
more noise but present a greater likelihood of removing wanted com-
ponents of the audio signal. Before replacing an original record-
ing with a noise-reduced version, 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 atten-
tion 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 noisered
У меня есть идея, которая может сработать, но прежде чем я напишу все это, попробуйте:
- Получите сборку FFMPEG: http://ffmpeg.zeranoe.com/builds/
- экстракт
- Запустите FFMPEG со следующими параметрами:
ffmpeg -i somefile.mp3 -ac 1 somefile.wav
Это загрузит somefile.mp3, ограничит количество аудиоканалов до одного, надеюсь, удалит правильный аудиоканал (правильный), а затем выплюнет его обратно в виде файла WAV.
Если это не работает, мы должны выяснить, как сделать ffmpeg
удалить другой канал.