2014-09-28 87 views
0

我對數字音頻編程非常陌生,我不確定我所做的是否正確以獲得理想的結果。我正在嘗試使用.wav文件,並將各個樣本保存在一個數組中,以便我可以分析它們。我正在使用NAudio AudioFileReader,下面的代碼打印出大量的浮點數,我不知道它們是否正確,或者它們在轉換時被改變。理想情況下,我希望他們是32位整數。任何關於如何到達並理解的建議非常感謝。從.wav音頻樣本創建整數數組。 NAudio C#

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

是的,這將打印出所有樣本作爲浮點標準化到範圍+/- 1.0。 是的,你會看到很多數字,因爲每秒會有數千個樣本。我不確定你爲什麼需要它們爲32位整數。原始樣本可能是16位整數,這是WAV文件最常見的選擇。您可以使用WaveFileReader將原始數據讀取到字節數組中,然後使用several techniques中的任意一個將字節數組轉換爲短陣列。

+0

謝謝馬克,只是爲了添加另一個問題ID,我可以,一旦我的樣本包含在短陣列中,如果操縱它們,將它們轉換回字節數組,NAudio中是否有任何類可以寫回.WAV。提前謝謝了。 – 2014-09-29 11:23:31

+0

是的,看看WaveFileWriter – 2014-09-29 22:03:43