pcmToWave static method

Future<void> pcmToWave({
  1. required String inputFile,
  2. required String outputFile,
  3. int numChannels = 1,
  4. int sampleRate = 16000,
})

Implementation

static Future<void> pcmToWave({
  required String inputFile,
  required String outputFile,
  int numChannels = 1,
  int sampleRate = 16000,
}) async {
  var filIn = File(inputFile);
  var filOut = File(outputFile);
  var size = filIn.lengthSync();
  IOSink sink = filOut.openWrite();

  var header = WaveHeader(
    WaveHeader.formatPCM,
    numChannels = numChannels, //
    sampleRate = sampleRate,
    16, // 16 bits per byte
    size, // total number of bytes
  );
  header.write(sink);
  await filIn.open();
  var buffer = filIn.readAsBytesSync();
  sink.add(buffer.toList());
  await sink.close();
}