gpt4 book ai didi

c# - C#NAudio:如何访问SignalGenerator提供的样本以将其保存为WAVE格式?

转载 作者:行者123 更新时间:2023-12-02 23:04:13 25 4
gpt4 key购买 nike

我具有以下构造函数,该构造函数可将粉红噪声直接直接播放到我的音频输出设备:

public WAVEManager(string inputFileName, string outputFileName)
{
IWavePlayer outputDevice;
outputDevice = new WaveOutEvent();

SignalGenerator pinkNoiseGenerator = new SignalGenerator();
pinkNoiseGenerator.Type = SignalGeneratorType.Pink;
outputDevice.Init(pinkNoiseGenerator);
outputDevice.Play();

// Wait for 10 seconds
System.Threading.Thread.Sleep(10000);
}

这一切都很好。我知道现在如果要写入.wav,则必须像这样初始化WaveFileWriter:
WaveFileWriter writer = new WaveFileWriter(outputFileName, pinkNoiseGenerator.WaveFormat);

然后写入创建的WAVE文件:
writer.WriteData(buffer, 0, numSamples);

麻烦的是,我不知道如何直接从 buffer填充 pinkNoiseGenerator。我已经搜索了文档和示例,但找不到与此相关的任何内容-我想它必须包含 .Read()类的 SignalGenerator方法,但是由于生成器会无限期播放,因此它没有定义的长度。对我来说,这意味着 buffer的填充方式与我们直接从输入WAVE文件读取数据的方式(据我所知)不同。

有人可以指出正确的方向吗?

谢谢。

最佳答案

这是创建包含10秒钟粉红噪音的WAV文件的方法:

var pinkNoiseGenerator = new SignalGenerator();
pinkNoiseGenerator.Type = SignalGeneratorType.Pink;
WaveFileWriter.CreateWaveFile16("pinkNoise.wav", pinkNoiseGenerator.Take(TimeSpan.FromSeconds(10)));

关于c# - C#NAudio:如何访问SignalGenerator提供的样本以将其保存为WAVE格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49455860/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com