#!/bin/bash set -e export HF_HUB_ENABLE_HF_TRANSFER=0 mkdir -p /scratch/restore /scratch/p2raw # 1) audio test 892 + resample 16k cd /scratch/p2raw if [ ! -f newaudios.zip ]; then curl -sSL -o newaudios.zip https://storage.googleapis.com/waxalphase2/newaudios.zip; fi rm -rf newaudios __MACOSX; unzip -q -o newaudios.zip mkdir -p /scratch/p2_16k for f in newaudios/ID_*.wav; do o=/scratch/p2_16k/$(basename "$f") [ -f "$o" ] || ffmpeg -v error -y -i "$f" -ac 1 -ar 16000 "$o" done echo "AUDIO_16K=$(ls /scratch/p2_16k/*.wav | wc -l)" # 2) devhard (manifests + audio) + modeles candidats depuis HF /root/venv/bin/python - <<"PY" from huggingface_hub import snapshot_download pats=["devhard/*.jsonl","devhard_audio/*.flac"] MODELS=["lin_r_best","lin_r2_best","lin_s1_best","lin_s2_best","lin_s3_best","lin_ws_best", "mms300_lin_best","sna_ws_best","sna_r_best","sna_r2_best","sna_s1_best","sna_s2_best"] for m in MODELS: pats.append(m+"/*") snapshot_download(repo_id="Pricile/waxal2026-backup",repo_type="model", local_dir="/scratch/restore",allow_patterns=pats,max_workers=8, token="$HF_TOKEN") print("HF_SNAPSHOT_OK") PY # 3) reecrire les chemins audio des manifests vers devhard_audio /root/venv/bin/python - <<"PY" import json,os,glob AUD="/scratch/restore/devhard_audio" have={os.path.basename(p) for p in glob.glob(AUD+"/*.flac")} out=[] for lg in ["lin","sna"]: src=f"/scratch/restore/devhard/devhard_{lg}.jsonl" rows=[] for l in open(src,encoding="utf-8"): r=json.loads(l); b=os.path.basename(r["audio"]) if b in have: r["audio"]=os.path.join(AUD,b); r["lang"]=lg; rows.append(r) print(lg,"clips utilisables:",len(rows)) out+=rows with open("/root/devhard/devhard_linsna.jsonl","w",encoding="utf-8") as f: for r in out: f.write(json.dumps(r,ensure_ascii=False)+"\n") print("DEVHARD_REBUILT",len(out)) PY echo "RESTORE_DONE"