【问题标题】:How can i make the sound louder with Naudio c#?如何使用 Nadio 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();
 }

【问题讨论】:

标签: c# audio naudio wave


【解决方案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

如果您了解有关您声音的所有详细信息,我认为这会有所帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多