code: def main(args):
      root_dir = args.root_dir
      n_proc = args.n_proc
      assert root_dir != "", "'root_dir' should be configured!"
  
      cmd_list = []
      for r, ds, fs in os.walk(root_dir):
          for f in fs:
              if os.path.splitext(f)[1] != ".txt":
                  continue
              if f[0] in [".", "_"]:
                  continue
  
              yt_link = r.strip().split("/")[-1]
  
              stt, end = get_stt_end_indices(os.path.join(r, f))
              out_dir = os.path.join(r, f).replace(".txt", ".wav")
              # print(f"Download {yt_link} {stt} to {end}, save to {out_dir}")
  
              cmd = (
                  f"ffmpeg -y -ss {stt} -to {end}"
                  f" -i $(youtube-dl -g https://www.youtube.com/watch?v={yt_link}"
                  f" -x --audio-format best --audio-quality 0) -ac 1 -ar 16000 {out_dir}"
              )
              cmd_list.append(cmd)
  
      n_cmd = len(cmd_list)
      proc_list = []
      for idx in range(n_proc):
          stt = idx * (n_cmd // n_proc)
          end = (
              (idx + 1) * (n_cmd // n_proc)
              if idx != n_cmd - 1
              else n_cmd
          )
          proc_list.append(
              Process(target=run_cmd, args=(cmd_list[stt:end],))
          )
      for p in proc_list:
          p.start()
      for p in proc_list:
          p.join()
  
      return
  
file_path: espnet/egs2/voxceleb/spk1/local/crawl_voxcelebs_mp.py
imports: import argparse
  import os
  import subprocess
  import sys
  from multiprocessing import Process
label_desc: Use image node_id 3 for calling a global function with example usage: main(args) without return types