Я использую NAudio для разделения 2-канального wav-файла, который также генерируется путем записи с использованием Wasapi, включенного в NAudio. Я использовал this в качестве примера для разбиения 2-канального wav-файла. Ниже приведен мой код:Искаженный звук при разбиении 2-канального wav-файла на файлы с моноканальным wav
WaveFileReader reader = new WaveFileReader(outputFileName + "ORIGINAL.WAV");
var buffer = new byte[2 * reader.WaveFormat.SampleRate * reader.WaveFormat.Channels];
var format = new WaveFormat(reader.WaveFormat.SampleRate, 32, 1);
for (int i = 0; i < writers.Length; i++)
{
writers[i] = new WaveFileWriter(String.Format(outputFileName + "{0}.wav", i), format);
logevent.writeToLog(Convert.ToString(newWaveIn.WaveFormat.Channels));
}
int bytesRead;
while ((bytesRead = reader.Read(buffer, 0, buffer.Length)) > 0)
{
int offset = 0;
while (offset < bytesRead)
{
for (int i = 0; i < writers.Length; i++)
{
writers[i].Write(buffer, offset, 2);
offset += 2;
}
}
}
Битрейт для записанного аудио составляет 2822 Кбит/с. Два выходных wav-файла составляют 1058 кбит/с каждый, и звук воспроизводится при дрожании или очень громком белом шуме.
Большое спасибо! Мне также пришлось изменить форму волны на IeeeWaveformat, поскольку кодировка не была pcm. – Samuel