从.wav音频样本创建整数数组。 NAudio C#

时间:2014-09-28 22:59:04

标签: c# audio naudio

我对数字音频编程非常陌生,并且我不确定我所做的事情是否正确以获得理想的结果。我正在尝试获取.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]+ ", ");

        }

1 个答案:

答案 0 :(得分:1)

是的,这将打印出所有样本,因为浮点标准化为+/- 1.0范围。 是的,你会看到很多数字,因为每秒会有数千个样本。 我不确定为什么你需要它们作为32位整数。原始样本可能是16位整数,这是WAV文件的最常见选择。您可以使用WaveFileReader将原始数据读入字节数组,然后使用several techniques中的任何一个将字节数组转换为短数组。