code: def __process_data(
      dataset_path,
      val_size,
      test_size,
      seed_for_ds_split,
      manifests_dir,
  ):
      entries = __process_transcript(dataset_path)
  
      random.Random(seed_for_ds_split).shuffle(entries)
  
      train_size = 1.0 - val_size - test_size
      train_entries, validate_entries, test_entries = np.split(
          entries,
          [
              int(len(entries) * train_size),
              int(len(entries) * (train_size + val_size)),
          ],
      )
  
      assert (
          len(train_entries) > 0
      ), "Not enough data for train, val and test"
  
      def save(p, data):
          with open(p, "w") as f:
              for d in data:
                  f.write(json.dumps(d) + "\n")
  
      save(manifests_dir / "train_manifest.json", train_entries)
      save(manifests_dir / "val_manifest.json", validate_entries)
      save(manifests_dir / "test_manifest.json", test_entries)
  
file_path: NeMo/scripts/dataset_processing/tts/sfbilingual/get_data.py
imports: import argparse
  import json
  import os
  import random
  import subprocess
  from pathlib import Path
  import numpy
  from opencc import OpenCC
label_desc: Use image node_id 3 for calling a global function with example usage: __process_data(dataset_path, val_size, test_size, seed_for_ds_split, manifests_dir) without return types