ALL Lab TTS — Inference Endpoint (custom Docker container, 38 languages)
# ALL Lab TTS — Inference Endpoint (custom Docker container)
Router package for a **Hugging Face Inference Endpoint**. Serves all 38
languages in the `Individual-TTS-Best-HumanEval` collection
(`all-lab/all-lab-tts-{language}`) — see `handler.py`'s `MODELS` dict for
the exact list.
This is **not** a Space. Deploy with **Inference Endpoints → Custom Container**.
## Repo layout
| File | Role |
|------|------|
| `Dockerfile` | Custom IE container (uvicorn on port **80**) |
| `app.py` | FastAPI: `GET /health`, `GET /`, `POST /` |
| `handler.py` | Multi-language OmniVoice load/generate router (`MODELS` dict = the 38 language repos) |
| `alllab_tts/` | Vendored inference package |
| `requirements.txt` | Pins `transformers==5.13.0` (needs `HiggsAudioV2TokenizerModel`) |
## Image build (automatic)
`.github/workflows/build-and-push.yml` builds and pushes on every push to
`main`. No local Docker needed.
**Image:** `
ghcr.io`
**Package visibility:** must be **public** (Settings → Danger Zone → Change
visibility) at `
github.com`
— otherwise the Inference Endpoint's image pull fails with a 401.
## Deploy (do this in the HF UI)
1. Go to
huggingface.co (or **New Endpoint** from your HF account).
2. **Model repository:** any accessible repo works as the placeholder — this
isn't actually used by a custom-image deployment (e.g. `all-lab/all-lab-tts-hausa`).
3. **Container type → Custom**:
- **Image URL:** `
ghcr.io`
- **Port:** `80`
- **Health route:** `/health`
4. **Hardware:** GPU, e.g. AWS `nvidia-t4` / `x1`.
5. **Scaling:** `min_replica=0` for scale-to-zero billing when idle.
6. **Secrets:** `HF_TOKEN` = a token with **read access to all 38**
`all-lab/all-lab-tts-*` private model repos.
7. Optional env var: `ALL_LAB_DEFAULT_LANGUAGE=hausa` (which language warms
at container start — defaults to `hausa`). …