gpt4 book ai didi

c# - 将 wav 文件存储在数组中

转载 作者:行者123 更新时间:2023-11-30 12:47:54 25 4
gpt4 key购买 nike

我需要一个快速的方法来将一个 wav 文件的所有样本存储在一个数组中。我目前正在通过播放音乐和存储 Sample Provider 的值来解决这个问题,但这不是很优雅。

从 NAudio 演示中,我有使用此方法的 Audioplayer 类:

   private ISampleProvider CreateInputStream(string fileName)
{
if (fileName.EndsWith(".wav"))
{
fileStream = OpenWavStream(fileName);
}
throw new InvalidOperationException("Unsupported extension");
}
var inputStream = new SampleChannel(fileStream, true);
var sampleStream = new NotifyingSampleProvider(inputStream);
SampleRate = sampleStream.WaveFormat.SampleRate;
sampleStream.Sample += (s, e) => { aggregator.Add(e.Left); }; // at this point the aggregator gets the current sample value, while playing the wav file
return sampleStream;
}

我想跳过这个在播放文件时获取样本值的过程,而是我想要立即获取值,而不用等到文件结束。基本上类似于matlab中的wavread命令。

最佳答案

使用AudioFileReader 读取文件。这将自动转换为 IEEE 浮点样本。然后重复调用Read方法将样本 block 读取到float[]数组中。

关于c# - 将 wav 文件存储在数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15419446/

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