2010-12-17 14 views
12

Biorąc pod uwagę MP3 Chciałbym wyodrębnić kształt fali z pliku do obrazu (.png)Jak mogę utworzyć obraz fali MP3 w systemie Linux?

Czy istnieje pakiet, który może zrobić to, czego potrzebuję?

+2

Tak, tam jest narzędziem, które robi dokładnie to: http://www.tuned-project.org/audio-tools –

+0

@ user1217953 - dostrojony narzędzia dźwiękowe link jest martwy, wydaje być w https://launchpad.net/tuned-audio-tools/+download (zauważ, że do kompilacji potrzebujesz 'libgee' i' gstreamer-1.0'); zobacz także https://github.com/limikael/rendersound (uwaga: do jej zbudowania potrzebujesz stosunkowo nowego 'libavcodec'); zobacz także [wav2png] (http://stackoverflow.com/a/11067909/277826) – sdaau

Odpowiedz

2

Jeśli masz środowisko graficzne, możesz użyć edytora audio audacity, aby załadować plik mp3, a następnie użyć polecenia drukowania, aby wygenerować plik PDF przebiegu. Następnie przekonwertuj pdf na png.

+0

Pytanie jest wysyłane na Stack Overflow. Dlatego myślę, że to jest pytanie programistyczne. To, co oferujesz, jest obejściem, które można wykonać tylko wtedy, gdy masz _user_, który zrobi to dla każdego pliku ręcznie. Nie robiąc -1, bo lrugam)) – Septagram

+3

Szczerze starałem się być pomocny (i zdziwiona zuchwalstwo mogłaby wydrukować). Ponadto: http://forum.audacityteam.org/viewtopic.php?f=15&t=38341 – Lifeguard

+0

Dzięki za pomoc :) Chociaż starał się zautomatyzować proces tworzenia spektrogramu (obrazu) z pliku audio (mp3). Wysłany link wygląda na naprawdę użyteczny. Dzięki –

2

chciałbym zrobić coś takiego:

  • znaleźć narzędzie do konwertowania mp3 do PCM, czyli dane binarne z jednym 8 lub 16 bit wartości w próbce. Chyba MPlayer może zrobić

  • rura wynik do narzędzia konwersji danych binarnych do ASCII reprezentacji liczb w formacie dziesiętnym

  • użytkowania gnuplot przekształcić tę listę wartości do png wykresie.

I voila, moc połączeń między narzędziami unixowymi. Teraz krok 2 na tej liście może być opcjonalny, jeśli gnuplot jest w stanie odczytać dane z formatu binarnego.

+0

Brzmi jak prawdziwy dobry pomysł. Postaram się to zrobić i dam ci znać, jak to działa. I tak gnuplot akceptuje plik danych binarnych jako źródło danych. Dzięki –

3

Jest to standardowa funkcja w SoX (narzędzie wiersza polecenia dla dźwięku, Windows & Linux) Sprawdź funkcję „spektrogram” na http://sox.sourceforge.net/sox.html

„spektrogramu jest renderowany w pliku Portable Network Graphics (PNG), i pokazuje czas na osi X, częstotliwość na osi Y i wartość sygnału audio na osi Z. Wartości osi Z są reprezentowane przez kolor (lub opcjonalnie intensywność) pikseli w płaszczyźnie XY. sygnał audio zawiera wiele kanałów, a następnie są one wyświetlane od góry do dołu, zaczynając od kanału 1 (który jest lewym kanałem dla dźwięku stereo). "

+5

Spektrogram nie jest kształtu fali ... – sdaau

12

Korzystanie sox i gnuplot można tworzyć podstawowe obrazów falowych:

sox audio.mp3 audio.dat #create plaintext file of amplitude values 
tail -n+3 audio.dat > audio_only.dat #remove comments 

# write script file for gnuplot 
echo set term png size 320,180 > audio.gpi #set output format 
echo set output \"audio.png\" >> audio.gpi #set output file 
echo plot \"audio_only.dat\" with lines >> audio.gpi #plot data 

gnuplot audio.gpi #run script 

enter image description here

stworzyć coś prostsze/ładniejszą, należy użyć następującego GNU plik Plot jako szablon (zapisać go jako audio. GPI):

#set output format and size 
set term png size 320,180 

#set output file 
set output "audio.png" 

# set y range 
set yr [-1:1] 

# we want just the data 
unset key 
unset tics 
unset border 
set lmargin 0    
set rmargin 0 
set tmargin 0 
set bmargin 0 

# draw rectangle to change background color 
set obj 1 rectangle behind from screen 0,0 to screen 1,1 
set obj 1 fillstyle solid 1.0 fillcolor rgbcolor "#222222" 

# draw data with foreground color 
plot "audio_only.dat" with lines lt rgb 'white' 

i po prostu uruchomić:

sox audio.mp3 audio.dat #create plaintext file of amplitude values 
tail -n+3 audio.dat > audio_only.dat #remove comments 

gnuplot audio.gpi #run script 

enter image description here

podstawie this answer z podobnym pytaniem, które jest bardziej ogólne dotyczące formatu pliku, ale mniej ogólnie w odniesieniu do oprogramowania używanych.

0

Być może warto rozważyć audiowaveform z BBC.

audiowaveform to aplikacja wiersza poleceń C++, która generuje dane przebiegu z plików audio w formacie MP3, WAV lub FLAC.Dane krzywych mogą być użyte do uzyskania wizualnego renderowania dźwięku, podobnego do wyglądu dla aplikacji do edycji dźwięku.

Pliki danych przebiegu są zapisywane w formacie binarnym (.dat) lub JSON (.json). Biorąc pod uwagę wejściowy plik danych kształtu fali, audiowaveform może również renderować przebieg audio jako obraz PNG przy danym przesunięciu czasowym i poziomie powiększenia.

Dane dotyczące kształtu fali są generowane z wejściowego sygnału audio stereo, najpierw łącząc kanały lewy i prawy, aby uzyskać sygnał mono. Następnym etapem jest obliczenie minimalnej i maksymalnej wartości próbki w grupach N próbek wejściowych (gdzie N jest kontrolowana przez opcję wiersza poleceń -zoom), tak, że każda z N próbek wejściowych wytwarza jedną parę punktów minimalnych i maksymalnych w wydajność.

https://github.com/bbcrd/audiowaveform

Powiązane problemy