Real-time Egyptian Arabic voice assistant with local LLM + advanced TTS + VAD/barge-in.
scripts/run_dev.bat, scripts/run_prod.bat, scripts/batch_test.bat, tools/check_api.py)GET / healthGET /api/dialectsGET /api/tts/statusGET /api/stt/statusPOST /api/ttsPOST /api/tts/audioPOST /stt or POST /api/stt (single upload STT)POST /api/stt/chunk (chunked STT upload)POST /api/chat (HTTP chat with session memory)POST /api/session/clearPOST /api/pipeline/voice-turn (full modular voice turn)GET /api/analytics/summaryWS /ws/voicepip install -r backend/requirements.txt
scripts\run_dev.bat
scripts\batch_test.bat
STT_PROVIDER=auto|egyptalk|whisper_api|faster_whisper|browserSTT_EGYPTALK_MODEL_ID (default NAMAA-Space/EgypTalk-ASR-v2)STT_EGYPTALK_LOCAL_MODEL (optional local .nemo file or folder containing .nemo)STT_EGYPTALK_TIMEOUT_SECONDS (default 20)STT_WHISPER_API_KEY (or OPENAI_API_KEY)STT_WHISPER_API_URL (default OpenAI transcription endpoint)STT_WHISPER_MODEL (default gpt-4o-mini-transcribe)STT_FASTER_WHISPER_MODEL (default small)STT_FASTER_WHISPER_DEVICE (default auto)STT_FASTER_WHISPER_COMPUTE_TYPE (default int8)STT_MAX_LATENCY_MS (default 7000)STT_MIN_CONFIDENCE (default 0.35)git-xet (for large Hugging Face repos):winget install git-xet
git clone https://huggingface.co/NAMAA-Space/EgypTalk-ASR-v2 models/EgypTalk-ASR-v2
pip install -r backend/requirements.txt
STT_PROVIDER=egyptalk
STT_EGYPTALK_LOCAL_MODEL=../models/EgypTalk-ASR-v2
If STT_EGYPTALK_LOCAL_MODEL is empty, backend loads STT_EGYPTALK_MODEL_ID from Hugging Face.
MEMORY_MAX_RECENT_MESSAGES (default 12)MEMORY_SUMMARIZE_AFTER_MESSAGES (default 16)MEMORY_SUMMARIZE_AFTER_TOKENS (default 900)backend/evaluation/sample_eval_dataset.jsonbackend/evaluation/evaluate_pipeline.pyUse it against running backend:
python backend/evaluation/evaluate_pipeline.py --base-url http://127.0.0.1:8765
Run from deploy/:
cd deploy
docker compose --env-file .env.docker.example up --build
Real-time Egyptian Arabic voice assistant with local LLM + advanced TTS + VAD/barge-in.
scripts/run_dev.bat, scripts/run_prod.bat, scripts/batch_test.bat, tools/check_api.py)GET / healthGET /api/dialectsGET /api/tts/statusGET /api/stt/statusPOST /api/ttsPOST /api/tts/audioPOST /stt or POST /api/stt (single upload STT)POST /api/stt/chunk (chunked STT upload)POST /api/chat (HTTP chat with session memory)POST /api/session/clearPOST /api/pipeline/voice-turn (full modular voice turn)GET /api/analytics/summaryWS /ws/voicepip install -r backend/requirements.txt
scripts\run_dev.bat
scripts\batch_test.bat
STT_PROVIDER=auto|egyptalk|whisper_api|faster_whisper|browserSTT_EGYPTALK_MODEL_ID (default NAMAA-Space/EgypTalk-ASR-v2)STT_EGYPTALK_LOCAL_MODEL (optional local .nemo file or folder containing .nemo)STT_EGYPTALK_TIMEOUT_SECONDS (default 20)STT_WHISPER_API_KEY (or OPENAI_API_KEY)STT_WHISPER_API_URL (default OpenAI transcription endpoint)STT_WHISPER_MODEL (default gpt-4o-mini-transcribe)STT_FASTER_WHISPER_MODEL (default small)STT_FASTER_WHISPER_DEVICE (default auto)STT_FASTER_WHISPER_COMPUTE_TYPE (default int8)STT_MAX_LATENCY_MS (default 7000)STT_MIN_CONFIDENCE (default 0.35)git-xet (for large Hugging Face repos):winget install git-xet
git clone https://huggingface.co/NAMAA-Space/EgypTalk-ASR-v2 models/EgypTalk-ASR-v2
pip install -r backend/requirements.txt
STT_PROVIDER=egyptalk
STT_EGYPTALK_LOCAL_MODEL=../models/EgypTalk-ASR-v2
If STT_EGYPTALK_LOCAL_MODEL is empty, backend loads STT_EGYPTALK_MODEL_ID from Hugging Face.
MEMORY_MAX_RECENT_MESSAGES (default 12)MEMORY_SUMMARIZE_AFTER_MESSAGES (default 16)MEMORY_SUMMARIZE_AFTER_TOKENS (default 900)backend/evaluation/sample_eval_dataset.jsonbackend/evaluation/evaluate_pipeline.pyUse it against running backend:
python backend/evaluation/evaluate_pipeline.py --base-url http://127.0.0.1:8765
Run from deploy/:
cd deploy
docker compose --env-file .env.docker.example up --build