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

Posted

技术标签:

【中文标题】如何使用 NAudio 将两个 wav 音频文件与 30 秒的白色声音连接起来【英文标题】:how to concatenate two wav audio files with 30 seconds of white sound using NAudio 【发布时间】:2018-01-25 08:18:59 【问题描述】:

我需要连接两个 wav 音频文件,它们之间有 30 秒的静音。

我想使用 NAudio 库 - 或任何其他可行的方式。

怎么做?

(与任何其他问题的不同之处在于,我不仅需要从两个不同的音频文件制作一个音频文件......我还需要在它们之间添加静音)

【问题讨论】:

How to join 2 or more .WAV files together programmatically?的可能重复 @galoget 我看到了这个例子——但这不是两个文件之间的 30 秒 试试这个:Concatenate wave files at 5 second intervals with NAudio 或使用sox,方法如下:combine multiple audio files with silence between each audio file in sox 【参考方案1】:

假设您的 WAV 文件具有相同的采样率和通道数,您可以使用 FollowedBy 连接并使用 SignalGenerator 结合 Take 来获得白噪声。

var f1 = new AudioFileReader("ex1.wav");
var f2 = new SignalGenerator(f1.WaveFormat.SampleRate, f1.WaveFormat.Channels)  Type = SignalGeneratorType.White, Gain = 0.2f .Take(TimeSpan.FromSeconds(5));
var f3 = new AudioFileReader("ex3.wav");
using (var wo = new WaveOutEvent())

    wo.Init(f1.FollowedBy(f2).FollowedBy(f3));
    wo.Play();
    while (wo.PlaybackState == PlaybackState.Playing) Thread.Sleep(500);

【讨论】:

以上是关于如何使用 NAudio 将两个 wav 音频文件与 30 秒的白色声音连接起来的主要内容,如果未能解决你的问题,请参考以下文章

使用 NAudio 将 g722 音频转换为 WAV

NAudio 拆分 wav 文件问题。其他所有音频文件声音失真,而其他音频文件清晰

即时将原始音频字节从 NAudio 转换为 wav 字节

使用 NAudio 替换视频的音频流

如何使用 C# NAudio 操作字节?

在 WPF C# 中使用 NAudio 录制音频