如何将Dialogic ADPCM VOX文件每秒6000个样本转换为Alvas.Audio中的Wave GSM?
答案 0 :(得分:1)
请参阅example和以下代码
private static void Vox2Gsm(string voxFile, string wavFile)
{
int samplesPerSec = 6000;
IntPtr format = AudioCompressionManager.GetPcmFormat(1, 16, samplesPerSec);
MemoryStream ms = new MemoryStream();
BinaryReader br = new BinaryReader(File.OpenRead(voxFile));
WaveWriter ww = new WaveWriter(ms, AudioCompressionManager.FormatBytes(format));
Vox.Vox2Wav(br, ww);
br.Close();
WaveReader wr = new WaveReader(ms);
byte[] data = wr.ReadData();
wr.Close();
ww.Close();
IntPtr formatGsm = AudioCompressionManager.GetCompatibleFormat(format, AudioCompressionManager.Gsm610FormatTag);
byte[] dataGsm = AudioCompressionManager.Convert(format, formatGsm, data, false);
WaveWriter wwGsm = new WaveWriter(File.Create(wavFile), AudioCompressionManager.FormatBytes(formatGsm));
wwGsm.WriteData(dataGsm);
wwGsm.Close();
}