Precisa dividir a trilha estéreo, descartar o canal direito e remover o ruído

5

Estou usando o Audacity para processar alguns clipes de áudio curtos - cerca de 300 deles (!!!), então prefiro não repetir meus passos manualmente para cada um.

No entanto, não consigo encontrar uma maneira de criar uma cadeia que inclua a etapa "dividir trilha estéreo e descartar canal direito". Estou no meu juízo final; Há alguma maneira de fazer isso? Se não, existe outro programa que me permita fazer isso de maneira automatizada?

    
por Arkaaito 28.06.2012 / 12:45

2 respostas

6

Eu sugeriria usar sox para esse tipo de coisa. Solte o canal direito com:

sox in.wav out.wav remix 1

Para reduzir o ruído, você precisa obter um perfil de ruído de uma parte silenciosa do arquivo, ou algo assim:

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

Veja abaixo os detalhes sobre noiseprof e noisered.

Assim, a sequência de cada arquivo seria semelhante a essa, assumindo que o primeiro segundo da gravação contém apenas ruído de fundo:

sox in.wav -n remix 1 trim 0 1 noiseprof NOISE_PROFILE
sox in.wav out.wav remix 1 noisered NOISE_PROFILE

Do sox man:

   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
    
por 28.06.2012 / 13:59
4

Eu tenho uma ideia que poderia funcionar, mas antes de escrever tudo, tente:

  1. Obtenha uma versão do FFMPEG: link
  2. Extrair
  3. Execute o FFMPEG com os seguintes parâmetros: ffmpeg -i somefile.mp3 -ac 1 somefile.wav

Isso carregará somefile.mp3, limitará os canais de áudio a um, esperançosamente, removendo o canal de áudio correto (o correto), e então cuspindo-o de volta como um arquivo WAV.

Se isso não funcionar, precisamos descobrir como fazer com que ffmpeg remova o canal outro .

    
por 28.06.2012 / 12:59