What Omnivox Carries Forward
Omnivox is a Rust speech server for Emacspeak. It is usable today and still changing. It keeps the working protocol while moving platform speech, audio processing, queues, and fallback engines into separate components.
SwiftMac established a useful macOS implementation. Omnivox separates command parsing, synthesis, and audio routing into portable, testable parts.
Why Rebuild
The first working answer was valuable. The broader problem needed a broader system.
SwiftMac solved a real accessibility problem on macOS. It made Emacspeak responsive and useful for Robert's daily development work. But a tool shaped tightly around one operating system has a natural ceiling.
Omnivox is the next architecture. It keeps the Emacspeak protocol boundary, but splits the implementation into focused Rust crates for command parsing, TTS engines, audio processing, and CLI/server behavior. That makes the system easier to test, easier to port, and easier to evolve without losing the user-facing behavior that made SwiftMac useful.
| SwiftMac taught | Omnivox generalizes |
|---|---|
| Native speech can be fast enough for daily work | TTS backends behind a shared engine trait |
| Audio icons and tones matter | Common buffer format for speech, tones, and audio files |
| Users need independent volume and routing | Effects pipeline with volume, silence trimming, and channel routing |
| Simple protocol boundaries are valuable | Platform-agnostic parser, queue, and state crates |
| Local tools should not depend on cloud services | Native and fallback engines running locally |
The Architecture
Protocol in, typed state and queues inside, standard audio buffers out.
The Omnivox workspace separates the system into clear parts: omnivox-core for commands, queues, and state; omnivox-tts for platform backends; omnivox-audio for buffers, effects, tones, file loading, and output; and omnivox-cli for the actual server binary.
All generated audio converges on a common stereo floating-point buffer format. From there, effects can trim silence, scale volume, route channels, and send speech, tones, and audio icons through separate streams. That keeps the audio model consistent even when the source is different.
Protocol Core
Command parsing, state, and queues live in platform-agnostic Rust.
TTS Backends
macOS native speech, Windows speech, Linux/espeak paths, and fallback behavior sit behind one interface.
Audio Pipeline
Speech, tones, and audio icons share a buffer and effects pipeline before playback.
Evidence and Limits
The current record is the working code, 170+ tests, and three platform targets.
Omnivox keeps the user need and Emacspeak protocol stable while changing the implementation underneath them. The new structure lets platform speech, command handling, and audio processing be tested and replaced independently.
Omnivox is usable today and still changing. It is Intelligrit Labs and key-personnel work, not customer delivery, a finished product, or a federal deployment. Capabilities separates company work from named-person experience.