使用 NAudio 混合两个音频文件

Mix two audio files using NAudio

我需要在一个音频文件上制造噪音。我有第一个音频(数据)和第二个音频(噪音)。如何在第一个音频上添加噪音以使其循环播放。或者,如果第一个音频比音频噪声短,则结果是第一个音频的持续时间。

我举了他们教程的例子。但是只是一个文件覆盖在另一个文件上。没有循环和长度优化的可能性

using(var reader1 = new AudioFileReader("file1.wav"))
using(var reader2 = new AudioFileReader("file2.wav"))
{
    var mixer = new MixingSampleProvider(new[] { reader1, reader2 });
    WaveFileWriter.CreateWaveFile16("mixed.wav", mixer);
}

您可以使用像 I describe here 这样的循环技术来循环较短的文件(然后需要在 ToSampleProvider 之后)。 然后在 MixingSampleProvider 上使用 Take 扩展方法以确保您只读取较长文件的持续时间,这样您就不会创建无限大的 WAV 文件。