Add debug output to preprocessor to diagnose 0-row issue

This commit is contained in:
Michael Treadgold
2026-06-18 20:27:15 +12:00
parent ad31cac0f6
commit 1bc7d89ce9
+26 -4
View File
@@ -133,15 +133,25 @@ def process_hf_dataset(
print(f"Loading HF dataset: {dataset_path} subset={subset} split={split}")
if split:
ds = load_dataset(dataset_path, subset, split=split, trust_remote_code=True)
ds = load_dataset(dataset_path, subset, split=split)
else:
ds_dict = load_dataset(dataset_path, subset, trust_remote_code=True)
ds_dict = load_dataset(dataset_path, subset)
splits = list(ds_dict.keys())
print(f"Available splits: {splits}")
# Use first train split, or first available
preferred = [s for s in splits if "train" in s.lower()]
ds = ds_dict[preferred[0] if preferred else splits[0]]
# Debug: print first row to see available columns
first = next(iter(ds))
print(f"Dataset columns: {list(first.keys())}")
for k, v in first.items():
if isinstance(v, dict):
print(f" {k}: dict with keys {list(v.keys())}")
elif isinstance(v, str):
print(f" {k}: str ({len(v)} chars) = {v[:80]!r}")
else:
print(f" {k}: {type(v).__name__}")
import tempfile
mel_frontend = MelFrontend(HifiGanConfig(variant="v2plus"))
@@ -152,16 +162,25 @@ def process_hf_dataset(
print(f"Audio tmp dir: {audio_tmp}")
count = 0
skip_no_text = 0
skip_no_audio = 0
skip_bad_ids = 0
try:
with output_jsonl.open("w", encoding="utf-8") as f:
for i, row in enumerate(ds):
text = str(row.get(text_key, "")).strip()
if not text:
skip_no_text += 1
if skip_no_text <= 3:
print(f" Row {i}: no text (keys={list(row.keys())[:5]})")
continue
# Get audio path or array
audio_info = row.get("audio", row.get("file", None))
if audio_info is None:
skip_no_audio += 1
if skip_no_audio <= 3:
print(f" Row {i}: no audio/file key (keys={list(row.keys())[:5]})")
continue
if isinstance(audio_info, dict):
@@ -184,7 +203,9 @@ def process_hf_dataset(
try:
phone_ids, tone_ids, lang_ids = text_to_ids(text)
except Exception as e:
print(f" Skipping row {i}: text-to-ids failed: {e}")
skip_bad_ids += 1
if skip_bad_ids <= 3:
print(f" Row {i}: text-to-ids failed: {e} text={text[:60]!r}")
continue
if not phone_ids:
@@ -216,6 +237,7 @@ def process_hf_dataset(
pass
print(f"Wrote {count} rows to {output_jsonl}")
print(f"Skipped: no_text={skip_no_text} no_audio={skip_no_audio} bad_ids={skip_bad_ids}")
return count