关于音频:Ruby中的波形可视化

关于音频:Ruby中的波形可视化

Waveform Visualization in Ruby

我将要开始一个项目,该项目将记录和编辑音频文件,并且我正在寻找一个很好的库(最好是Ruby,但会考虑使用Java或.NET之外的其他任何东西)来实时显示波形。

有人知道我应该从哪里开始搜索吗?


要流入浏览器的数据很多。 Flash或Flex图表可能是唯一具有内存效率的解决方案。 Javascript图表倾向于分解大数据集。


我写了一个:

http://github.com/pangdudu/rude/tree/master/lib/waveform_narray_testing.rb

,缺口


在显示音频波形时,您将需要对原始数据进行某种形式的数据缩减,因为音频文件中可用的数据通常比屏幕上的像素多。大多数音频编辑器会构建一个单独的文件(称为峰文件或概述文件),该文件存储音频数据的子集(通常是波形的峰和谷),以用于不同的缩放级别。然后,当您放大到特定点时,您便开始引用原始音频数据本身。

这里有一些很好的文章:

波形显示

建立音频波形显示

就源代码而言,我建议您浏览Audacity源代码。 Audacity的波形显示效果非常好,并且在渲染波形时很可能会进行类似的数据缩减。


处理通常用于可视化,它具有Ruby端口:

https://github.com/jashkenas/ruby-processing/wiki


另一个选择是使用GD或RMagick在服务器端生成波形。但是祝您能够编译RubyGD好运。


推荐阅读