使用NAudio将PCM S16 LE(s16l)转换为GSM610

时间:2019-07-10 12:33:36

标签: c# naudio

我正在尝试使用NAudio将音频从PCM转换为GSM。在这种情况下,我收到此错误:

  

AcmNotPossible调用acmStreamOpen

任何人都可以帮我解决这个问题。

获取音频细节。
 编解码器:PCM S16 LE(s16l)
 频道:单声道
 采样率:22050 Hz
 每个样本的位数:16
操作系统:Windows 10

string inFile = @"E:\temp\in.wav";
string outFile = @"E:\temp\out.wav";

var reader = new WaveFileReader(inFile);
var writer = new WaveFormatConversionStream(new Gsm610WaveFormat(), reader);
WaveFileWriter.CreateWaveFile(outFile, writer);

1 个答案:

答案 0 :(得分:0)

WaveFormatConversionStream使用系统上安装的ACM驱动程序。 AcmNotPossible错误意味着不存在可以进行该转换的驱动程序。因此,最可能的解释是您的Windows版本没有GSM编解码器(或至少一个支持该特定转换的编解码器)。 NAudio演示项目(一个WinForms应用程序)具有一个页面,该页面将枚举已安装的编解码器并显示受支持的转换。