我怎样才能用 Naudio c# 使声音更响亮?
How can i make the sound louder with Naudio c#?
我试图在我的代码中增加声波的振幅。我有一个缓冲区,其中包含制作波浪所需的所有字节。
这是我的音频播放代码:
public void AddSamples(byte[] buffer)
{
//somehow adjust the buffer to make the sound louder
bufferedWaveProvider.AddSamples(buffer, 0, buffer.Length);
WaveOut waveout = new WaveOut();
waveout.Init(bufferedWaveProvider);
waveout.Play();
//to make the program more memory efficient
bufferedWaveProvider.ClearBuffer();
}
我也有类似的问题。但是可以用这个 link:
来完成
http://mark-dot-net.blogspot.hu/2009/10/playback-of-sine-wave-in-naudio.html
如果你知道关于你的声音的所有细节我认为这会很有帮助
您可以转换为 ISampleProvider
,然后尝试通过增益 > 1.0 的 VolumeSampleProvider
来放大信号。但是,如果任何样本超过 0,您最终可能会遇到硬裁剪。
WaveOut waveout = new WaveOut();
var volumeSampleProvider = new VolumeSampleProvider(bufferedWaveProvider.ToSampleProvider());
volumeSampleProvider.Volume = 2.0f; // double the amplitude of every sample - may go above 0dB
waveout.Init(volumeSampleProvider);
waveout.Play();
更好的解决方案是使用动态范围压缩器效果器,但 NAudio 并没有开箱即用。
我试图在我的代码中增加声波的振幅。我有一个缓冲区,其中包含制作波浪所需的所有字节。
这是我的音频播放代码:
public void AddSamples(byte[] buffer)
{
//somehow adjust the buffer to make the sound louder
bufferedWaveProvider.AddSamples(buffer, 0, buffer.Length);
WaveOut waveout = new WaveOut();
waveout.Init(bufferedWaveProvider);
waveout.Play();
//to make the program more memory efficient
bufferedWaveProvider.ClearBuffer();
}
我也有类似的问题。但是可以用这个 link:
来完成http://mark-dot-net.blogspot.hu/2009/10/playback-of-sine-wave-in-naudio.html
如果你知道关于你的声音的所有细节我认为这会很有帮助
您可以转换为 ISampleProvider
,然后尝试通过增益 > 1.0 的 VolumeSampleProvider
来放大信号。但是,如果任何样本超过 0,您最终可能会遇到硬裁剪。
WaveOut waveout = new WaveOut();
var volumeSampleProvider = new VolumeSampleProvider(bufferedWaveProvider.ToSampleProvider());
volumeSampleProvider.Volume = 2.0f; // double the amplitude of every sample - may go above 0dB
waveout.Init(volumeSampleProvider);
waveout.Play();
更好的解决方案是使用动态范围压缩器效果器,但 NAudio 并没有开箱即用。