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)
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
  • Audio and 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.

Metadata

Release files for hivemind-mic-satellite 0.9.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.9.0a3
File Size Uploaded
hivemind_mic_satellite-0.9.0a3.tar.gz 84.7 kB Details

Built distribution (wheel)

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

Total release size: 164.6 kB

Release files / hivemind_mic_satellite-0.9.0a3.tar.gz

Download URL hivemind_mic_satellite-0.9.0a3.tar.gz
Size 84.7 kB
Tags Source
SHA-256 checksum
How to use checksums
14126405130a6bf1445cdb5e65de9eed02080c3992caf0fa28d7c175c05a0265
BLAKE2b-256 checksum
How to use checksums
c4fdce5779f2993c305a835a789be6a7c224bd8fe25fdbae9841fd4c0c983e58
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.9.0a3-py3-none-any.whl

Download URL hivemind_mic_satellite-0.9.0a3-py3-none-any.whl
Size 79.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
40914da384346152358adbc21d174c0f38525cc73dbc94e7e5ed5f470f63c2dc
BLAKE2b-256 checksum
How to use checksums
b3d8e53a9541870fca968ad1ba70af50eaeacd846210664ab650989a9ed81c70
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.9.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