docstr: streaming_merge. It merges the frame-level processed audio chunks
  in the streaming *simulation*. It is noted that, in real applications,
  the processed audio should be sent to the output channel frame by frame.
  You may refer to this function to manage your streaming output buffer.
  
  Args:
      chunks: List [(B, frame_size),]
      ilens: [B]
  Returns:
      merge_audio: [B, T]
code: def streaming_merge(
      self, chunks: torch.Tensor, ilens: torch.tensor = None
  ):
      """streaming_merge. It merges the frame-level processed audio chunks
      in the streaming *simulation*. It is noted that, in real applications,
      the processed audio should be sent to the output channel frame by frame.
      You may refer to this function to manage your streaming output buffer.
  
      Args:
          chunks: List [(B, frame_size),]
          ilens: [B]
      Returns:
          merge_audio: [B, T]
      """
  
      raise NotImplementedError
  
file_path: espnet/espnet2/enh/decoder/abs_decoder.py
imports: from abc import ABC, abstractmethod
  from typing import Tuple
  import torch
label_desc: Use image node_id 3 for calling the AbsDecoder obj's underlying member method code with example usage: obj.streaming_merge(chunks, ilens) without return types