Ollama 0.40.11 starts talking: local speech on macOS plus decision models that only answer yes, no or a score
Two unrelated additions: ollama run speaks on macOS while generating, exposing an OpenAI-compatible /v1/audio/speech; and the d3 family of decision models built for classification, judgments and probability scoring.
Ollama 0.40.11 shipped on October 24 with two new things pointing in completely different directions: speech generation and decision models.
Speech: streamed while it generates
ollama run phonon "Hello from Ollama."
On macOS, ollama run now reads text or a chat model’s reply aloud, while it is being generated — not synthesize after the full answer, but stream audio alongside the tokens. For local inference that difference is practical: a 200-word answer takes seconds to generate, and waiting for the whole thing before synthesis means staring at nothing; streaming means the first sentence is audible almost immediately.
Applications use the OpenAI-compatible endpoint: POST /v1/audio/speech, also streaming. Any client already wired to OpenAI’s speech API works by pointing its base URL at localhost.

Why local TTS matters more than it looks
The problem with cloud TTS is not price, it is location: your text leaves the machine. For personal assistants, screen readers and note read-aloud, speech is the most natural requirement — but once it means uploading text, many people simply skip it.
Local TTS turns it into “install a model”, the same logic as local LLMs: not more capable, but a clearer boundary.
d3: models that only classify and score
The second addition is more interesting. d3 brings vLLM Semantic Router’s decision models into Ollama:
ollama run d3 "A customer says their card was charged twice." --ask "Is this a billing issue?"
Input can be text, structured state or an image; output is one of three shapes: a class label, a yes/no, or probabilities over candidate options. Sizes are 2B, 4B, 9B and 27B.

These behave nothing like chat models:
| Dimension | Chat model | Decision model |
|---|---|---|
| Output | free text | label / boolean / distribution |
| Purpose | generate content | route, triage, judge |
| Failure mode | sounds bad | decides wrong |
| What matters | expression | stability and reproducibility |
The last row is what I care about. A decision model’s value is stability, not cleverness: a support-ticket router that is right 95% of the time with a different rationale each run is worse in production than one that is right 93% of the time the same way every run — because you can build tests, regressions and thresholds around the second one.
Both point at the same thing
Read together, this release fills in the parts an application needs:
- speech output = the interaction layer (how results reach the user)
- decision models = the control layer (which model handles which step)
Local inference used to have one shape: one big model plus a conversation. Now a pipeline of “small model routes, big model generates, TTS speaks” becomes possible. That pipeline has existed in the cloud for years; what local was missing is small specialized models and a streaming audio exit.

How I would use it
My site has no server, so this kind of thing runs on my own machine. If I did use it, the order would be:
- d3 first, speech later. A decision model plugs straight into scripts — for example auto-tagging fetched release notes (“security update / performance / docs”, a three-way classification where 2B is plenty).
- Speech as a screen reader, not a product feature. Reading articles aloud is valuable for commuting, not for playing synthesized audio to visitors.
One caution: treat d3 as an interface, not a model. It returns structured output, so your code must validate it — is the label in the enum, do the probabilities sum to 1, should low confidence escalate to a human. Treat it like an RPC that may return dirty data, not like a reliable function.
Release cadence
0.40.9 to 0.40.11 is three versions in three days. Ollama always ships fast, which also means do not run the newest release in production: unless you specifically want the speech or d3 features in this one, wait two or three patches.


Comments
…