code: def _wavReadData(fid, 
                   size:int, 
                   channels:int, 
                   encoding:str, 
                   bigendian:bool) -> np.ndarray:
      
      bits = int(encoding[3:])
      if bits == 8:
          data = np.fromfile(fid, dtype=np.ubyte, count=size)
          if channels > 1:
              data = data.reshape(-1, channels)
      else:
          bytes = bits // 8
          if encoding in ('pcm16', 'pcm32', 'pcm64'):
              if bigendian:
                  dtype = '>i%d' % bytes
              else:
                  dtype = '<i%d' % bytes
              data = np.fromfile(fid, dtype=dtype, count=size // bytes)
              if channels > 1:
                  data = data.reshape(-1, channels)
          elif encoding[:3] == 'flt':
              print("flt32!")
              if bits == 32:
                  if bigendian:
                      dtype = '>f4'
                  else:
                      dtype = '<f4'
              else:
                  raise NotImplementedError
              data = np.fromfile(fid, dtype=dtype, count=size // bytes)
              if channels > 1:
                  data = data.reshape(-1, channels)
          elif encoding == 'pcm24':
              # this conversion approach is really bad for long files
              # TODO: do the same but in chunks
              data = _numpy24to32bit(np.fromfile(fid, dtype=np.ubyte, count=size), 
                                     bigendian=False)
              if channels > 1:
                  data = data.reshape(-1, channels)
      return data
docs: adapted from scipy.io.wavfile._read_data_chunk
  
      assume we are at the data (after having read the size)