Spaces:
Running on Zero
Running on Zero
| #!/usr/bin/env python3 | |
| """ | |
| Verify pre-generated SVC example WAVs under example/outputs/. | |
| Usage (from space/): | |
| python scripts/verify_example_outputs.py | |
| python scripts/verify_example_outputs.py --min-size-kb 10 | |
| Exit 0 if all expected files exist and are readable audio; else exit 1. | |
| """ | |
| import argparse | |
| import sys | |
| from pathlib import Path | |
| import soundfile as sf | |
| ROOT = Path(__file__).resolve().parent.parent | |
| OUTPUT_DIR = ROOT / "example" / "outputs" | |
| # Must match PREGENERATED_MAP values in webui_svc.py (unique basenames) | |
| EXPECTED_WAVS = [ | |
| "zh_prompt_zh_target.wav", | |
| "en_prompt_en_target.wav", | |
| "sunyanzi_im_yours.wav", | |
| "sunyanzi_legend.wav", | |
| "sunyanzi_kowarekakeru.wav", | |
| "sunyanzi_fujisan.wav", | |
| ] | |
| def main() -> int: | |
| parser = argparse.ArgumentParser() | |
| parser.add_argument("--min-size-kb", type=int, default=8, help="Minimum file size (KB)") | |
| args = parser.parse_args() | |
| min_bytes = args.min_size_kb * 1024 | |
| missing = [] | |
| bad = [] | |
| for name in EXPECTED_WAVS: | |
| path = OUTPUT_DIR / name | |
| if not path.is_file(): | |
| missing.append(name) | |
| continue | |
| if path.stat().st_size < min_bytes: | |
| bad.append(f"{name} (too small: {path.stat().st_size} B)") | |
| continue | |
| try: | |
| info = sf.info(str(path)) | |
| if info.frames <= 0 or info.samplerate <= 0: | |
| bad.append(f"{name} (invalid audio)") | |
| except Exception as e: | |
| bad.append(f"{name} (soundfile: {e})") | |
| if missing: | |
| print("Missing:", file=sys.stderr) | |
| for m in missing: | |
| print(f" - {m}", file=sys.stderr) | |
| if bad: | |
| print("Invalid:", file=sys.stderr) | |
| for b in bad: | |
| print(f" - {b}", file=sys.stderr) | |
| if missing or bad: | |
| print(f"\nExpected directory: {OUTPUT_DIR}", file=sys.stderr) | |
| print("Run: cd space && . .venv/bin/activate && python -u scripts/generate_example_outputs.py --device cpu", file=sys.stderr) | |
| return 1 | |
| print(f"OK: all {len(EXPECTED_WAVS)} files verified under {OUTPUT_DIR}") | |
| return 0 | |
| if __name__ == "__main__": | |
| sys.exit(main()) | |