Capture, transcribe, and synthesize speech — one audio library for desktop and browser.
Dependency Graph
Engineering software should listen as well as it shows. Extropian Voice is the audio layer of the Extropian dependency stack: it owns microphone capture, speaker playback, voice activity detection, speech-to-text transcription, and text-to-speech synthesis, wired together through a VoiceService state machine (Idle → Listening → UserSpeaking → Processing → Speaking → Interrupted). It is deliberately low-level — conversation turn-taking, transcript routing, and UI live in other Extropian components, not here.
The core compiles unchanged for both native and WASM. Platform I/O is dispatched behind AudioCapture/AudioPlayback interfaces — SDL3 on desktop, Web Audio API via Emscripten in the browser. Speech-to-text and text-to-speech go through provider abstractions: local Whisper (whisper.cpp) and Piper TTS on desktop, and cloud Deepgram/ElevenLabs/OpenAI over HTTP.
It is built on extropian-core's Signal<T> event system and builds as a static library with optional provider backends toggled at configure time.
Core capabilities
Microphone capture and speaker playback with pluggable audio backends (SDL3 native, Web Audio API in-browser)
Real-time voice activity detection from raw PCM with speech/energy signals
Speech-to-text via local Whisper or cloud Deepgram/OpenAI providers
Text-to-speech via local Piper or cloud ElevenLabs/OpenAI providers
Licensing is negotiated around the software, deployment model, scope, and ownership requirements of each project — whether Extropian Voice is used as-is, customized for your workflows, or embedded in a larger system you are building. I prefer perpetual licenses per major version: one fee licenses the version you chose for as long as you use it, with maintenance updates included within that major version.
Open Source (Apache 2.0): free to use, modify, and distribute — including in commercial products — with attribution.