--- title: Assyrian Urmi ASR emoji: 🎙️ colorFrom: blue colorTo: purple sdk: gradio app_file: app.py pinned: false license: apache-2.0 --- # Assyrian Neo-Aramaic (Urmi) ASR Gradio front end for [`Selest/wav2vec2-bert_Assyrian_Urmi_ASR_model`](https://huggingface.co/Selest/wav2vec2-bert_Assyrian_Urmi_ASR_model): upload or record audio, **Silero VAD** on the full clip, a **second Silero pass** on any fragment still longer than `MAX_CHUNK_SEC`, then RMS / hard split as fallback. Long speech is capped at `MAX_CHUNK_SEC`. Progress is the **fraction of speech seconds processed** (sum of segment lengths). ETA and output script options (Russian researchers / Khan / Cyrillic). ## Local run ```bash pip install -r requirements.txt pip install "gradio>=6" python app.py ``` (On Hugging Face Spaces, Gradio is installed by the platform; do not pin a conflicting version in `requirements.txt`.) **Dependencies:** `requirements.txt` pins **transformers 4.x** and uses **PyTorch CPU wheels** (`--extra-index-url`) so CPU Spaces stay smaller. For a **GPU** Space, remove the `--extra-index-url` line and install a CUDA build of `torch` per [PyTorch](https://pytorch.org/get-started/locally/). Optional environment variables: `MODEL_ID`, `MAX_CHUNK_SEC`, `MERGE_GAP_MS`, `MIN_SILENCE_CUT_MS`, `SILERO_THRESHOLD`, `SILERO_MIN_SPEECH_MS`, `SILERO_MIN_SILENCE_MS`, `SILERO_SPEECH_PAD_MS`, `SILERO_REFINE_ENABLED` (default on), `SILERO_REFINE_MIN_SILENCE_MS`, `SILERO_REFINE_THRESHOLD` (empty = same as `SILERO_THRESHOLD`). On first run, Silero is downloaded via `torch.hub` (network required). **CPU-only:** you may **raise** `MAX_CHUNK_SEC` if you have enough RAM—each forward uses more memory and time, but you get fewer chunks. If the Space OOMs or times out, lower `MAX_CHUNK_SEC` again. ## Publishing on Hugging Face Create a **Space** (Gradio SDK) and place these files at the repo root: `app.py`, `converters.py`, `requirements.txt`, and this `README.md`. A **GPU** is optional; the app runs on CPU (slower for the ASR model).