我正在尝试从原始音频文件中绘制波形。 我使用FFmpeg解复用/解码音频文件,我拥有以下信息:样本缓冲区,样本缓冲区的大小,音频文件的持续时间(以秒为单位),采样率(44100、48000等),采样大小,样本格式(uint8、int16、int32、float、double)和原始音频数据。
在互联网上探索时,我找到了这个算法(更多内容在这里):
白噪声:
该算法如下:
你只需要将每个样本从-amplitude到amplitude随机化。 在大多数情况下,我们不关心大多数通道的数量,因此我们只需用新的随机数填充每个样本。
Random rnd = new Random();
short randomValue = 0;
for (int i = 0; i < numSamples; i++)
{
randomValue = Convert.ToInt16(rnd.Next(-amplitude, amplitude));
data.shortArray[i] = randomValue;
}
这很好,但我不想那样画,我想这样画:
是否有任何算法或思路,可以利用我所拥有的信息来绘制图形?