Lumbridge Voice

Gated · opens on November 13, 2026

Lumbridge Speak Text to speech you host yourself.

Lumbridge Speak turns text into audio. A small Rust program is both the HTTP front and the speak command; behind it sits an open text-to-speech model on your own GPU box. People use it to have text read aloud, and agents use it to say when a job is done.

Lumbridge Speak
A terminal that lists five voices with speak voices, prints the words that would be spoken for a build message with speak text, and writes a WAV file with speak --outA terminal that lists five voices with speak voices, prints the words that would be spoken for a build message with speak text, and writes a WAV file with speak --out
The speak command against a front with no model: list voices, see numbers written as words, write a WAV file.Open full sizeOpen full size

Tour

See Speak at work.

The speak command

See what will be said.

speak text prints the words before any audio is made: numbers and versions are written out. Shown in both themes.

Light
A finished speak session showing five voices, a build message rewritten with its numbers as words, and a WAV file written to disk
Dark
A finished speak session showing five voices, a build message rewritten with its numbers as words, and a WAV file written to disk
FIG. 1 — From written text to sound

01 · What it does

What Speak does today.

The speak command

speak Hello plays on this machine, sentence by sentence. Text can come from arguments or stdin. One speak plays at a time; a second waits its turn, and speak stop ends what is playing.

Written forms become words

Money, percentages, clock times, dates, phone numbers, versions, units, ranges, web addresses and file paths are written out before the model sees them. speak text prints the words that would be spoken.

Your own names, said your way

A [say] table in the settings maps a written name to how it should sound. A drop list holds patterns that are never read aloud. Normalizing can be turned off in the settings or for one request.

Voices, speed and level

speak voices lists the model’s built-in voices and speak demo plays each one. --voice picks one, --rate sets playback speed from 0.5 to 2, and a level setting scales every answer to the same peak.

Speak on another machine

speak --on NAME sends the line to a machine listed in the settings, which queues and plays it. That is how an agent on a server announces something through the speakers on your desk.

A check you can run

speak check has each voice say test sentences full of numbers, sends the audio to your speech-to-text server and compares what was heard with what was said, word by word.

02 · How it works

One program, a model behind an adapter

lumbridge-speak serves the HTTP API and, under the name speak, is the client of that same API. The model stays a separate server.

  1. 2.1

    The front

    An HTTP service: /health, /v1/audio/voices and POST /v1/audio/speech with input, voice and response_format. It answers WAV and raw samples itself and uses ffmpeg for mp3, opus, aac and flac. It listens on loopback port 8813 unless the settings say otherwise.

  2. 2.2

    Text handling

    Fenced code is removed, links keep their label, markdown marks become spaces. Then written forms are turned into words, and the text is packed into sentence pieces. The pieces are joined with a short silence between them.

  3. 2.3

    The adapter

    The model sits behind a Synth trait. There are two adapters: one for the model server in use today and a mock that needs no model, so the front and its tests run anywhere. A new model is a new adapter.

  4. 2.4

    The speak command

    Asks the front for audio and plays it with afplay on a Mac, or pw-play, paplay or aplay on Linux. Settings come from built-in defaults, then a TOML file, then LUMBRIDGE_SPEAK_* in the environment.

03 · Use it

Install it and say something

The installer builds the program, starts the front as a background service on the Mac and links the speak command.

Install on a Mac, speak from the shell, then call the HTTP route directly.
deploy/mac/install.sh              # build, install, start the front
speak Hello from Lumbridge Speak.
echo "PR 73 merged at 4:05 PM" | speak
speak --voice Jason --rate 1.1 Good morning.
speak --on laptop --from build-bot The build is done.
speak --out hello.wav Hello.
speak text "v0.3.1 took 645 ms"    # print the words, play nothing
speak voices
speak check

LUMBRIDGE_SPEAK_ADAPTER=mock lumbridge-speak serve   # the front without a model
curl http://127.0.0.1:8813/v1/audio/speech -o hello.mp3 \
  -d '{"input": "Hello.", "voice": "Leo", "response_format": "mp3"}'

04 · Docs

The Speak manual.

These pages are in the repository and open with it. Until then, the Guide covers the same ground and is readable now.

  1. 01

    The speak command

    Every subcommand and option: say, voices, demo, check, text, stop, and speaking on another machine.

  2. 02

    HTTP API

    Routes, request fields, audio formats, error messages and status codes, with real answers from a running front.

  3. 03

    Numbers as words

    Which written forms are rewritten, how phone numbers and versions are said, and how to turn it off.

  4. 04

    Settings

    The TOML file line by line: listen address, adapter, default voice, level, the [say] table, drop patterns, targets.

  5. 05

    Install on a Mac

    What the installer writes, the background service it starts, where the log is, and how to remove it.

  6. 06

    Adding a model

    The Synth trait, the mock adapter, and what a new adapter has to return.

Read the Guide chapter: VoiceRequest access to the repository

05 · Works with

One part of one system.

Not yet

  • Voice cloning. The front speaks only the model’s built-in voices.
  • Languages other than English. Every request is sent to the model as US English.
  • Style instructions. The field is checked and then ignored.
  • Playback on Windows.
FIG. 2 — Where Speak sits in Lumbridge

Questions

Questions about Speak.

Does my text or audio leave my machines?

No. The front sends text only to the model server you point it at, and the audio comes straight back. There is no telemetry and no outside service in the path.

Which platforms does it run on?

The front and the command run on Linux and macOS. Playback uses the players those systems already have. The model server needs a GPU box; the front can run on a laptop and reach it over your network.

How good and how fast is it?

On our own hardware, the check on 2026-11-10 had every voice between 99% and 100% of words understood, at about 6 times faster than real time while the GPU box was busy with other work. Your numbers depend on your GPU and model, and speak check measures them.

Can I use a different text-to-speech model?

Yes, by writing an adapter. The front asks the model for raw samples one piece at a time through a single trait, so cleaning, chunking, formats and the command stay as they are.

What is the license?

Apache-2.0. The repository opens on November 13, 2026.

Want Speak running for your team?

Self-host it, or talk to us about setting it up with you.