wavToNumpyArraywavToNumpy static method

List<double> wavToNumpyArraywavToNumpy(
  1. dynamic fileData
)

Implementation

static List<double> wavToNumpyArraywavToNumpy(dynamic fileData) {
  final Uint8List bytes = () {
    if (fileData is List<int>) {
      return Uint8List.fromList(fileData);
    }
    if (fileData is Uint8List) {
      return fileData;
    }
    final File? file = () {
      if (fileData is File) {
        return fileData;
      }
      if (fileData is String) {
        return File(fileData);
      }
      return null;
    }();
    if (file == null) {
      return Uint8List(0);
    }
    if (file.existsSync() == false) {
      return Uint8List(0);
    }

    return file.readAsBytesSync();
  }();

  if (bytes.length <= 44) {
    return [];
  }

  final int16List = Int16List.view(bytes.buffer);
  return int16List.map((sample) => sample / 32768.0).toList();
}