如何使用 Nadio c# 使声音更大?
Posted
技术标签:
【中文标题】如何使用 Nadio c# 使声音更大?【英文标题】:How can i make the sound louder with Naudio c#? 【发布时间】:2018-03-02 11:08:03 【问题描述】:我正在尝试增加代码中声波的幅度。我有一个缓冲区,其中包含产生波浪所需的所有字节。
这是我的音频播放代码:
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();
【问题讨论】:
你看过这些例子吗?至少 AudioPlaybackDemo 有一个音量滑块:github.com/naudio/NAudio/blob/master/NAudioDemo/… 为我工作。 【参考方案1】:您可以转换为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 并没有开箱即用。
【讨论】:
感谢您的帮助。很抱歉无法添加到您的代表中,但我自己还没有 15 个 :(。 @pabolo12,你现在有这么多代表了。【参考方案2】:我也有类似的问题。但可以通过此链接完成:
http://mark-dot-net.blogspot.hu/2009/10/playback-of-sine-wave-in-naudio.html
如果您了解有关您声音的所有详细信息,我认为这会有所帮助
【讨论】:
以上是关于如何使用 Nadio c# 使声音更大?的主要内容,如果未能解决你的问题,请参考以下文章