使用 NAudio 将 WAV 文件转换为 2 个单独的 PCM 文件

Posted

技术标签:

【中文标题】使用 NAudio 将 WAV 文件转换为 2 个单独的 PCM 文件【英文标题】:Convert WAV File into 2 separate PCM files using NAudio 【发布时间】:2014-07-14 08:48:52 【问题描述】:

我有一个工作任务,我需要将一个本地 .wav 文件转换成 2 个单独的 PCM 文件。

我已设法将文件读入 WavStream 或 Byte[],但不知道如何将每个通道转换为单独的文件,而不会丢失标题。

示例代码将不胜感激。

谢谢,

诺基。

附言

这是我使用的代码。

public void WavToPcmConvert(string filePath)

    string fileName = Path.GetFileNameWithoutExtension(filePath);

    using (var reader = new WaveFileReader(filePath))
    
        using (var converter = WaveFormatConversionStream.CreatePcmStream(reader))
        
              WaveFileWriter.CreateWaveFile(, converter);
        
    

【问题讨论】:

【参考方案1】:

在 PCM 文件中,样本是左右交错的。假设你有 16 位样本,这意味着你得到两个字节的左声道,两个字节的右声道,依此类推。

因此,创建两个WaveFileWriters,然后从转换器读取一秒钟的音频,循环读取您读取的字节,然后将交替对写入每个WaveFileWriter。继续直到输入流结束(converter.Read 返回 0)。

【讨论】:

以上是关于使用 NAudio 将 WAV 文件转换为 2 个单独的 PCM 文件的主要内容,如果未能解决你的问题,请参考以下文章

在 NAudio 中附加 WAV 标头

C# 使用 NAudio 转换 wav 文件

Naudio mvc 将 mp3 转换为 wav

使用 NAudio/Lame 将 .wav 转换为 mp3 时如何设置通道和采样率?

使用 NAudio 将 WAV 流转换为 Opus

使用 NAudio 转换为 WAV 后使用 SoundPlayer 播放 MP3