Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

Ask DeepWiki License PyPI

HiveMind Microphone Satellite

hivemind-mic-satellite is the smallest HiveMind satellite. It runs only a microphone plugin and a VAD (voice activity detection) plugin on the device.

Audio streams from this device to a HiveMind server that runs hivemind-audio-binary-protocol. The server handles wakeword detection, speech-to-text, intent processing, and text-to-speech synthesis. The satellite receives the synthesized speech audio and plays it back locally. No local STT or TTS models are needed, so the satellite can run on cheap, low-power hardware such as a Raspberry Pi Zero.


Satellite spectrum: where does processing happen?

Satellite Mic VAD Wakeword STT TTS Best for
HiveMind-cli n/a n/a n/a n/a n/a Text-only (keyboard/script)
hivemind-mic-satellite (this repo) local local server server server Cheapest hardware / homelab; no local models
HiveMind-voice-relay local local local server server Local wakeword; scales as a service
HiveMind-voice-sat local local local local local Full local stack, sends text

Server requirements

The default hivemind-core does not include audio processing. Install hivemind-audio-binary-protocol on the server to enable server-side wakeword, STT, and TTS.


Why mic-satellite, and when not to use it

mic-satellite exists for one reason: device resources. With only a microphone and VAD on-device, it runs on cheap hardware, such as a Raspberry Pi Zero or a recycled phone, with no local models. The hive owns everything else: wakeword, STT, intent, and TTS. It gates them behind the same access-key authentication as the rest of the mesh. The hive operator chooses the engines, models, and voice for every connected satellite. A satellite cannot override them. This is the same ownership model as voice-relay. See its docs for the "HiveMind as a service" framing.

There is a trade-off. Because there is no local wakeword, the satellite streams every detected voice segment upstream (gated by VAD, not by a wakeword). This continuous audio stream uses more bandwidth and puts the full STT load on the server for all speech, not just commands. This works well for a homelab with a handful of personal devices, where on-device resources are the binding constraint. It does not scale for HiveMind-as-a-service across many tenants, because streaming raw audio per client costs too much. For a service-style deployment, prefer voice-relay: a local wakeword means audio leaves the device only after activation.


Install

pip install hivemind-mic-satellite

Requires Python 3.10 or later.


Quickstart

1. On the hive (server): create an access key for this device:

hivemind-core add-client --name my-mic-sat
# note the access_key and password printed

2. On the satellite device: set the identity:

hivemind-client set-identity \
  --key <access_key> \
  --password <password> \
  --host <hive-host-or-ip>

3. Run:

hivemind-mic-sat

Or pass credentials directly without storing them:

hivemind-mic-sat --key <key> --password <password> --host <host> --port 5678

Minimal configuration

The satellite shares the standard OpenVoiceOS config file ~/.config/mycroft/mycroft.conf. At minimum you need a microphone plugin and a VAD plugin:

{
  "microphone": {
    "module": "ovos-microphone-plugin-alsa"
  },
  "VAD": {
    "module": "ovos-vad-plugin-silero"
  }
}

See docs/configuration.md for all options, plugin selection, and audio device tuning.


Supported plugins

Plugin type Required Purpose
Microphone Yes Captures audio from hardware
VAD Yes Detects voice activity, decides when to stream
PHAL No Platform/hardware abstraction (for example LEDs, buttons)
Audio Transformers No Mutate microphone audio per chunk before it is streamed
TTS Transformers No Mutate TTS audio before playback
G2P No Visemes for mouth movement (for example Mycroft Mk1)
Media Playback No Media commands such as "play Metallica"
OCP Plugins No URL playback (YouTube and similar)

Features handled server-side, not on this device

  • STT (speech-to-text)
  • TTS (text-to-speech) synthesis
  • Wakeword detection
  • Continuous listening, hybrid listening, sleep mode, recording mode
  • Multiple wakewords
  • Dialog transformer plugins

Documentation

Full documentation is in docs/:


Related

Project Role
HiveMind-core The hive, manages connected satellites
hivemind-audio-binary-protocol Server-side audio processing (required)
HiveMind-voice-relay Satellite with local wakeword
HiveMind-voice-sat Full local stack satellite
HiveMind-cli Text-only satellite
ovos-plugin-manager Plugin framework (microphone, VAD, PHAL, and more)

License

Apache-2.0: see LICENSE.

Transformer pipelines

The satellite can run OVOS transformer plugins client-side, configured in this device's mycroft.conf:

  • audio_transformers — applied per chunk to microphone audio before it is streamed to the server (e.g. denoise).
  • tts_transformers — applied to received TTS audio before playback (e.g. per-device sound effects).
{
  "tts_transformers": {
    "ovos-tts-transformer-sox-plugin": {"pitch": 300}
  }
}

Loading is opt-in: a plugin only runs if named in its section. Avoid double-processing: if the HiveMind server also enables the same pipeline (hivemind-audio-binary-protocol runs audio transformers server-side), the audio gets processed twice — enable each plugin on exactly one side.

Metadata

Release files for hivemind-mic-satellite 0.10.0a3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for hivemind-mic-satellite 0.10.0a3
File Size Uploaded
hivemind_mic_satellite-0.10.0a3.tar.gz 85.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for hivemind-mic-satellite 0.10.0a3
File Interpreter ABI Platform
hivemind_mic_satellite-0.10.0a3-py3-none-any.whl Python 3 none any Details

Total release size: 166.3 kB

Release files / hivemind_mic_satellite-0.10.0a3.tar.gz

Download URL hivemind_mic_satellite-0.10.0a3.tar.gz
Size 85.6 kB
Tags Source
SHA-256 checksum
How to use checksums
06a0b7adfaf416d60e455321c0747664a1d98803540dbacc221201a090c38504
BLAKE2b-256 checksum
How to use checksums
05add957af228040874c83bbdf5ad0b6b598f9bdd58da0d3b0b017d1225de76f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / hivemind_mic_satellite-0.10.0a3-py3-none-any.whl

Download URL hivemind_mic_satellite-0.10.0a3-py3-none-any.whl
Size 80.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
37cea44b477dbe66e8aa0b8844de97cb83029ee6ad3e707cf26c19a7e74385c9
BLAKE2b-256 checksum
How to use checksums
d29c08d5bb1e9a6d4ab0e2741d4145cb62150bb3fbfc01824d140b84603eca66
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release history Release notifications | RSS feed

This release

0.10.0a3 This release

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.2.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page