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':
            data = _numpy24to32bit(np.fromfile(fid, dtype=np.ubyte, count=size), 
                                   bigendian=False)
            if channels > 1:
                data = data.reshape(-1, channels)
    return data