code: def fisher_data_prep(data_folder, save_folder):
      """
      Prepare Fisher data for Tokenizer and LM Training.
      The Fisher transcripts are located at
      LDC2004T19/fe_03_p1_tran and LDC2005T19/fe_03_p2_tran.
  
      Parameters
      ----------
      data_folder : str
          Path to the folder where the Fisher data is located.
      save_folder : str
          Path to the folder where you want to store the prepared data.
  
      Returns
      -------
      A list containing the prepared data for further processing
      """
  
      logger.info(
          "Begin preparing the Fisher corpus transcripts (LDC2002S09 and LDC2002T43)"
      )
  
      fisher_dirs = [
          "LDC2004T19/fe_03_p1_tran/data/trans",
          "LDC2005T19/fe_03_p2_tran/data/trans",
      ]
  
      for fisher_dir in fisher_dirs:
          joined_path = os.path.join(data_folder, fisher_dir)
          if not os.path.exists(joined_path):
              err_msg = f"The folder {joined_path} does not exist (it is expected to prepare the Fisher corpus)"
              raise OSError(err_msg)
  
      csv_lines = [["ID", "words"]]
      num_files_processed = 0
      num_dirs_processed = 0
      utt_count = 0
  
      for fisher_dir in fisher_dirs:
          joined_path = os.path.join(data_folder, fisher_dir)
          transcript_files = get_all_files(
              joined_path, match_and=[".txt"]
          )
  
          for transcript_files in transcript_files:
              with open(transcript_files) as file:
                  for line in file:
                      # skip header and empty lines
                      if line.startswith("#") or len(line.strip()) < 1:
                          continue
  
                      # Create unique id
                      id = "fisher-" + str(utt_count)
                      transcription = line.split()[3:]
                      transcription = " ".join(transcription)
                      transcription_clean = filter_text(
                          transcription, dataset="fisher"
                      )
  
                      # Split acronyms written as u._c._l._a._ into single characters (e.g. u c l a)
                      transcription_clean = remove_acronym_symbols(
                          transcription_clean
                      )
                      transcription_clean = (
                          transcription_clean.upper().strip()
                      )
  
                      # Skip empty transcriptions
                      if len(transcription_clean) > 0:
                          csv_lines.append([id, transcription_clean])
                          utt_count += 1
              # This is just for accounting
              num_files_processed += 1
          num_dirs_processed += 1
  
      logger.info(
          f"Fisher corpus: Processed {num_files_processed} files in "
          f"{num_dirs_processed} directories."
      )
  
      csv_file = os.path.join(save_folder, "fisher.csv")
      logger.info(f"Creating csv file {csv_file}")
  
      with open(csv_file, mode="w") as csv_f:
          csv_writer = csv.writer(
              csv_f,
              delimiter=",",
              quotechar='"',
              quoting=csv.QUOTE_MINIMAL,
          )
  
          for line in csv_lines:
              csv_writer.writerow(line)
      return csv_lines
  
imports: import re
  import csv
  import logging
  import os
  from collections import defaultdict
  from speechbrain.dataio.dataio import merge_csvs
  from speechbrain.utils.data_utils import download_file, get_all_files
label_desc: Use image node_id 19 for calling a global function with example usage: fisher_data_prep(data_folder, save_folder) and returns: csv_lines