Como obter rótulos de tempo para o silêncio no arquivo de áudio

0

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?

    
por Al Berger 25.09.2018 / 23:36

0 respostas