Spaces:
Running on Zero
Running on Zero
File size: 2,155 Bytes
5f32b51 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | #!/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())
|