code: def main(args):
      models = glob.glob(os.path.join(args.testset_dir, "*"))
      audio_clips_list = []
  
      if args.personalized_MOS:
          primary_model_path = os.path.join(
              "pDNSMOS", "sig_bak_ovr.onnx"
          )
      else:
          primary_model_path = os.path.join(
              "DNSMOS", "sig_bak_ovr.onnx"
          )
  
      compute_score = ComputeScore(primary_model_path)
  
      rows = []
      clips = []
      clips = glob.glob(os.path.join(args.testset_dir, "*.wav"))
      is_personalized_eval = args.personalized_MOS
      desired_fs = SAMPLING_RATE
      for m in tqdm(models):
          max_recursion_depth = 10
          audio_path = os.path.join(args.testset_dir, m)
          audio_clips_list = glob.glob(
              os.path.join(audio_path, "*.wav")
          )
          while len(audio_clips_list) == 0 and max_recursion_depth > 0:
              audio_path = os.path.join(audio_path, "**")
              audio_clips_list = glob.glob(
                  os.path.join(audio_path, "*.wav")
              )
              max_recursion_depth -= 1
          clips.extend(audio_clips_list)
  
      with concurrent.futures.ThreadPoolExecutor() as executor:
          future_to_url = {
              executor.submit(
                  compute_score, clip, desired_fs, is_personalized_eval
              ): clip
              for clip in clips
          }
          for future in tqdm(
              concurrent.futures.as_completed(future_to_url)
          ):
              clip = future_to_url[future]
              try:
                  data = future.result()
              except Exception as exc:
                  print("%r generated an exception: %s" % (clip, exc))
              else:
                  rows.append(data)
  
      df = pd.DataFrame(rows)
      if args.csv_path:
          csv_path = args.csv_path
          df.to_csv(csv_path)
      else:
          print(df.describe())
  
      print("======== DNSMOS scores ======== ")
      print("SIG:", df.loc[:, "SIG"].mean())
      print("BAK:", df.loc[:, "BAK"].mean())
      print("OVRL:", df.loc[:, "OVRL"].mean())
  
file_path: speechbrain/recipes/DNS/enhancement/dnsmos_local.py
imports: import argparse
  import concurrent.futures
  import glob
  import os
  import librosa
  import numpy
  import onnxruntime
  import pandas
  import soundfile
  from tqdm import tqdm
label_desc: Use image node_id 1 for calling a global function with example usage: main(args) without return types