【问题标题】:Distorted audio when splitting 2 channel wav file into mono channel wav files将 2 通道 wav 文件拆分为单通道 wav 文件时音频失真
【发布时间】:2016-05-17 09:27:22
【问题描述】:

我正在使用 NAudio 拆分一个 2 通道 wav 文件,该文件也是通过使用 NAudio 中包含的 Wasapi 录制而生成的。我以this 为例来拆分 2 通道 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;
         }
    }
}

录制音频的比特率为 2822kbps。两个输出 wav 文件各为 1058kbps,播放时声音会变得抖动或非常响亮的白噪声。

【问题讨论】:

    标签: c# audio naudio


    【解决方案1】:

    如果您正在处理的是 32 位音频,那么您需要一次写入四个字节,而不是循环中的两个字节

    【讨论】:

    • 非常感谢!由于编码不是 pcm,我还必须将波形更改为 IeeeWaveformat。
    猜你喜欢
    • 2012-08-17
    • 1970-01-01
    • 2017-08-30
    • 1970-01-01
    • 2014-09-30
    • 2021-04-27
    • 1970-01-01
    • 2016-10-26
    • 1970-01-01
    相关资源
    最近更新 更多