在音频文件中添加给定持续时间的蜂鸣声或静音 ||音频|| C#

Adding Beep or Silence for a given duration in an Audio file || NAudio || C#

我正在使用NAudio 来录制和播放音频文件。现在,我想在给定的持续时间内在音频文件中添加静音或蜂鸣声。您能否建议 NAudio 提供商名称以实现它?

要生成蜂鸣声,请看一下SignalGenerator,它可以生成正弦波。有一个 Take 扩展方法来限制蜂鸣声的持续时间。对于静音,您可以使用相同的技术,除了 SilenceProvider.

这里有一个简单的例子,两声嘟嘟声之间没有声音:

var beep1 = (new SignalGenerator(){ Frequency = 1000, Gain = 0.2}).Take(TimeSpan.FromSeconds(2));
var silence = new SilenceProvider(beep1.WaveFormat).ToSampleProvider().Take(TimeSpan.FromSeconds(2));
var beep2 = (new SignalGenerator() { Frequency = 1500, Gain = 0.2 }).Take(TimeSpan.FromSeconds(2));
var concat = beep1.FollowedBy(silence).FollowedBy(beep2);
using (var wo = new WaveOutEvent())
{
    wo.Init(concat);
    wo.Play();
    while(wo.PlaybackState == PlaybackState.Playing)
    {
        Thread.Sleep(500);
    }
}