code: def main(args):
      samples = load_tsv_to_dicts(args.raw_manifest)
      ids = [
          sample[args.id_header] if args.id_header else ""
          for sample in samples
      ]
      audio_paths = [sample[args.audio_header] for sample in samples]
      texts = [sample[args.text_header] for sample in samples]
  
      prepare_w2v_data(
          args.w2v_dict_dir,
          args.w2v_sample_rate,
          args.w2v_label,
          audio_paths,
          texts,
          args.split,
          args.asr_dir,
      )
      run_asr(
          args.asr_dir,
          args.split,
          args.w2v_ckpt,
          args.w2v_label,
          args.asr_dir,
      )
      ind_to_err_rates = compute_error_rate(
          args.asr_dir
          / f"hypo.word-{args.w2v_ckpt.name}-{args.split}.txt",
          args.asr_dir
          / f"ref.word-{args.w2v_ckpt.name}-{args.split}.txt",
          args.err_unit,
      )
  
      uer_path = args.asr_dir / f"uer_{args.err_unit}.{args.split}.tsv"
      with open(uer_path, "w") as f:
          f.write("id\taudio\tuer\n")
          for ind, (id_, audio_path) in enumerate(
              zip(ids, audio_paths)
          ):
              f.write(
                  f"{id_}\t{audio_path}\t{ind_to_err_rates[ind]:.4f}\n"
              )
  
file_path: fairseq/examples/speech_synthesis/evaluation/eval_asr.py
imports: import argparse
  import editdistance
  import re
  import shutil
  import soundfile
  import subprocess
  from pathlib import Path
  from examples.speech_to_text.data_utils import load_tsv_to_dicts
label_desc: Use image node_id 5 for calling a global function with example usage: main(args) without return types