Add editable transcription workflow and Supabase save
Cursor Agent+1: AHAD
Unverified signature
536f592
- POST /transcribe/audio for ASR-only step
- Extend POST /diacritize with optional asr_text for text+ASR path
- POST /records/save uploads audio to Supabase Storage and inserts DB row
- Frontend: transcribe → editable textarea → diacritize → save button
- docs/supabase_schema.sql and .env.example Supabase vars
Co-authored-by: AHAD <ahad-m@users.noreply.github.com>
Fix mic upload: record WAV; light Arabic UI without emojis
Cursor Agent+1: AHAD
Unverified signature
e9e9d00
- Frontend records 16kHz WAV via Web Audio (fixes webm librosa error)
- Redesign شَمْl interface as clean light mode, Arabic only, no emojis
- Backend audio loader with ffmpeg fallback for non-wav uploads
Co-authored-by: AHAD <ahad-m@users.noreply.github.com>
Redesign frontend as Arabic-only شَمْل voice demo
Cursor Agent+1: AHAD
Unverified signature
88fe4cd
- Brand: شَمْل with dark elegant RTL UI
- Remove text/batch input; file upload and live microphone only
- MediaRecorder hook for direct speech input
- Arabic-only copy throughout
Co-authored-by: AHAD <ahad-m@users.noreply.github.com>
Fix Whisper short-audio error: pad clips to 30s mel window
Add audio upload: Whisper ASR + diacritization pipeline
Cursor Agent+1: AHAD
Unverified signature
58edb24
- POST /diacritize/audio with multipart file upload and optional reference text
- Lazy-loaded AsrService using Diac Whisper model (sashat/whisper-medium-ClassicalAr)
- Frontend audio tab with transcript and diacritized output display
- Config: ASR_MODEL_NAME, ASR_DEVICE, MAX_AUDIO_MB; python-multipart dependency
Co-authored-by: AHAD <ahad-m@users.noreply.github.com>
Add GET / root endpoint with API links for easier local verification
Use text branch for text-only inference on text+ASR models
Cursor Agent+1: AHAD
Unverified signature
2400aac
Pass inputs_asr=None instead of mirroring input as pseudo-ASR, which produced
undiacritized output. Implement direct encode/forward/decode to avoid Diac
predict_text empty-list .to() bug.
Co-authored-by: AHAD <ahad-m@users.noreply.github.com>
Fix text-only inference for text+ASR Diac models
Cursor Agent+1: AHAD
Unverified signature
53a9529
When USE_ASR is enabled but no ASR text is provided, mirror input text as
pseudo-ASR so predict_text receives tensors instead of an empty list.
Co-authored-by: AHAD <ahad-m@users.noreply.github.com>
Register legacy tokenizer module alias for Diac checkpoints
Cursor Agent+1: AHAD
Unverified signature
c6167cd
HF checkpoints pickle tokenizer.* classes; alias sys.modules['tokenizer']
to diac.tokenizer before load_from_checkpoint.
Co-authored-by: AHAD <ahad-m@users.noreply.github.com>
Fix Lightning patch: patch pl_load instead of restricted classmethod
Cursor Agent+1: AHAD
Unverified signature
96dc62b
Avoid calling _restricted_classmethod_impl directly; default weights_only=False
in lightning.fabric.utilities.cloud_io._load for Diac checkpoints.
Co-authored-by: AHAD <ahad-m@users.noreply.github.com>
Document PyTorch 2.6 checkpoint load fix in README
Add Diac API backend, Arabic RTL frontend, Docker, and docs
Cursor Agent+1: AHAD
Unverified signature
0b083c6
- Refactor FastAPI into backend/ with model service, Pydantic schemas, and env-based config
- Align API responses with diacritized field and X-API-Key auth (API_KEY env)
- Add local CLI script (backend/scripts/run_local.py) for single and batch inference
- Add React+Vite+Tailwind Arabic RTL demo frontend
- Add docker-compose for backend and frontend, .env.example, and Arabic README
- Document project structure and preserve compatibility via app/main.py shim
Co-authored-by: AHAD <ahad-m@users.noreply.github.com>