To jest coś, co próbowałem zrobić przez jakiś czas, i jest bardziej otwartym pytaniem. Jeśli ktoś ma jakąś wiedzę, która może mi pomóc rzucić trochę światła na to, byłby bardzo ceniony.Przetwarzanie Mp3 w Pythonie
Chcę dekodować strumień audio w formacie mp3 i używać go do animacji, wszystko za pomocą Pythona. Jak rozumiem, dane audio w formacie mp3 są przechowywane w ramkach 32 pasm częstotliwości (lub przedziałów częstotliwości), co jest idealne dla mnie - gdybym mógł wziąć mp3 i wyodrębnić amplitudę dla każdego podpasma w każdej ramce, to bądź doskonały dla tego, co chcę robić.
Znalazłem rozwiązanie tutaj https://bitbucket.org/portalfire/pymp3, gdzie wszystkie przetwarzanie wydaje się być wykonane w python. Jest dość powolny, ale nawet jeśli mógłbym użyć tego do wydobycia tego, co chcę, byłoby dobrze - staram się zrozumieć, co dzieje się w tym kodzie. Miałem również rozwiązanie, w którym przekonwertowałem na WAV, a następnie użyłem fft, aby wyodrębnić częstotliwości z WAV. To było bardzo głośne i wydaje się głupim sposobem, aby to zrobić, ponieważ dane, które chcę, są przechowywane bezpośrednio w mp3 - konwersja z powrotem na falę dźwiękową wydaje się niepotrzebna. To było jednak szybsze niż pierwsze. Oto, co skończyło się z:
http://www.youtube.com/watch?v=f_0FORxlK4A
Cóż, jeśli ktoś ma jakieś rady lub doświadczenia, które chcą udostępnić, lub pomysły na bibliotekach mam patrzeć, naprawdę chciałbym usłyszeć.
Dzięki!
Henry
Możesz przejść przez http://wiki.python.org/moin/PythonInMusic raz, aby sprawdzić ogromny zestaw bibliotek dostępnych tam –
Istnieje wiele bibliotek MP3 tam i prosząc o rekomendacje na którym można się posłużyć, to takie rzeczy, które na forum pytań i odpowiedzi, takie jak SO, są złe w obsłudze. – abarnert
Jedna rada, jaką mogę dać: Jeśli wiesz, jak używać cytonów, ctypów lub jakiegokolwiek innego takiego mechanizmu, warto zajrzeć do bibliotek C takich jak mpg123, które nie mają żadnych powiązań w Pythonie, i zawijać tylko te bity, które potrzebujesz . W ten sposób masz o wiele więcej opcji. – abarnert