Search code examples
c#audioadpcm

Dialogic ADPCM VOX file 6000 Hertz to Wave GSM in Alvas.Audio


How to convert Dialogic ADPCM VOX file 6000 samples per second to Wave GSM in Alvas.Audio?


Solution

  • Please see example and code below

    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();
    }