我想从原始音频文件中绘制波形。我使用FFmpeg对音频文件进行了解复用/解码,并且我有这些信息:采样缓冲区,采样缓冲区的大小,音频文件的持续时间(以秒为单位),采样率(44100,4800等),采样大小,采样格式(uint8,int16,int32,float,double)和原始音频数据本身。从音频中绘制波形的算法
挖掘在互联网上,我发现这个算法(更多here):
白噪声:
算法
所有你需要做的是随机每个样本从幅度到 幅度。我们并不关心大多数情况下的频道数量,因此我们只需用新的随机数填充每个样本。
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;
}
这真的很不错,但我并不想得出这种方式,但这种方式:
有如何我可以使用来绘制任何算法或想法我有什么信息?
你似乎是试图利用波形** **生成算法时,你已经有你的波形。所以这听起来像你需要什么都不做。 – Galik 2014-10-30 21:23:44
@Galik - 你的意思是“你已经有了你的波形”?我唯一拥有的是关于上面列出的原始文件的信息,现在我正在寻找一种使用这些信息绘制波形的算法。 – yayuj 2014-10-30 21:26:30
那么你链接的算法与绘制波无关。他们产生了浪潮。你使用ffmpeg生成你的wave来转换原始声音数据。所以你不需要发电机。我想也许你需要的是某种GUI框架,它允许你在屏幕上绘制东西。 – Galik 2014-10-30 21:28:11