如何在Linux中创buildMP3的波形图像?

给定一个MP3,我想从文件中提取波形到一个图像(.png)

有没有可以做我需要的软件包?

OpenELEC上apt-get的等价物

如何捕获一个IP数据包,改变其内容并在Linux上重新发送?

在一个安装程序中使用air运行时包装空气应用程序 – windows .exe

R自定义软件包从文件错误安装

我如何find哪个用户在Linux上安装了一个软件包?

使用sox和gnuplot你可以创建基本的波形图像:

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

要创建更简单/漂亮的东西,请使用以下GNU Plot文件作为模板(将其另存为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'

并运行:

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

基于这个答案 ,类似的问题是更一般的文件格式,但不太一般的软件使用。

这是SoX(声音,Windows和Linux的命令行工具)中的标准功能。检查http://sox.sourceforge.net/sox.html上的“光谱图”功能

“频谱图以便携式网络图形(PNG)文件格式显示,并在X轴上显示时间,在Y轴上显示频率,在Z轴上显示音频信号大小。Z轴值由颜色(或可选的强度),如果音频信号包含多个通道,则从通道1(这是立体声音频的左声道)开始,从上到下显示这些通道。

如果您有一个GUI环境,则可以使用大胆音频编辑器加载mp3,然后使用print命令生成波形的pdf。 然后将PDF转换为PNG。

我会做这样的事情:

找到一个工具将mp3转换为PCM,即每个采样具有一个8位或16位值的二进制数据。 我想mplayer可以做到这一点

将结果传递给一个将二进制数据转换为十进制格式的数字的ascii表示的实用程序

使用gnuplot将这个值列表转换成png图。

瞧,unix工具之间的管道的力量。 现在,如果gnuplot能够从二进制格式读取数据,则此列表中的第2步可能是选项。

你可能要考虑BBC的音频波形。

audiowaveform是一个C ++命令行应用程序,可以从MP3,WAV或FLAC格式的音频文件中生成波形数据。 波形数据可用于产生音频的可视化呈现,在外观上类似于音频编辑应用程序。

波形数据文件以二进制格式(.dat)或JSON(.json)保存。 给定一个输入波形数据文件,audiowaveform还可以在给定的时间偏移和缩放级别将音频波形呈现为PNG图像。

通过首先组合左声道和右声道从输入立体声音频信号产生波形数据以产生单声道信号。 下一阶段是计算N个输入样本组的最小和最大样本值(其中N由–zoom命令行选项控制),使得每个N个输入样本产生一组最小点和最大点输出。

https://github.com/bbcrd/audiowaveform

相关文章

引言 本文从Linux小白的视角, 在CentOS 7.x服务器上搭建一个...
引言: 多线程编程/异步编程非常复杂,有很多概念和工具需要...
一. 宏观概念 ASP.NET Core Middleware是在应用程序处理管道...
背景 在.Net和C#中运行异步代码相当简单,因为我们有时候需要...
HTTP基本认证 在HTTP中,HTTP基本认证(Basic Authenticatio...
1.Linq 执行多列排序 OrderBy的意义是按照指定顺序排序,连续...