我想導出一個雙[]數組到一個wav文件。我在操作標題(RIFF,fmt等)時遇到了一些麻煩。任何想法我應該如何處理這個?也許使用BitConverter將double []數組轉換爲byte []數組,然後使用NAudio的waveFileWriter?任何示例代碼非常感謝!雙陣列到wav
雙陣列到wav
回答
只需使用WaveFileWriter的WriteSample
方法逐個寫入每個樣本,或者使用WriteSamples
即可在一次打擊中完成。既然你有一個雙精度數組,你可以使用一點LINQ來首先轉換成浮點數組。
float[] floatArray = doubleArray.Select(s => (float)s).ToArray();
writer.WriteSamples(floatArray, 0, floatArray.Length);
這將每個樣本寫入到WaveFileWriter
,轉換到正確的位深度(例如,16位或32位IEEE浮點),它依賴於當你打開WaveFileWriter
您將不得不根據標準編寫WAV文件的所有必要位。單聲道和立體聲以及採樣率問題也會有問題。強烈建議你看看已經存在的一些處理這個問題的源代碼(我沒有在快速搜索中找到任何C#版本,雖然有幾個C/C++版本)。試圖編寫僅基於標題規範的代碼將被擊中或錯過
沒」所選WAVEFORMAT我自己也可以找到任何現有的代碼。我知道唯一的「快捷方式」是NAudio,但我不確定如何實現這一點。發現這個http://mark-dot-net.blogspot.gr/2011/04/how-to-use-wavefilewriter.html,但它假定輸入數組由字節組成 – Cobe
原始音頻是字節(實際上是字16通常是位字)。你的浮點數據是什麼樣的? –
我看着你引用的頁面,它有一個將浮點轉換爲字節流的例子。 –
- 1. 轉換雙陣列到字節陣列
- 2. n音訊:讀wav文件爲雙陣列
- 3. 轉換雙陣列雙榜陣列
- 4. 轉換雙陣列到雙ArrayList的
- 5. 雙TR陣列
- 6. json_decode雙陣列
- 7. 雙星陣列
- 8. 雙陣列SIMD?
- 9. 填充雙值雙陣列
- 10. 雙學位陣列
- 11. 雙排序陣列
- 12. 雙陣列對應
- 13. Postgres陣列雙打
- 14. CLLocationCoordinate2D陣列雙打
- 15. 將雙陣列中的某些位置複製到另一個雙陣列
- 16. 雙陣列操作單陣列
- 17. .WAV選擇器,寫聲陣列
- 18. 找到一個雙陣列OCCURENCES與jQuery
- 19. C++陣列插入到雙載體
- 20. 追加到雙陣列方法
- 21. 大雙陣列中小雙陣列的最佳匹配
- 22. Arrays.asList()。contains()在雙雙陣列中
- 23. IOS memcpy紋理雙陣列
- 24. 生成雙陣列的IL
- 25. GDB檢查長雙陣列
- 26. 雙分選陣列用PHP
- 27. 陣列中的雙引號
- 28. 爪哇 - 從雙陣列
- 29. 轉換雙陣列JSON
- 30. 初始化雙陣列
謝謝! NAudio看起來非常棒!獎勵!我很快就會進入;) – Cobe