Создать визуальный (волновой) из файла MP3 / WAV в Windows 2008 Server? - PullRequest
14 голосов
/ 31 марта 2012

Есть ли (где-нибудь) программа командной строки для Windows, которая будет создавать визуальные PNG / JPEG из MP3 / WAV?

РЕДАКТИРОВАТЬ: Это хороший пример того, как изображениедолжен выглядеть так.enter image description here

Ответы [ 5 ]

33 голосов
/ 31 марта 2012

Sox , «Швейцарский армейский нож аудио манипуляции», может генерировать точные спектрограммы PNG из звуковых файлов. Он играет практически все, и двоичные файлы доступны для Windows. На самом базовом уровне вы бы использовали что-то вроде этого:

sox my.wav -n spectrogram

Если вам нужна спектрограмма без осей, названий, легенд и светлого фона высотой 100 пикселей:

sox "Me, London.mp3" -n spectrogram -Y 130 -l -r -o "Me, London.png"

Sox принимает множество опций, если вы хотите, например, анализировать только один канал. Если вам нужно, чтобы изображение было еще круче, вы можете постобработать полученный PNG.

Вот краткий обзор из командной строки обо всех доступных параметрах, man-страница содержит более подробную информацию :

-x num  X-axis size in pixels; default derived or 800
-X num  X-axis pixels/second; default derived or 100
-y num  Y-axis size in pixels (per channel); slow if not 1 + 2^n
-Y num  Y-height total (i.e. not per channel); default 550
-z num  Z-axis range in dB; default 120
-Z num  Z-axis maximum in dBFS; default 0
-q num  Z-axis quantisation (0 - 249); default 249
-w name Window: Hann (default), Hamming, Bartlett, Rectangular, Kaiser
-W num  Window adjust parameter (-10 - 10); applies only to Kaiser
-s  Slack overlap of windows
-a  Suppress axis lines
-r  Raw spectrogram; no axes or legends
-l  Light background
-m  Monochrome
-h  High colour
-p num  Permute colours (1 - 6); default 1
-A  Alternative, inferior, fixed colour-set (for compatibility only)
-t text Title text
-c text Comment text
-o text Output file name; default `spectrogram.png'
-d time Audio duration to fit to X-axis; e.g. 1:00, 48
-S time Start the spectrogram at the given time through the input
7 голосов
/ 30 апреля 2017

Реальная форма сигнала возможна с помощью ffmpeg, вы можете скачать ее здесь .

Установить ее где-нибудь и использовать в качестве примера следующую командную строку:

ffmpeg.exe -i "filename.mp3" -lavfi showwavespic=split_channels=1:s=1024x800 waveform.png

или ниже, чтобы соответствовать цвету вашего примера, или другие цвета :

ffmpeg.exe -i "filename.mp3" -lavfi showwavespic=s=1024x800:colors=0971CE waveform.png

Документация FFmpeg showwavespic

3 голосов
/ 30 июня 2014

Я создал небольшую библиотеку PHP, которая делает это: https://github.com/jasny/audio


Она работает следующим образом.Он получает сэмплы, используя

sox TRACK.mp3 -t raw 4000 -c 1 -e floating-point -L -

. Это уменьшает частоту трека до 4k и помещает все в 1 канал.

Далее я беру куски сэмплов (на один пиксель) и вычисляю мин и макс,Используйте их, чтобы нарисовать форму волны.

1 голос
/ 23 мая 2013

Я нашел это здесь довольно неплохо (из веб-архива его нет): http://web.archive.org/web/20140715171716/http://andrewfreiday.com/2011/12/04/optimizing-the-php-mp3-waveform-generator/

основано на PHP и использует lame through shell.

обновление: сайтвремя от времени кажется мертвым, но вот репо: https://github.com/afreiday

0 голосов
/ 27 июня 2017

Обновленная пакетная версия Wander Nauta, которая генерирует гистограмму для всех файлов WAV в папке (BASH / DASH):

for i in *.wav; do ./sox $i -n spectrogram -y 130 -l -r -o ${i%%.wav}.png; done
...