code: def create_custom_dataset(
      datapath,
      savepath,
      dataset_name="custom",
      set_types=["train", "valid", "test"],
      folder_names={
          "source1": "source1",
          "source2": "source2",
          "mixture": "mixture",
      },
  ):
      """
      This function creates the csv file for a custom source separation dataset
      """
  
      for set_type in set_types:
          mix_path = os.path.join(
              datapath, set_type, folder_names["mixture"]
          )
          s1_path = os.path.join(
              datapath, set_type, folder_names["source1"]
          )
          s2_path = os.path.join(
              datapath, set_type, folder_names["source2"]
          )
  
          files = os.listdir(mix_path)
  
          mix_fl_paths = [os.path.join(mix_path, fl) for fl in files]
          s1_fl_paths = [os.path.join(s1_path, fl) for fl in files]
          s2_fl_paths = [os.path.join(s2_path, fl) for fl in files]
  
          csv_columns = [
              "ID",
              "duration",
              "mix_wav",
              "mix_wav_format",
              "mix_wav_opts",
              "s1_wav",
              "s1_wav_format",
              "s1_wav_opts",
              "s2_wav",
              "s2_wav_format",
              "s2_wav_opts",
              "noise_wav",
              "noise_wav_format",
              "noise_wav_opts",
          ]
  
          with open(
              os.path.join(
                  savepath, dataset_name + "_" + set_type + ".csv"
              ),
              "w",
          ) as csvfile:
              writer = csv.DictWriter(csvfile, fieldnames=csv_columns)
              writer.writeheader()
              for i, (mix_path, s1_path, s2_path) in enumerate(
                  zip(mix_fl_paths, s1_fl_paths, s2_fl_paths)
              ):
                  row = {
                      "ID": i,
                      "duration": 1.0,
                      "mix_wav": mix_path,
                      "mix_wav_format": "wav",
                      "mix_wav_opts": None,
                      "s1_wav": s1_path,
                      "s1_wav_format": "wav",
                      "s1_wav_opts": None,
                      "s2_wav": s2_path,
                      "s2_wav_format": "wav",
                      "s2_wav_opts": None,
                  }
                  writer.writerow(row)
  
imports: import os
  import csv
label_desc: Use image node_id 2 for calling a global function with example usage: create_custom_dataset(datapath, savepath, dataset_name, set_types, folder_names) without return types