Eu preciso de maneira automática (com um script Python) encontrar em um audiofile todos os lugares onde não há som (silêncio) e obter uma lista com rótulos de tempo para esses lugares.
Eu posso obter essa lista com o Audacity, mas não sei como fazer isso a partir de um script.
Eu posso usar o SoX. Se eu executar o seguinte comando:
play someFile.mp3 silence -l 0 1 0.26t -54d : restart
Depois, tenho a saída exata de que preciso:
In:0.04% 00:00:00.74 [00:29:29.08] Out:14.5k [ | ] Clip:0
In:0.88% 00:00:15.60 [00:29:14.22] Out:341k [ | ] Clip:0
In:0.90% 00:00:15.98 [00:29:13.84] Out:349k [ | ] Clip:0
In:0.92% 00:00:16.35 [00:29:13.47] Out:356k [ | ] Clip:0
In:0.94% 00:00:16.72 [00:29:13.10] Out:363k [ | ] Clip:0
In:0.97% 00:00:17.09 [00:29:12.73] Out:369k [ | ] Clip:0
In:1.03% 00:00:18.20 [00:29:11.62] Out:400k [ | ] Clip:0
O problema é que o arquivo de áudio é reproduzido com velocidade normal, portanto, para um arquivo de duração de 1 hora, obter essa lista levará 1 hora.
Minha pergunta é: existe uma maneira rápida e automática de obter do sox ou do Audacity ou de algum outro programa a lista com os rótulos de tempo corretos para intervalos de silêncio em arquivos de áudio?