Mathematica绘制波形图的两种方法的区别
1、先把音频转化为数据。
b = AudioData[a]

2、再用ListPlot画波形图:
ListPlot[b]

3、但是这个简单的代码,却极度耗电耗时:
ListPlot[AudioData[a], PlotStyle -> Blue] // AbsoluteTiming
用时长达十几秒,而且内存占到90%。

1、直接用AudioPlot把音频转化为波形图:
AudioPlot[a]


2、这个非常节省时间,只需0.5秒左右。

1、上面的音频是双声道音频,所以AudioPlot能够画出两个波形图。
但是ListPlot却把两组数据画到一起了。
因此,这里需要单独画某一个声道的波形图:
ListPlot[AudioData[a][[1]], PlotStyle -> Blue,
AspectRatio -> 2/3] // AbsoluteTiming
用时5秒左右。

2、如果要用AudioPlot画波形图,需要把单声道的数据转化为音频,然后画图:
AudioPlot[AudioData[a][[1]] // Audio, PlotStyle -> Blue,
AspectRatio -> 2/3] // AbsoluteTiming
用时0.3秒左右。

3、或者还可以这样:
AudioPlot[AudioChannelSeparate[a][[1]], PlotStyle -> Blue,
AspectRatio -> 2/3] // AbsoluteTiming

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:133
阅读量:148
阅读量:21
阅读量:164
阅读量:32