code: def parse_rir_list(
      rir_set_para_array, smoothing_weight, sampling_rate=None
  ):
      """This function creates the RIR list
      Each rir object in the list contains the following attributes:
      rir_id, room_id, receiver_position_id, source_position_id, rt60, drr, probability
      Please refer to the help messages in the parser for the meaning of these attributes
      """
      rir_parser = argparse.ArgumentParser()
      rir_parser.add_argument(
          "--rir-id",
          type=str,
          required=True,
          help="This id is unique for each RIR and the noise may associate with a particular RIR by refering to this id",
      )
      rir_parser.add_argument(
          "--room-id",
          type=str,
          required=True,
          help="This is the room that where the RIR is generated",
      )
      rir_parser.add_argument(
          "--receiver-position-id",
          type=str,
          default=None,
          help="receiver position id",
      )
      rir_parser.add_argument(
          "--source-position-id",
          type=str,
          default=None,
          help="source position id",
      )
      rir_parser.add_argument(
          "--rt60",
          type=float,
          default=None,
          help="RT60 is the time required for reflections of a direct sound to decay 60 dB.",
      )
      rir_parser.add_argument(
          "--drr",
          type=float,
          default=None,
          help="Direct-to-reverberant-ratio of the impulse response.",
      )
      rir_parser.add_argument(
          "--cte",
          type=float,
          default=None,
          help="Early-to-late index of the impulse response.",
      )
      rir_parser.add_argument(
          "--probability",
          type=float,
          default=None,
          help="probability of the impulse response.",
      )
      rir_parser.add_argument(
          "rir_rspecifier",
          type=str,
          help="""rir rspecifier, it can be either a filename or a piped command.
                              E.g. data/impulses/Room001-00001.wav or "sox data/impulses/Room001-00001.wav -t wav - |" """,
      )
  
      set_list = parse_set_parameter_strings(rir_set_para_array)
  
      rir_list = []
      for rir_set in set_list:
          current_rir_list = [
              rir_parser.parse_args(shlex.split(x.strip()))
              for x in open(rir_set.filename)
          ]
          for rir in current_rir_list:
              if sampling_rate is not None:
                  # check if the rspecifier is a pipe or not
                  if len(rir.rir_rspecifier.split()) == 1:
                      rir.rir_rspecifier = (
                          "sox {0} -r {1} -t wav - |".format(
                              rir.rir_rspecifier, sampling_rate
                          )
                      )
                  else:
                      rir.rir_rspecifier = (
                          "{0} sox -t wav - -r {1} -t wav - |".format(
                              rir.rir_rspecifier, sampling_rate
                          )
                      )
  
          rir_list += smooth_probability_distribution(
              current_rir_list, smoothing_weight, rir_set.probability
          )
  
      return rir_list
  
imports: import argparse, shlex, glob, math, os, random, sys, warnings, copy, imp, ast
label_desc: Use image node_id 15 for calling a global function with example usage: parse_rir_list(rir_set_para_array, smoothing_weight, sampling_rate) and returns: rir_list