C# 将wav文件编码到pcm

C# 将wav文件编码到pcm,c#,file,encoding,wav,C#,File,Encoding,Wav,我需要将wav文件编码为另一种文件格式pcm。此格式必须具有以下属性:8kHz,16位 有人知道如何在c或vb中实现这一点吗? 以下是主要功能 记录器允许: 在PCM中记录未压缩的音频数据 录制压缩音频数据:IMA ADPCM、Microsoft ADPCM、CCITT A-Law、CCITT u-Law、GSM 6.10、MPEG Layer-3 mp3等; 将数据记录到流文件流、内存流中; 暂停并恢复录制; 获取当前的声音位置; 将数据记录到系统中安装的任何录音机上,包括多个声卡。 玩家允许

我需要将wav文件编码为另一种文件格式pcm。此格式必须具有以下属性:8kHz,16位

有人知道如何在c或vb中实现这一点吗?

以下是主要功能

记录器允许: 在PCM中记录未压缩的音频数据 录制压缩音频数据:IMA ADPCM、Microsoft ADPCM、CCITT A-Law、CCITT u-Law、GSM 6.10、MPEG Layer-3 mp3等; 将数据记录到流文件流、内存流中; 暂停并恢复录制; 获取当前的声音位置; 将数据记录到系统中安装的任何录音机上,包括多个声卡。 玩家允许: 播放未压缩的音频数据PCM; 播放压缩音频数据:IMA ADPCM、Microsoft ADPCM、CCITT A-Law、CCITT u-Law、GSM 6.10、MPEG Layer-3 mp3等; 播放来自流文件流、内存流的数据; 播放混合音频数据; 暂停并继续播放; 获取当前的声音位置; 从系统中安装的任何播放器播放多张声卡中的数据。 设置混音器控制: 选择要录制的源行; 改变记录源行音量; 附加控制调整。例如,麦克风增强; 更改播放的主音量; 播放静音。 编辑 改变音频数据的速度; 改变音频数据的音量; 将多段音频连接到一个音频中; 剪切一段音频流; 在音频流中插入一个片段; 移除一段音频流; 从字节数组创建音频格式; 将音频数据以指定的偏移量多次插入并混合到主音频数据中; 反向音频波流; 将立体声音频流拆分为两个单声道流; 将两个单声道音频流合并为一个立体声。 多个音频文件串联。 转换 将音频数据从一种音频格式转换为另一种格式。 将音频波流转换为mp3流。 将Dialogic.vox adpcm流转换为Mp3流。 将波形流更改为MP3流。如果波流包含MPEG第3层数据。 播放、录制和转换星号PBX中使用的原始无头格式SLINEAR etc。 播放和提取Avi流中的音频数据。 对星号PBX中使用的Dialogic.vox adpcm格式数据进行编码和解码。 将音频波流转换为mp3流 将Dialogic.vox adpcm流转换为Mp3流 杂项 查看输入声音信号的音量。 使用强名称对库进行签名。音频库可以添加到GAC
我不确定你到底想做什么。WAV文件通常只是未压缩pcm数据的包装

但是,无论是要访问数据,还是要写出原始的无头PCM文件,都可以使用。我在ArsTechnica论坛上找到了一些c

回复:丹尼尔·布鲁克纳的回答
libsndfile的作者还写道,它可以简化重采样。

未压缩的Wave文件包含普通PCM数据和一些元数据-您可以在Wotsit.org上找到描述

如果采样率、分辨率和通道数匹配,您可以去掉元数据

如果它们不匹配,您将不得不对波形文件重新采样,但这不是一项简单的任务,如果您希望正确完成,降采样需要对数据进行低通滤波,以避免由于以下原因而产生混叠-上采样和下采样-需要良好的插值-理想情况下