Descobrir tempo de audio

799 views
Skip to first unread message

Diogo Seiji Ishimori

unread,
Aug 23, 2012, 10:35:45 AM8/23/12
to python...@googlegroups.com
Ola pessoal, estou fazendo um programa que preciso descobrir o tempo total de um arquivo de musica. Por exemplo, digamos que uma musica tenha 3 minutos, então preciso descobrir esse tempo. Alguém sabe como posso fazer?

Abraços.

Felipe Mobus

unread,
Aug 23, 2012, 10:52:01 AM8/23/12
to python...@googlegroups.com
Diogo,

Qual formato você está trabalhando?

2012/8/23 Diogo Seiji Ishimori <dsish...@gmail.com>
Ola pessoal, estou fazendo um programa que preciso descobrir o tempo total de um arquivo de musica. Por exemplo, digamos que uma musica tenha 3 minutos, então preciso descobrir esse tempo. Alguém sabe como posso fazer?

Abraços.

--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@googlegroups.com



--
Felipe Mobus
http://fmobus.wait4.org

Anderson Unsonst

unread,
Aug 23, 2012, 10:59:38 AM8/23/12
to python...@googlegroups.com
cara eu não sei, mas eu achei uma tópico sobre o assunto
http://stackoverflow.com/questions/119404/time-length-of-an-mp3-file

no final eles apresentam algumas soluções interessantes para python

Diogo Seiji Ishimori

unread,
Aug 23, 2012, 2:21:15 PM8/23/12
to python...@googlegroups.com
Vo olhar o link que me passaram. E quanto a extensão, estou trabalhnado com .mp3

2012/8/23 Anderson Unsonst <anderso...@gmail.com>
cara eu não sei, mas eu achei uma tópico sobre o assunto
http://stackoverflow.com/questions/119404/time-length-of-an-mp3-file

no final eles apresentam algumas soluções interessantes para python

Anderson Unsonst

unread,
Aug 23, 2012, 3:48:02 PM8/23/12
to python...@googlegroups.com
olha sobrou um tempinho aqui e acabei testando na unha mesmo hauhauhauhauhauah

http://pastebin.com/7NsvudF8

Ricardo L. Dani

unread,
Aug 23, 2012, 5:48:25 PM8/23/12
to python...@googlegroups.com
Mais fácil tocar no toca-fitas e usar um cronômetro.

2012/8/23 Anderson Unsonst <anderso...@gmail.com>:
> olha sobrou um tempinho aqui e acabei testando na unha mesmo hauhauhauhauhauah
>
> http://pastebin.com/7NsvudF8
>
> --
> ------------------------------------
> Grupo Python-Brasil
> http://www.python.org.br/wiki/AntesDePerguntar
>
> <*> Para visitar o site do grupo na web, acesse:
> http://groups.google.com/group/python-brasil
>
> <*> Para sair deste grupo, envie um e-mail para:
> python-brasi...@googlegroups.com



