5

Я использую Audacity для обработки некоторых коротких аудиоклипов - около 300 (!!!), так что я бы действительно не стал повторять свои шаги вручную для каждого.

Тем не менее, я не могу найти способ создать цепочку, которая включает в себя шаг «разделить стерео трек и выбросить правый канал». Я в конце своего остроумия; Есть какой-либо способ сделать это? Если нет, есть ли другая программа, которая позволила бы мне сделать это в автоматическом режиме?

2 ответа2

6

Я бы предложил использовать sox для такого рода вещей. Пропустите правый канал с помощью:

sox in.wav out.wav remix 1

Чтобы уменьшить шум, вам нужно получить профиль шума из тихой части файла, то есть что-то вроде этого:

sox noisy.wav -n trim 0 1 noiseprof | play noisy.wav noisered

Смотрите ниже подробности о noiseprof и 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
4

У меня есть идея, которая может сработать, но прежде чем я напишу все это, попробуйте:

  1. Получите сборку FFMPEG: http://ffmpeg.zeranoe.com/builds/
  2. экстракт
  3. Запустите FFMPEG со следующими параметрами: ffmpeg -i somefile.mp3 -ac 1 somefile.wav

Это загрузит somefile.mp3, ограничит количество аудиоканалов до одного, возможно, удалит правильный аудиоканал (правильный), а затем выплюнет его обратно в виде файла WAV.

Если это не сработает, мы должны выяснить, как заставить ffmpeg удалить другой канал.

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