Spaces:
Running on Zero
Running on Zero
Download scripts/make_edacc_metadata_old.py from AyoPrince/AuralGuard: direct link, hf CLI and curl.
- Browser
- Download file 2.09 kB
-
https://huggingface.co/spaces/AyoPrince/AuralGuard/resolve/main/scripts/make_edacc_metadata_old.py
- Command line
-
hf download hf://spaces/AyoPrince/AuralGuard/scripts/make_edacc_metadata_old.py
-
curl -L -o make_edacc_metadata_old.py https://huggingface.co/spaces/AyoPrince/AuralGuard/resolve/main/scripts/make_edacc_metadata_old.py
2.09 kB
| from datasets import load_dataset | |
| from pathlib import Path | |
| import soundfile as sf | |
| import pandas as pd | |
| import argparse | |
| def save_split(ds, split_name, out_audio_dir, out_csv, max_items=None): | |
| out_audio_dir = Path(out_audio_dir) | |
| out_audio_dir.mkdir(parents=True, exist_ok=True) | |
| rows = [] | |
| n = len(ds) if max_items is None else min(len(ds), max_items) | |
| for i in range(n): | |
| item = ds[i] | |
| audio = item["audio"] | |
| speaker = item.get("speaker", f"unknown_{i}") | |
| accent = item.get("accent", "unknown").replace(" ", "_").replace("/", "_") | |
| wav_path = out_audio_dir / f"{split_name}_{i:06d}_{speaker}_{accent}.wav" | |
| sf.write(wav_path, audio["array"], audio["sampling_rate"]) | |
| rows.append({ | |
| "file_path": wav_path.resolve().as_posix(), | |
| "binary_label": 0, | |
| "attack_type": "bonafide", | |
| "start_fake": -1, | |
| "end_fake": -1, | |
| "dataset": "EdAcc", | |
| "split": split_name | |
| }) | |
| pd.DataFrame(rows).to_csv(out_csv, index=False) | |
| print(f"Saved {out_csv} rows={len(rows)}") | |
| def main(): | |
| parser = argparse.ArgumentParser() | |
| parser.add_argument("--out-audio-root", default="data/edacc/audio") | |
| parser.add_argument("--out-dir", default="data/metadata") | |
| parser.add_argument("--max-train", type=int, default=3000) | |
| parser.add_argument("--max-val", type=int, default=500) | |
| args = parser.parse_args() | |
| print("Downloading/loading EdAcc...") | |
| edacc = load_dataset("edinburghcstr/edacc") | |
| out_dir = Path(args.out_dir) | |
| out_dir.mkdir(parents=True, exist_ok=True) | |
| save_split( | |
| edacc["validation"], | |
| "train", | |
| Path(args.out_audio_root) / "train", | |
| out_dir / "edacc_train.csv", | |
| max_items=args.max_train | |
| ) | |
| save_split( | |
| edacc["test"], | |
| "val", | |
| Path(args.out_audio_root) / "val", | |
| out_dir / "edacc_val.csv", | |
| max_items=args.max_val | |
| ) | |
| if __name__ == "__main__": | |
| main() | |