--
[]`s
Ricardo L. Dani

Henr"Ikke" Pereira

unread,
Aug 23, 2012, 5:57:01 PM8/23/12
to python...@googlegroups.com
Dá uma olhada na biblioteca pymad

2012/8/23 Ricardo L. Dani <ricar...@gmail.com>



--
Henr"Ikke" G.G. Pereira
+55 (55) 9619-7499
|_|0|_|
|_|_|0|
|0|0|0|

Ricardo L. Dani

unread,
Aug 23, 2012, 5:58:37 PM8/23/12
to python...@googlegroups.com
Anderson, eu bati o olho e interpretei se código como se ele tocasse o
áudio e fizesse o timedelta, lendo de novo, vi que me enganei e retiro
meu comentário anterior, sorry. Bacana a solução.

2012/8/23 Anderson Unsonst <anderso...@gmail.com>:
> olha sobrou um tempinho aqui e acabei testando na unha mesmo hauhauhauhauhauah
>
> http://pastebin.com/7NsvudF8
>
> --
> ------------------------------------
> Grupo Python-Brasil
> http://www.python.org.br/wiki/AntesDePerguntar
>
> <*> Para visitar o site do grupo na web, acesse:
> http://groups.google.com/group/python-brasil
>
> <*> Para sair deste grupo, envie um e-mail para:
> python-brasi...@googlegroups.com



Anderson Unsonst

unread,
Aug 23, 2012, 6:19:05 PM8/23/12
to python...@googlegroups.com
hauhauhuahuhuhauhau eu entendi que seu comentário tinha sido uma
piada, até ia responder 'Bazinga' , mas de uma certa forma o meu
código é muito fraco mesmo, primeiro que eu não sou programador python
e segundo que eu fiz isso naqueles 5 minutos de folga na hora do
lanche la no escritório que eu trabalho rs, mas eu acho que resolve o
problema do Diogo

Diogo Seiji Ishimori

unread,
Aug 24, 2012, 8:48:02 AM8/24/12
to python...@googlegroups.com
Agradeço pela ajuda de todos. Conseguir pegar p tempo do audio ja :D
Olhei no link que o Anderson me passo :

cara eu não sei, mas eu achei uma tópico sobre o assunto
 
http://stackoverflow.com/questions/119404/time-length-of-an-mp3-file

e funcionou. E achei esse link que mostra como saida todas... (nao sei se é a palavra certa xD) caracteristicas dos arquivos de audio e video.

http://stackoverflow.com/questions/993971/mp3-length-in-milliseconds


arthur

unread,
Aug 24, 2012, 10:41:37 AM8/24/12
to python...@googlegroups.com
Achei este topico em um momento oportuno, olhei todas as dicas sobre arquivos de audio e achei muito bom. Mas estou com outro problema, estou precisando fazer com que a musica fique parado, ou seja, quando estiver executando a musica e o usuario quiser pausar a musica. Alguém teria alguma dica?

Abraços.

Eder Souza

unread,
Aug 24, 2012, 11:54:20 AM8/24/12
to python...@googlegroups.com
Arthur qual lib está usando para dar play ?

De modo geral seria mais fácil converter seu arquivo em raw para poder manipular, a lógica é fazer um loop no array de sua música com tamanho de blocos especificos para dar play, você deverá saber em qual frame rate seu áudio foi gravado por exemplo (8000hz)  se você quer fazer um looping a cada 1 segundo de áudio irá precisar de amostras de 16000 bytes isso para áudios gravados em 8000hz ou seja para cada loop você vai retirar do seu array da música 16000 dados, valores contidos lá e assim por diante até o fim de seu array este processo é tão rápido que não afeta a latência da execução, isso vai lhe dar um play a cada 1 segundo da canção o que lhe permite fazer interações com o usuário por exemplo criar uma rotina que responda pela tecla "S" ao ser clicada o looping simplesmente para e ao apertar a tecla "P" o loopig volta de onde parou, é um mero exemplo de como você pode fazer isso !

Eng Eder de Souza 

2012/8/24 arthur <wall.ma...@gmail.com>
--

Anderson Unsonst

unread,
Aug 24, 2012, 12:43:25 PM8/24/12
to python...@googlegroups.com
tenta procurar o pacote mplayer para python, uma pena que não tenho
tempo para pesquisar mais, porém olha que eu achei:
http://www.blog.pythonlibrary.org/2010/07/24/wxpython-creating-a-simple-media-player/

Com um pouquinho de calma da para pegar o conceito e portar para qt ou
gtk ou qualquer outra lib de interface que você precisar.

Anderson Unsonst

unread,
Aug 24, 2012, 12:54:16 PM8/24/12
to python...@googlegroups.com
https://github.com/pafcu/pymplb#readme
http://code.google.com/p/python-mplayer/
https://github.com/baudm/mplayer.py/tree/master/mplayer

parece que é essa, se não me engano python tinha um método que dava um
loop em todos os métodos públicos disponíveis,
já que documentação é mato nesses links (bazinga!)

ps. inclusive isso me parece que substitui a solução que eu postei no
início desse tópico, mas precisa de tempo para estudar isso, até ontem
eu não sabia que musica tinha frame rate, channels e etc.(na verdade
continuo não sabendo rs)

Eder Souza

unread,
Aug 24, 2012, 1:34:19 PM8/24/12
to python...@googlegroups.com
Rapaz quando você escuta uma música no seu player não imagina os calculos que ele faz ehehehe !

Nchannels diz se um arquivo está em mono ou stereo, o frame rate define a quantidade de amostras dentro de uma unidade de tempo !

Toda a manipulação é feita quando o decode de uma determinada extenção (mp3, wav, flac, etc) vai para o formato crú do audio ou seja para raw audio, em geral estes valores ficam em 16 ou 32 bits, podem estar em short int que vai de  -32768 até 32767 não é muito utilizado ou pode estar representado em formato float que vai de 0 até 1...

Com isso em maos você pode reconstruir seu vetor(short int ou float32) em outro formato, ou fazer análises de espectrograma, chromograma, pegar as frequencias, ou simplesmente manipular inserir pedaços de outras musicas dentre de seu vetor, juntar musicas, adicionar silencio, eco, ruido, inverter o áudio, deixar em mono ou stereo, ou coisas mais complexas como fazer ressample (cálculos complexos) contruir um autotune(complexo) ou um pitch shift etc, etc, depois de tudo isso você faz o encode para o formato que achar conveniente !

Bom eu fiz um módulo em python que faz autotune se quizer saber com funciona [1], da uma lida eu portei um códio em C do Tom Baran como módulo para python :-).


Eng Eder de Souza



2012/8/24 Anderson Unsonst <anderso...@gmail.com>

david wall

unread,
Aug 24, 2012, 8:59:11 PM8/24/12
to python...@googlegroups.com
Obrigado pelas dicas e ajudas. Conseguir implementar o que eu queria(ufa... xD rs)
Agora posso dizer que conheço um pouco mais de como funciona os arquivos de audio pela dica do eder :D(pra ser sincero não sabia dessas coisas rsrs). Andei pesquisando um pouco mais e achei algo bastante útil para o que eu queria fazer.

http://packages.python.org/MplayerCtrl/intro.html
http://pypi.python.org/pypi/MplayerCtrl/

Mais uma vez obrigado pela ajuda a todos. Quando eu tiver mais alguma duvida vo "pegar emprestado" as dicas de vocês mais um vez...rsrs xD

david wall

unread,
Aug 24, 2012, 9:01:50 PM8/24/12
to python...@googlegroups.com
Vixe, não sei por que meu nick saiu "David wall" desta vez, rsrs :O
Mas sou o Arthur que postou perguntando sobre como pausar o audio.

Bruno Tikami

unread,
Aug 27, 2012, 12:42:56 PM8/27/12
to python...@googlegroups.com

Diogo e todos que sugeriram bibliotecas: uma bem interessante que está no

Google Code é a timeside[0] que te dá acesso a transcoding e a gráficos da

onda gerada pelo arquivo de áudio. Aliada à soundmanager [1] dá pra fazer

coisas bem interessantes e de um jeito bem simples.


[0] http://code.google.com/p/timeside/

[1] http://www.schillmania.com/projects/soundmanager2/


[]s,


Tkm

Reply all
Reply to author
Forward
0 new messages