Projects / AI products

Self-hosted speech assessment.

Replaced a licensed third-party pronunciation-scoring service with an in-house one: open-source Whisper running on a GPU server I set up, plus our own scoring algorithm tuned so learners’ scores stayed fair and comparable.

Stack
Whisper, PyTorch, Python, FastAPI, NVIDIA GPU, Docker
Scale
Every speaking exercise in the app
Role
Designed, built, and operated
Speaking practice screen with audio playback and record button

Flow.

  1. Learner records
  2. Upload
  3. Whisper on GPU
  4. Align to target sentence
  5. Score words & fluency
  6. Feedback in app

How it works.

The language platform scored learners’ pronunciation through a licensed vendor: a per-assessment cost, an external dependency, and a black box we could not tune. The replacement had to score the same exercises at least as well, for less, under our control.

A GPU server runs open-source Whisper for transcription with word-level timestamps. The transcript is aligned to the sentence the learner was asked to say, so the service knows which words were said, which were missed or substituted, and how the timing compares to the reference audio.

Our own scoring algorithm combines word accuracy, timing and fluency, and model confidence into a score on the same scale the old service used, calibrated against a set of recordings that had been scored both ways so results stayed consistent for learners and teachers.

Hard parts.

Outcome.

Removed the per-assessment licence and the external dependency. Speaking exercises now score in-house at a fraction of the cost, with an algorithm we can keep improving.

Screens.

Speaking practice screen with audio playback and record button
The learner-facing side: listen to the reference, record, submit, and the score comes back from the in-house service.