code: def create_aishell1mix_metadata(
      aishell1_dir,
      aishell1_md_dir,
      wham_dir,
      wham_md_dir,
      md_dir,
      n_src,
  ):
      """Generate aishell1mix metadata according to aishell1 metadata"""
  
      # Dataset name
      dataset = f"aishell1mix{n_src}"
      # List metadata files in aishell1
      aishell1_md_files = os.listdir(aishell1_md_dir)
      # List metadata files in wham_noise
      wham_md_files = os.listdir(wham_md_dir)
      # If you wish to ignore some metadata files add their name here
      # Example : to_be_ignored = ['dev-other.csv']
      to_be_ignored = []
  
      check_already_generated(
          md_dir, dataset, to_be_ignored, aishell1_md_files
      )
      # Go through each metadata file and create metadata accordingly
      for aishell1_md_file in aishell1_md_files:
          if not aishell1_md_file.endswith(".csv"):
              print(f"{aishell1_md_file} is not a csv file, continue.")
              continue
          # Get the name of the corresponding noise md file
          try:
              wham_md_file = [
                  f
                  for f in wham_md_files
                  if f.startswith(aishell1_md_file)
              ][0]
          except IndexError:
              print(
                  "Wham metadata are missing you can either generate the "
                  "missing wham files or add the aishell1 metadata to "
                  "to_be_ignored list"
              )
              break
  
          # Open .csv files from aishell1
          aishell1_md = pd.read_csv(
              os.path.join(aishell1_md_dir, aishell1_md_file),
              engine="python",
          )
          # Open .csv files from wham_noise
          wham_md = pd.read_csv(
              os.path.join(wham_md_dir, wham_md_file), engine="python"
          )
          # Filenames
          save_path = os.path.join(
              md_dir, "_".join([dataset, aishell1_md_file])
          )
          info_name = (
              "_".join(
                  [dataset, aishell1_md_file.split(".")[0], "info"]
              )
              + ".csv"
          )
          info_save_path = os.path.join(md_dir, info_name)
          print(
              f"Creating {os.path.basename(save_path)} file in {md_dir}"
          )
          # Create dataframe
          mixtures_md, mixtures_info = create_aishell1mix_df(
              aishell1_md, aishell1_dir, wham_md, wham_dir, n_src
          )
          # Round number of files
          mixtures_md = mixtures_md[: len(mixtures_md) // 100 * 100]
          mixtures_info = mixtures_info[
              : len(mixtures_info) // 100 * 100
          ]
  
          # Save csv files
          mixtures_md.to_csv(save_path, index=False)
          mixtures_info.to_csv(info_save_path, index=False)
  
imports: import argparse
  import os
  import random
  import warnings
  import numpy
  import pandas
  import pyloudnorm
  import soundfile
  from tqdm import tqdm
label_desc: Use image node_id 2 for calling a global function with example usage: create_aishell1mix_metadata(aishell1_dir, aishell1_md_dir, wham_dir, wham_md_dir, md_dir, n_src) without return types