Ortholyse Goes Open Source: A Speech-Therapy Assessment Tool That Runs Locally
By Anis Hammouche·May 31, 2026
Ortholyse is a desktop app I built for speech-therapy assessments. Whisper transcribes the session locally, the speech therapist corrects the text, then the software computes the linguistic indicators (MLU, morphemes, utterances) and outputs a PDF report. The code is public under the MIT license. Here is what the tool does, what is still missing and why I opened it.
Take a speech therapist in private practice. After an assessment session she has a recording, and it has to be transcribed by hand and then turned into indicators. I started from a simple observation: that transcription takes time, and computing the indicators introduces errors at every step. The project README counts one hour for a twenty-minute session, a starting estimate rather than a measurement.
The problem: a calculation nobody wants to do by hand
An assessment rests on the analysis of a speech sample. You record, transcribe the relevant passage, then compute indicators such as mean length of utterance (MLU, measured in morphemes) or the number of morphemes, the smallest unit that carries meaning. Each step is slow, and precision slips as the volume grows.
I wanted a tool a clinician could install, plug a microphone into and use without an IT course. Ortholyse came from that, aimed at practice in French.
Three technical choices, and what they cost
| Choice | Why | What it costs |
|---|---|---|
| Whisper running locally | A session holds patient data: the audio stays on the computer | You need disk space and a machine that can run the model |
| spaCy and NLTK for the analysis | fr_core_news_lg is the largest of spaCy's fr_core_news pipelines | A general model gives a correct but not specialised analysis |
| Desktop application (PySide6) | The microphone works directly and nothing goes through a server | It has to be installed and maintained on each computer |
Whisper running locally. Sending a session's audio to a third-party service raises a question a practice would have to answer again at every recording. Locally, the question disappears. I am not a lawyer: keeping data on the computer does not settle your obligations on its own, but it removes a transfer to a third party. The Whisper model is chosen in the settings (base, small, medium or turbo): the small ones are faster, the large ones more accurate. On what happens to text sent to an online service, read ChatGPT or the French Alternative: Where Your Clients' Data Goes.
spaCy and NLTK. The pipeline uses fr_core_news_lg, completed by NLTK for calculations such as morpheme counting. This is the hardest part. Automatic analysis of French is less direct than English: verb inflection, agreement, contractions, transcribed liaisons. The base model gives a correct result, but my view is that demanding clinical use calls for a model trained on patient speech.
A desktop app rather than a web app. A web app would have been easier to distribute, but it would have meant uploading audio to a server or making the browser carry large models. The desktop keeps everything local. The tool runs offline, on Python 3.12 or later, with FFmpeg as a system dependency.
What works, and what is not finished
The current version is an MVP. It records or imports audio inside the application, transcribes with Whisper, then opens an editor synced with audio playback: clicking a word jumps to the right position. The speech therapist corrects a draft instead of typing everything, and the analysis only runs after her correction. The PDF report combines the corrected transcript and the table of metrics.
What is not there matters just as much. The repository roadmap lists English support, processing several sessions in a row, configurable report templates and a view that compares one patient's sessions. None of that is built yet. Ortholyse is not presented as a medical device and I have no clinical evaluation to cite: it helps with transcribing and computing, the judgement stays with the speech therapist.
On quality, the repository CI fails if test coverage of the business modules drops below 80%. The screens, the audio and Whisper are left out of that threshold, because they need a display, a microphone or the real model to be tested.
Why I am opening the code
Opening code is not a communications gesture. Posting three screenshots while keeping the code private would be one. Putting the code on GitHub under the MIT license lets others use it, fix it and adapt it.
Ortholyse serves a specific community, and the community cannot improve it if the code is closed. While it stays private, the tool depends on my spare time. Once public, it can receive contributions from developers, linguists or researchers who already have annotated corpora.
Publishing code also forces you to make it readable: document the choices, clean up what is lying around, write the tests. That is a good test for a development project, even if nobody contributes.
What you can do with it
You are a speech therapist. Ortholyse can be used to transcribe a session and compute the baseline indicators. The most useful thing at this stage is to try it and tell me what is missing by opening an issue on GitHub.
You are a developer, a linguist or a French NLP researcher. The most interesting point is a more representative annotated dataset, to train a better suited model.
You are a freelancer or in a small agency, and a client asks you for a tool like this. Take a fictional case: a practice asks a four-person web agency to "build software that transcribes consultations". Before you write any code, put these questions to your client. Ortholyse answers them in its own way: data on the computer, correction by the speech therapist, calculation after correction, desktop application.
Where must the data stay: [on the computer / on an internal server / with a provider]?
Who reads and corrects the AI's output: [name of the role]?
What must never be computed before a human correction: [indicator or decision]?
Which machines must the tool run on: [system, memory, microphone available]?
Who maintains the tool in a year: [person or team]?
If the answers fit in five lines, a small custom tool is doable. If not, it is a larger project, and it is better to say so before signing. To calibrate what a one-afternoon tool can carry, read A Mini Tool for Your Business in One Afternoon With AI: How Far to Go.
Frequently asked questions
Is Ortholyse free? Yes, the code is under the MIT license: you can use it, modify it and redistribute it.
Do I need a connection? No. The tool runs offline and needs no API key.
Which machines does it run on? Windows, macOS and Linux, with Python 3.12 or later and about 4 GB of disk for the Whisper and spaCy models, according to the README.
What about English? The pipeline is tuned for French. English is on the roadmap.
Explore the repo
The Ortholyse code is public at github.com/assinscreedFC/ortholyse. The Labs Ortholyse page sums up the technical choices in a few lines. You can fork it, open an issue or simply read how it is built.
A speech therapist has to reread what Whisper transcribes. Any AI that outputs text needs the same rereading, and AI Invents Figures, Sources and Terms: How to Spot It and Protect Yourself explains how to do it without trusting the confident tone of the answer. I share this kind of project write-up in my newsletter, you can sign up right below.