我正在尝试显示波形(我将自己记录在麦克风中)。
将数据保存在字节数组中。
另外,我的采样率为44100,采样大小为 16bit 。
我的数组仅包含正值,但是在某些示例中,我看到该值在-1.0到1.0之间。这是为什么?
另外,如果我的样本大小为16位并且我正在使用字节数组-我需要进行转换。
到目前为止,这是我尝试做的事情:
double[] x = new double[Arc.Buffer.Count / 2];
byte[] y = new byte[2];
for (i = 0; i < Arc.Buffer.Count; i++)
{
Array.Copy(Arc.Buffer.ToArray(), 2*i, y, 0, 2);
x[i] = (double)((y[1] << 8) | (y[0] & 0x00FF));
}
但是在这段代码之后,我的x数组包含巨大的值(而不是-1.0到1.0)。
我是这个学科的新手,我将不胜感激! (:
最佳答案
假设这是PCM数据,则可能有多种WAV / RIFF格式。如果样本大小为16位,则正在读取的值将在-32,768和32,767之间进行签名。
快速搜索“wav riff格式”后发现a resource与解析数字音频数据有关。
关于c# - C#波形-如何显示麦克风数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32910358/