gen_ref.py 1020 B

123456789101112131415161718192021222324252627282930313233343536
  1. import json
  2. from pathlib import Path
  3. def scan_folder(base_path):
  4. wav_lab_pairs = {}
  5. base = Path(base_path)
  6. for suf in ["wav", "lab"]:
  7. for f in base.rglob(f"*.{suf}"):
  8. relative_path = f.relative_to(base)
  9. parts = relative_path.parts
  10. print(parts)
  11. if len(parts) >= 3:
  12. character = parts[0]
  13. emotion = parts[1]
  14. if character not in wav_lab_pairs:
  15. wav_lab_pairs[character] = {}
  16. if emotion not in wav_lab_pairs[character]:
  17. wav_lab_pairs[character][emotion] = []
  18. wav_lab_pairs[character][emotion].append(str(f.name))
  19. return wav_lab_pairs
  20. def save_to_json(data, output_file):
  21. with open(output_file, "w", encoding="utf-8") as file:
  22. json.dump(data, file, ensure_ascii=False, indent=2)
  23. base_path = "ref_data"
  24. out_ref_file = "ref_data.json"
  25. wav_lab_pairs = scan_folder(base_path)
  26. save_to_json(wav_lab_pairs, out_ref_file)