在音频文件中添加给定持续时间的蜂鸣声或静音 ||音频|| 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);
}
}
我正在使用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);
}
}