def METHOD_NAME(self, inputs: Dict[str, Any],
            **forward_params) -> Dict[str, Any]:
    ndarray = inputs['ndarray']
    if isinstance(ndarray, torch.Tensor):
        ndarray = ndarray.cpu().numpy()
    nsamples = inputs['nsamples']
    decode_do_segement = False
    window = 16000
    stride = int(window * 0.75)
    print('inputs:{}'.format(ndarray.shape))
    b, t = ndarray.shape  # size()
    if t > window * 120:
        decode_do_segement = True
    if t < window:
        ndarray = np.concatenate(
            [ndarray, np.zeros((ndarray.shape[0], window - t))], 1)
    elif t < window + stride:
        padding = window + stride - t
        print('padding: {}'.format(padding))
        ndarray = np.concatenate(
            [ndarray, np.zeros((ndarray.shape[0], padding))], 1)
    else:
        if (t - window) % stride != 0:
            padding = t - (t - window) // stride * stride
            print('padding: {}'.format(padding))
            ndarray = np.concatenate(
                [ndarray, np.zeros((ndarray.shape[0], padding))], 1)
    print('inputs after padding:{}'.format(ndarray.shape))
    with torch.no_grad():
        ndarray = torch.from_numpy(np.float32(ndarray)).to(self.device)
        b, t = ndarray.shape
        if decode_do_segement:
            outputs = np.zeros(t)
            give_up_length = (window - stride) // 2
            current_idx = 0
            while current_idx + window <= t:
                print('current_idx: {}'.format(current_idx))
                tmp_input = dict(noisy=ndarray[:, current_idx:current_idx
                                               + window])
                tmp_output = self.model(
                    tmp_input, )['wav_l2'][0].cpu().numpy()
                end_index = current_idx + window - give_up_length
                if current_idx == 0:
                    outputs[current_idx:
                            end_index] = tmp_output[:-give_up_length]
                else:
                    outputs[current_idx
                            + give_up_length:end_index] = tmp_output[
                                give_up_length:-give_up_length]
                current_idx += stride
        else:
            outputs = self.model(
                dict(noisy=ndarray))['wav_l2'][0].cpu().numpy()
    outputs = (outputs[:nsamples] * 32768).astype(np.int16).tobytes()
    return {OutputKeys.OUTPUT_PCM: outputs}