0
A
回答
0
沒有內置功能,但是如果您使用AudioFileReader
,則可以檢查所有樣本的值以查找最大絕對樣本值。從這裏你可以計算出原始文件可以被削減多少。
然後,您可以使用AudioFileReader
的Volume
屬性來放大音頻,然後使用WaveFileWriter.CreateWaveFile
將其寫入新的(IEEE浮點)WAV文件。 WaveFileWriter.CreateWaveFile16
可以在正常化後使用,如果你想要一個16位輸出。
下面是一些非常簡單的示例代碼
var inPath = @"E:\Audio\wav\input.wav";
var outPath = @"E:\Audio\wav\normalized.wav";
float max = 0;
using (var reader = new AudioFileReader(inPath))
{
// find the max peak
float[] buffer = new float[reader.WaveFormat.SampleRate];
int read;
do
{
read = reader.Read(buffer, 0, buffer.Length);
for (int n = 0; n < read; n++)
{
var abs = Math.Abs(buffer[n]);
if (abs > max) max = abs;
}
} while (read > 0);
Console.WriteLine($"Max sample value: {max}");
if (max == 0 || max > 1.0f)
throw new InvalidOperationException("File cannot be normalized");
// rewind and amplify
reader.Position = 0;
reader.Volume = 1.0f/max;
// write out to a new WAV file
WaveFileWriter.CreateWaveFile(outPath, reader);
}
相關問題
- 1. NAudio標準化音頻
- 2. NAudio音量變化
- 3. Naudio - 將32位wav轉換爲16位wav
- 4. 在NAudio中設置音量
- 5. ASIO的NAudio音量
- 6. NAudio ASIO播放wav
- 7. 如何使用NAudio更改wav資源的音量?
- 8. NAudio解碼ucm到pcm
- 9. NAudio峯值音量表
- 10. Naudio聲音normalize
- 11. 使用NAudio暫停錄音
- 12. 使用C#與NAudio錄音
- 13. 使用NAudio播放非PCM原始音頻
- 14. NAudio捕獲到wav文件
- 15. 使用Naudio停止wav文件
- 16. 使用naudio在wav文件中插入wav文件
- 17. 如何使用Naudio從WAV文件播放多聲道音頻?
- 18. NAudio異步音頻
- 19. 音量標準化
- 20. NAudio音頻中繼器
- 21. 使用NAudio更改wav文件(16KHz和8位)
- 22. 在播放nAudio時繪製.wav文件
- 23. 有沒有辦法在NAudio中同步播放WAV文件?
- 24. 改善NAudio Mp3音頻質量
- 25. 使用NAudio發送播放音頻
- 26. 使用NAudio播放(無效)音頻流
- 27. 使用Naudio系統音頻到Skype
- 28. 使用NAudio播放音頻文件1.7+
- 29. 使用NAudio解碼畝法音頻
- 30. 使用NAudio重新採樣音頻
它可以很好地,但它使我的文件很大,從10MB的原件269mb ...任何想法,爲什麼?我可以解決嗎? –
好像文件仍然像真實模式,我需要壓縮它,任何想法如何做到這一點或以其他方式讓它恢復正常? –