Skip to content

Providers

The Python node has pluggable providers for speech-to-text, text-to-speech and wake responses. Each is a small class: one or two methods.

Providers are not package components

Providers are built into the node. A package can't ship one: Pantry and jdt install commands, agents, device protocols and device managers, never providers. To add a provider you edit the node's source (jarvis-node-setup) on that Pi, and a node update replaces your edit. Providers exist only on the Python node; the desktop agent and the Go voice node don't load them.

Provider types

Provider type Interface (core/) Directory Built in
Speech-to-text ijarvis_speech_to_text_provider.IJarvisSpeechToTextProvider stt_providers/ jarvis-whisper-api, keyboard
Text-to-speech ijarvis_text_to_speech_provider.IJarvisTextToSpeechProvider tts_providers/ jarvis-tts-api, espeak
Wake responses ijarvis_wake_response_provider.IJarvisWakeResponseProvider wake_response_providers/ jarvis-tts-api, static

The names in the last column are each provider's provider_name.

Configuration

The node's config file (config.json) picks one provider of each type by name:

{
    "stt_provider": "jarvis-whisper-api",
    "tts_provider": "jarvis-tts-api",
    "wake_response_provider": "jarvis-tts-api"
}

At startup the node imports every module in the provider's directory, instantiates each subclass of the interface and keeps the one whose provider_name matches the config. A name that matches nothing raises ValueError ("STT provider '…' not found.") when the node first asks for that provider. wake_response_provider is optional; without it the node uses its bundled acknowledgments.

The jarvis-* providers send the work to your Jarvis Automation server (jarvisd), which transcribes and synthesises in-process.

When to write a provider

Speech-to-text: a different transcription backend, such as a cloud speech API or a local model on the Pi.

Text-to-speech: a different voice engine, such as a cloud TTS API or system voices.

Wake response: a different acknowledgment after the wake word, such as time-of-day greetings or your own list of phrases.

Guides