如何获得在C#中的声音数据的采样值(How to get sound data sample val

2019-06-24 05:18发布

我需要这样,通过使用我需要得到在每一秒的声音数据的振幅值的样本值以得到WAV文件的声音数据的采样值。

重要提示:是否有任何方式使用n音讯库或WMP库获取音频数据采样值?

我得到这样的采样值:

byte[] data = File.ReadAllBytes(File_textBox.Text);
            var samples=new int[data.Length];
            int x = 0;
            for (int i = 44; i <data.Length; i += 2)
            {
                samples[x] = BitConverter.ToInt16(data, i);
                x++;
            }

但我得到负值更像(-326260)。 所以这是对还是错? 我的意思是可以在样本值是负数或不是,如果是正确的,那么它是什么意思声音或沉默?

Answer 1:

n音讯能为你做到这一点,它在库(我认为这是对的WaveStream或WaveReader类,或者类似的东西)。 我可以推荐它的使用,如果它没有太多的开销。

如果你想滚你自己,并希望处理任意波形文件,你必须对WAV文件格式阅读起来,并分析头自己。

虽然在一般的 WAV文件包含16位的样品,它不就得了,这取决于具体的格式,他们可能会被存储在小端或大端。

头包含有关采样率,声道数,采样位数的信息,样本的字节与此类似的,它允许你做实际的数学来得到完全一个样。



文章来源: How to get sound data sample value in c#