需要C#.wav文件处理建议
我正在做的是一个小的音频编辑器,它加载一个.wav文件并在时域中显示它。用户可以选择其中的一部分并放大或DFT块,该块在频域中显示一个小窗口。(稍后将添加额外功能) 我认为将字节数组拆分为两个浮点数组是一个错误。 我使用NAudio将样本放入字节数组。 然后,我使用在堆栈溢出上找到的循环将数组拆分为左通道和右通道需要C#.wav文件处理建议,c#,naudio,C#,Naudio,我正在做的是一个小的音频编辑器,它加载一个.wav文件并在时域中显示它。用户可以选择其中的一部分并放大或DFT块,该块在频域中显示一个小窗口。(稍后将添加额外功能) 我认为将字节数组拆分为两个浮点数组是一个错误。 我使用NAudio将样本放入字节数组。 然后,我使用在堆栈溢出上找到的循环将数组拆分为左通道和右通道 private void readToArrays(WaveFileReader pcm) { wf = pcm.WaveFormat; int s
private void readToArrays(WaveFileReader pcm) {
wf = pcm.WaveFormat;
int samplesDesired = (int)pcm.Length;
buffer = new byte[samplesDesired * 4];
left = new float[samplesDesired];
right = new float[samplesDesired];
int bytesRead = pcm.Read(buffer, 0, samplesDesired);
if (wf.BitsPerSample == 16) {
if (wf.Channels == 1) {
for (int i = 0; i < buffer.Length / 4; i++)
//handle
}
else if (wf.Channels == 2) {
int index = 0;
for (int sample = 0; sample < bytesRead / 4; sample++) {
left[sample] = BitConverter.ToInt16(buffer, index);
index += 2;
right[sample] = BitConverter.ToInt16(buffer, index);
index += 2;
}
}
}else if (wf.BitsPerSample == 8) {
if (wf.Channels == 1) {
//handle
}
else if (wf.Channels == 2) {
//handle
}
}
}
private void readtoarray(波形文件读取器pcm){
wf=pcm.WaveFormat;
int sampleseeded=(int)pcm.Length;
缓冲区=新字节[所需样本*4];
左=新浮动[所需样本];
右=新浮动[所需样本];
int bytesRead=pcm.Read(缓冲区,0,所需样本);
if(wf.BitsPerSample==16){
如果(wf.Channels==1){
for(int i=0;i
TL:DR:我从单个文件的播放中得到很多噪音。我需要的是一些建议,告诉我如何仍然能够修改样本/DFT,并能够在没有噪声的情况下输出它们。请注意,我只是计算机专业的二年级学生,没有多年的工作经验
额外信息:位深度=16;抽样率=22050