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 ...任何想法,为什么?我可以解决吗? –
好像文件仍然像真实模式,我需要压缩它,任何想法如何做到这一点或以其他方式让它恢复正常? –