The Observatory · Research

Field notes from the instrument.

What we measured, what we ship, and what is still in training. Every number on this page is taken from the instrument itself: parameter counts read from the shipped ONNX graphs, timings from a warm CPU at batch one.

LOG · FEATHER · SERVING  ·  METHOD · FLOW MATCHING, 8-STEP  ·  COMPUTE · CPU ONLY
OBS. 01
382ms
time to first word · measured, 8-core CPU
OBS. 02
6.1×
faster than realtime · CPU only
OBS. 03
0.18
real-time factor · warm, batch one
OBS. 04
8
solver steps · noise to speech
01 · The Instrument

Model card: feather.

Four neural networks in sequence. Text is encoded; a duration model decides how long each sound lasts; a flow-matching field sculpts random noise into a mel-spectrogram in eight fixed Euler steps; and a vocoder turns that spectrogram into a 44.1 kHz waveform. The field is the only iterative stage; everything else runs once.

SpecReadingValue
generative coreConditional flow matching along a near-straight transport path64.0M
solverFixed eight-step Euler · eight network passes per utteranceNFE 8
vocoderMel-spectrogram to 44.1 kHz waveform25.3M
encoder + durationRun once per utterance · text and timing9.9M
parametersFull model 117M · shipped inference graphs 99.2M, measured117M
speed4.03 s of audio in 0.72 s of compute · warm, batch oneRTF 0.18
languagesOne model · one voice registry across all of them23
voicesConditioned on a voice-style vector · distinct timbre and prosody6
computeOrdinary CPUs, x86 and Arm · no GPU anywhere in the path● CPU

Built on open foundations: an open flow-matching speech model with MIT-licensed inference code and Open RAIL-M weights, which we export to ONNX, optimize, and serve. Our contribution is the inference and serving stack; attribution is retained per those licenses. The remaining ~18M parameters are a style encoder used offline to build voices, never run at synthesis time.

field measurement · laptop cpuBATCH = 1
# single request · warm · eight steps
audio produced   4.03 s · 44.1 kHz mono
compute time     0.72 s
rtf             0.18 · ≈ 5× realtime
ode steps        8 · fixed Euler
gpu required     none
 
✓ headroom one core ≈ 5 realtime voices

Most diffusion systems need tens to hundreds of network passes per utterance: roughly ~1,000 for high-quality diffusion, ~50 for fast variants. Because the flow path is nearly straight, eight suffice. That, plus a network small enough to keep its weights in cache, is the whole trick.

A real spectrogram plotted as a star chart
FIG. 01 · CARTA VOCIS · "every voice is a constellation," spoken by meera, plotted star for starFEATHER · REAL OUTPUT

Not an illustration: a real utterance from the instrument, its spectrogram plotted star for star. Hear every voice in the Atlas, or synthesise your own in the Studio.

02 · The Measure

Speed becomes price.

An RTF of 0.18 on a commodity core is the whole business case. A GPU serving realtime voice runs at batch one, its worst case, and idles most of its silicon; a CPU at batch one is doing exactly the work it is good at. The floor that collapses is the price: $1.90 per million characters, 0.19¢ per 1,000, and it holds in every region, on-premise, and air-gapped.

Provider$/1K chars$/min audioCompute
CelestLabs$0.0019$0.0017CPU
OpenAI tts-1$0.015$0.015GPU
Amazon Polly$0.016$0.016GPU
Cartesia Sonic$0.036$0.036GPU
ElevenLabs$0.150$0.100GPU

At list prices: 9× cheaper than Polly · 21× cheaper than Cartesia · 53× cheaper than ElevenLabs. Per minute of audio: $0.0017, 15 paise; per hour, $0.10. 10,000 characters free, renewed monthly. Full detail on the pricing page.

03 · The Road Ahead

The next checkpoint.

The lab ships checkpoints, not promises. One instrument is serving; its successor is on the bench, trained with the same discipline: distil a large open teacher into a compact student, keep the fidelity, and never let a GPU into the serving path.

ModelNotesStatus
featherFlow-matching · 8-step · 117M · RTF 0.18 · 6 voices · 23 languages● SERVING
starlingVoice cloning · emotional register · full Indic coverage● SERVING
The Archive

Continue into the archive.