如何使用 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 秒的白色声音连接起来的主要内容,如果未能解决你的问题,请参考以下文章