Build Local-First English Tutor Automation Pipeline (WhisperX + Ollama + PDF Reports) – Windows + RTX GPU

Job ID: 40248235

Budget: $750 – $1,500 USD

I need a senior Python developer to create a fully local, offline automation pipeline for an English tutor business.

Goal:
Automate processing of lesson audio recordings:
.m4a (phone recording) → transcription (.txt + .json with timestamps) → diarization (speaker labels) → aligned transcript → lesson report via local Ollama → one-page PDF report → aggregated progress reports (monthly, half-year, yearly)

Hard requirements:
- Windows 11 + RTX 5070 GPU (compute capability sm_120)
- Transcription must use GPU (faster-whisper or WhisperX)
- Diarization must run on CPU only (pyannote.audio GPU is unreliable on this GPU)
→ If pyannote fails → fallback to simple VAD + clustering (label as “approximate”)
- All processing local (no cloud APIs except local Ollama instance)
- Reports in perfect English, parent-friendly, no sensitive data
- Tutor name: William (WG English School)
- Students age 14–18

Required outputs per lesson:
- transcripts/<lesson_id>.txt (plain)
- transcripts/<lesson_id>.json (segments, timestamps, speaker)
- diarization/<lesson_id>.rttm or .json
- reports/lessons/<lesson_id>.md + .pdf (exact one-page template)

Aggregated reports (on demand):
- reports/aggregate/<student>_monthly_<YYYY-MM>.pdf
- reports/aggregate/<student>_half-year_<YYYY-H1|H2>.pdf
- reports/aggregate/<student>_yearly_<YYYY>.pdf

Lesson report must follow this EXACT structure (Markdown first, then PDF):
**William - English Lesson Report**
Student: [Name] | Date: [DD MMM YYYY]

**Class Summary** [1-2 paragraphs]

**What the Student Did Well** - 3-5 bullets

**What Needs Improvement** - 2-4 bullets

**Next Lesson Focus** - 3-5 bullets

**5-10 Minute Home Practice Checklist** - 3-5 tasks

**Target Vocabulary & Sentences for Next Lesson** 4-6 items + examples

Progress Note: [one positive sentence]

Ollama prompt must be very strict (no inventing facts, concise, English only, parent-friendly).

Tech stack:
- Python 3.10–3.12 (prefer 3.11 or 3.12)
- Poetry (pyproject.toml + lock)
- WhisperX / faster-whisper (GPU transcription)
- Pyannote.audio (CPU diarization) + fallback
- Local Ollama (gemma2.9b-instruct-q4_K_M or similar)
- Weasyprint or ReportLab for PDF
- Typer CLI with subcommands:
- transcribe
- diarize
- lesson-report
- aggregate
- YAML config file
- Logging, progress bars, caching (skip if output exists), error handling

Deliverables:
- Full repo structure
- All source code (src/ layout, CLI, config, prompts, PDF renderer)
- Installation instructions for Windows 11 (Python, ffmpeg, Poetry, CUDA)
- Example commands
- Test guide with sample audio

Please show experience with WhisperX / faster-whisper, Pyannote, Ollama, and Weasyprint on Windows + GPU setups in your proposal.

Thank you!
Vladimir