NAudio - 将音频记录到内存中,对其进行更改,然后保存到磁盘

NAudio - Record audio to memory, make changes to it, then save to disk

我要执行以下顺序:

  1. 使用 WaveIn 将音频录制到内存中。
  2. 从内存中获取内容作为 IEEE 32 位样本数组。
  3. 对示例进行一些修改。
  4. 保存回磁盘。

我知道如何使用 WaveIn 进行录制以及如何使用 WaveFileReaderWaveFileWriter。但是这里还需要其他的类,我不知道怎么用。

  1. 将您使用 WaveIn 收到的所有音频写入 MemoryStream
  2. 完成录制后,将 MemoryStream.Position 重置为 0。然后使用 WaveIn[=31= 的 WaveFormat 将其传递到 RawSourceWaveStream ]
  3. 使用 RawSourceWaveStream 上的 ToSampleProvider 转到 IEEE 32 位
  4. 从您的示例提供程序中一次将音频一个块读入一个浮点数[]。
  5. 执行您需要的任何 DSP
  6. 将其写入 WaveFileWriter

如果您将 DSP 实现为自定义 ISampleProvider,您可以进一步简化您的管道,并使用 WaveFileWriter.CreateWaveFile 自动将所有数据从 MemoryStream 提取到您的 WAV 中文件