我对数字音频编程非常陌生,并且我不确定我所做的事情是否正确以获得理想的结果。我正在尝试获取.wav文件,并将单个样本保存在一个数组中,以便我可以分析它们。我正在使用NAudio AudioFileReader,下面的代码打印出大量的浮点数,我不知道它们是否正确,或者它们在转换时被更改。理想情况下,我希望它们为32位整数。关于如何到达那里的任何建议和理解非常感谢。
AudioFileReader readertest = new AudioFileReader("C:\\Users\\minford\\Downloads\\Kalimba.wav");
int bytesnumber = (int)readertest.Length;
var buffer = new float[bytesnumber];
readertest.Read(buffer,0,bytesnumber);
for(int i = 0; i <buffer.Length; i++){
Console.Write(buffer[i]+ ", ");
}
答案 0 :(得分:1)
是的,这将打印出所有样本,因为浮点标准化为+/- 1.0范围。
是的,你会看到很多数字,因为每秒会有数千个样本。
我不确定为什么你需要它们作为32位整数。原始样本可能是16位整数,这是WAV文件的最常见选择。您可以使用WaveFileReader
将原始数据读入字节数组,然后使用several techniques中的任何一个将字节数组转换为短数组。