shaml / README.md
ahad-m
Fix short_description length for HF Spaces metadata
4ee6ff5
|
Raw
History Blame Contribute Delete
1.97 kB
---
title: شَمْل - Arabic Diacritization
emoji: 🎙️
colorFrom: indigo
colorTo: purple
sdk: docker
app_port: 7860
pinned: false
license: apache-2.0
short_description: Arabic speech-to-text + diacritization
---
# شَمْل (Lisan / Shaml) — Arabic Diacritization
AI-powered Arabic diacritization platform combining:
- **Whisper ASR** for Classical Arabic speech-to-text
- **Diac (NAACL 2024)** transformer for restoring tashkeel
- **FastAPI** backend serving a React (Vite) frontend
- Optional **Supabase** persistence for audio + text records
## Workflow
1. Record or upload an Arabic audio clip
2. Whisper transcribes it
3. Edit the transcription if needed
4. Diac restores diacritics on the edited text
5. (Optional) Save the audio + texts to Supabase
## Environment Variables (Secrets)
Set the following as **Repository Secrets** in the Space settings (not Variables):
- `SUPABASE_URL` — your Supabase project URL
- `SUPABASE_SERVICE_ROLE_KEY` — backend-only secret (never expose client-side)
Optional:
- `API_KEY` — protect the API behind a header (`X-API-Key`)
- `MODEL_NAME` — override default Hugging Face Diac model
- `ASR_MODEL_NAME` — override default Whisper model
- `CORS_ORIGINS` — comma-separated allowed origins (default permissive)
## Resources
- Free tier: 2 vCPU / 16 GB RAM / 50 GB disk (non-persistent)
- First boot downloads Whisper + Diac models from Hugging Face (~3-4 GB)
- Subsequent boots use cached models
## API
- `GET /api/` — service info
- `GET /api/health` — model & Supabase status
- `POST /api/transcribe/audio` — Whisper transcription
- `POST /api/diacritize` — text diacritization
- `POST /api/diacritize/audio` — one-shot audio → diacritized text
- `POST /api/records/save` — save to Supabase
- `GET /docs` — interactive OpenAPI
## Credits
Based on the NAACL 2024 paper:
> Shatnawi, S., Alqahtani, S., Aldarmaki, H. (2024). *Automatic Restoration of Diacritics for Speech Data Sets*.