gpt4 book ai didi

c# - C#使用NAudio转换WAV文件

转载 作者:行者123 更新时间:2023-12-02 22:57:11 24 4
gpt4 key购买 nike

我有一个WAV文件,其2 ^ 16值介于0到2之间。
我想将其更改为具有2 ^ 8的值... ...这意味着它将具有较少的信息,但将占用较少的空间。

我有转换公式,但我不知道如何访问数据。

我已阅读以下文件:

 wave = new NAudio.Wave.WaveChannel32(new NAudio.Wave.WaveFileReader(open.FileName));

while (wave.Position < wave.Length)
{
read = wave.Read(buffer,0,16348);
}

现在我可以使用wave或buffer。

我如何将wave修改为2 ^ 8?我想传递每个值并将其转换..但我不知道如何访问转换的值。

例如,如果我有一个代表wav文件的float数组,我将知道如何继续。

最佳答案

要访问数据,请使用阅读器的Read方法:

var myReader = new WaveFilereader(filename);
int bytesRead = 0;
var readChunck = new byte[1024];
do
{
//Read 1024 bytes at a time, will return 0 when there are no more bytes to Read
bytesRead = myReader.Read(readChunk, 0 , readChunk.length );

//Process the bytes here

}
while(bytesRead != 0)

另外,您可以使用Media Foundation重采样器对音频进行重新采样,从而使生活更轻松。您可以使用Media Foundation重采样器对音频进行下采样,方法如下:
   //Read 2-channel Audio with sample rate 44.1Khz 
var myReader = new WaveFileReader(filename);

//New Waveformat has 2-channels and sample rate 22KHz
var myOutputFormat = new WaveFormat(22000,2);

//Resample
var resampledAudio = new MediaFoundationResampler(myReader, myOutputFormat)
{ ResamplerQuality = 60 });

有关音频转换的更多信息,请参见 THIS

关于c# - C#使用NAudio转换WAV文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23427029/

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