Here’s a little snippet of NAudio code showing how you can convert a 16 bit PCM mono WAV file to GSM. But this time I thought I’d use F#, to show that it is quite simple to use NAudio from F#. In fact, the F#
use keyword really shines here, as it reduces the level of indentation that you’d have with C#.
Here’s the sample. C# developers should have no problem using this. Basically the signal chain is a
WaveFileReader –> WaveFormatConversionStream –> WaveFileWriter, which is the typical pattern you would use for all sorts of format conversions in NAudio.
let convertToGsm (input:string) output = use reader = new WaveFileReader(input) let targetFormat = new Gsm610WaveFormat() use converter = new WaveFormatConversionStream(targetFormat, reader) WaveFileWriter.CreateWaveFile(output, converter) convertToGsm "pcm.wav" "gsm.wav"