使用 NAudio 混合两个音频文件

Posted

技术标签:

【中文标题】使用 NAudio 混合两个音频文件【英文标题】:Mix two audio files using NAudio 【发布时间】:2019-09-04 13:32:58 【问题描述】:

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

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

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);

【问题讨论】:

【参考方案1】:

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

【讨论】:

以上是关于使用 NAudio 混合两个音频文件的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 NAudio 将两个 wav 音频文件与 30 秒的白色声音连接起来

NAudio 异步音频

使用 naudio 录制特定的应用程序音频

是否可以在 C# 中使用 NAudio 创建新的音频输入?

使用 NAudio 录制音频并在麦克风输入静音时写入文件

使用 NAudio 替换视频的音频流