我对数字音频编程非常陌生,不确定我在做什么是否正确以达到期望的结果。我正在尝试获取.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范围内的浮点。
是的,您会看到很多数字,因为每秒将有成千上万的样本。
我不确定为什么需要使用32位整数。原始样本很可能是16位整数,这是WAV文件的最常见选择。您可以使用WaveFileReader
将原始数据读出到字节数组中,然后使用several techniques中的任何一个将字节数组转换为短数组。
关于c# - 从.wav音频样本创建一个整数数组。 NAudio C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26090496/