Como dividir arquivos de áudio em lote onde quer que haja silêncio?
Pergunta
Estou usando o seguinte comando no SoX para dividir muitos arquivos de áudio grandes em cada local onde há silêncio por mais de 0,3 segundos:
sox -V3 input.wav output.wav silence 1 0.50 0.1% 1 0.3 0.1% : newfile : restart
No entanto, isso ocasionalmente acaba criando arquivos totalmente silenciosos e cortando o áudio antes de cada intervalo.
Encontrei melhores resultados com o Audacity, mas preciso dividir centenas de arquivos WAV e o Audacity não consegue nem abrir 10 arquivos simultaneamente sem congelar.
Como posso usar o SoX ou software semelhante para dividir os arquivos no final dos períodos de silêncio de 0,3 segundos, de modo que a parte silenciosa ainda esteja afixada no final da fala, mas não antes e não haja clipes totalmente silenciosos , a menos que venham do início de input.wav
?
Solução
se você alterar 0,5 para 3,0, funciona bem:
sox -V3 input.wav output.wav silence 1 3.0 0.1% 1 0.3 0.1% : newfile : restart
Outras dicas
Você não especificou nenhuma linguagem de programação, então presumo que você não esteja procurando uma maneira de programá-la sozinho (o que torna isso um pouco fora do assunto aqui).A propósito, não seria muito difícil de fazer.
De qualquer forma, talvez isso funcione para você:
http://www.nch.com.au/splitter/
Você pode definir um limite em dB para dividir.Acho que quando você define para 0dB, você obtém todo o áudio necessário por fatia.