如何在python中从音频生成这种波形?

时间:2015-10-11 17:17:40

标签: python audio

enter image description here

您好,

我应该如何在python中生成这样的波形?我不需要代码。生成这些的步骤就足够了。

干杯。

3 个答案:

答案 0 :(得分:1)

  1. 根据比例细分波形。例如,如果波形长度为1秒,并且您希望计划显示10个条形,则分成100毫秒的块。每100ms的块将是一定数量的样本,具体取决于采样率。 48kHz采样率每秒有48000个样本,因此100ms是4800个样本。

  2. 枚举每个样本块并计算最小值和最大值。

  3. 缩放并转换最小值和最大值,以获得您想要绘制的框的所需屏幕y坐标。

  4. #2的替代方案是计算每个块的abs(max(样本)),然后使用min和max的正负值。这使它始终是对称的。

答案 1 :(得分:0)

这是Github项目检查出来的, https://github.com/andrewrk/waveform  它用c和js编写。您可以检查代码审查并以您自己的语言实现它。   希望有所帮助。

答案 2 :(得分:0)

感谢@jaket的回答。

我已经编写了代码并发布在这里。 https://gist.github.com/moeseth/130cd92dc47c56c47030

您将需要pydub,matplotlib,numpy和PIL库