code: def prepare_timit(
      data_folder,
      save_json_train,
      save_json_valid,
      save_json_test,
      phn_set=39,
      uppercase=False,
      skip_prep=False,
  ):
      """
      repares the json files for the TIMIT dataset.
  
      Arguments
      ---------
      data_folder : str
          Path to the folder where the original TIMIT dataset is stored.
      save_json_train : str
          The path where to store the training json file.
      save_json_valid : str
          The path where to store the valid json file.
      save_json_test : str
          The path where to store the test json file.
      phn_set : {60, 48, 39}, optional,
          Default: 39
          The phoneme set to use in the phn label.
          It could be composed of 60, 48, or 39 phonemes.
      uppercase : bool, optional
          Default: False
          This option must be True when the TIMIT dataset
          is in the upper-case version.
      skip_prep: bool
          Default: False
          If True, the data preparation is skipped.
  
      Example
      -------
      >>> from recipes.TIMIT.timit_prepare import prepare_timit
      >>> data_folder = 'datasets/TIMIT'
      >>> prepare_timit(data_folder, 'train.json', 'valid.json', 'test.json')
      """
  
      # Skip if needed
      if skip_prep:
          return
  
      # Getting speaker dictionary
      dev_spk, test_spk = _get_speaker()
      avoid_sentences = ["sa1", "sa2"]
      extension = [".wav"]
  
      # Checking TIMIT_uppercase
      if uppercase:
          avoid_sentences = [item.upper() for item in avoid_sentences]
          extension = [item.upper() for item in extension]
          dev_spk = [item.upper() for item in dev_spk]
          test_spk = [item.upper() for item in test_spk]
  
      # Check if this phase is already done (if so, skip it)
      if skip([save_json_train, save_json_valid, save_json_test]):
          logger.info(
              "Skipping preparation, completed in previous run."
          )
          return
  
      # Additional checks to make sure the data folder contains TIMIT
      _check_timit_folders(uppercase, data_folder)
  
      msg = "Creating json files for the TIMIT Dataset.."
      logger.info(msg)
  
      # Creating json files
      # NOTE: TIMIT has the DEV files in the test directory.
      splits = ["train", "test", "test"]
      annotations = [save_json_train, save_json_valid, save_json_test]
      match_or = [None, dev_spk, test_spk]
  
      for split, save_file, match in zip(splits, annotations, match_or):
          if uppercase:
              match_lst = extension + [split.upper()]
          else:
              match_lst = extension + [split]
  
          # List of the wav files
          wav_lst = get_all_files(
              data_folder,
              match_and=match_lst,
              match_or=match,
              exclude_or=avoid_sentences,
          )
          if split == "dev":
              print(wav_lst)
  
          # Json creation
          create_json(wav_lst, save_file, uppercase, phn_set)
  
file_path: speechbrain/recipes/TIMIT/ASR/CTC/timit_prepare.py
imports: import os
  import json
  import logging
  from speechbrain.utils.data_utils import get_all_files
  from speechbrain.dataio.dataio import read_audio
label_desc: Use image node_id 1 for calling a global function with example usage: prepare_timit(data_folder, save_json_train, save_json_valid, save_json_test, phn_set, uppercase, skip_prep) without return types