Skip to main content

exoclaw-tools-voice

Voice input for exoclaw — capture microphone audio and transcribe via an audio-capable LLM. Cross-runtime (CPython + MicroPython).

What it does

ListenAndTranscribeTool is the agent surface. When the agent calls listen():

  1. Opens a board-supplied AudioCapture (file-backed on the unix sim, I2S PDM mic on the reTerminal E1001).
  2. Streams PCM bytes through a chunked base64 encoder into a chat-completions request body — never materialising the whole recording in memory.
  3. Routes the request to a dedicated audio-capable model (e.g. openai/gpt-audio-mini on OpenRouter), separate from the agent's main chat model.
  4. Returns the transcription as plain text.

The agent's main loop never sees audio — it just gets text back from a tool call, the same way web_search returns grounded text.

Architecture

The package is a Protocol seam:

  • AudioCapture Protocol — what each board implements
  • ListenAndTranscribeTool — cross-runtime tool that consumes the Protocol
  • stream_audio_request_body — chunked JSON body generator
  • B64StreamEncoder — chunked base64 with mid-stream-padding-safe semantics

Concrete AudioCapture impls live in the firmware board tree:

  • boards/unix/audio.pyWavFileCapture (reads a pre-staged WAV)
  • boards/reterminal_e1001/audio.pyI2SCapture (PDM mic via machine.I2S, mic-power-enable on GPIO38, button K0 trigger)

Configuration

The firmware wires the tool when OPENAI_AUDIO_MODEL is set:

# mise.local.toml
[env]
OPENAI_AUDIO_MODEL = "openai/gpt-audio-mini"

Same pattern as OPENAI_SEARCH_MODEL for web_search. Unset → no listen tool surface.

Release files for exoclaw-tools-voice 0.1.0

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

Source distribution (sdist)

Source distribution for exoclaw-tools-voice 0.1.0
File Size Uploaded
exoclaw_tools_voice-0.1.0.tar.gz 9.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for exoclaw-tools-voice 0.1.0
File Interpreter ABI Platform
exoclaw_tools_voice-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 23.2 kB

Release files / exoclaw_tools_voice-0.1.0.tar.gz

Download URL exoclaw_tools_voice-0.1.0.tar.gz
Size 9.5 kB
Tags Source
SHA-256 checksum
How to use checksums
3d78a37532fe716de50e2cf00b6c3ab6da77274130bddfdff3b0e9e0b9daedca
BLAKE2b-256 checksum
How to use checksums
d96dfffcfaceb47b5c14b029d343e2be7b53f9160b8c62046e76f4ec9fb75b81
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / exoclaw_tools_voice-0.1.0-py3-none-any.whl

Download URL exoclaw_tools_voice-0.1.0-py3-none-any.whl
Size 13.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6bf4137e856c3d67f6750afdd0b054d900eaa38086e77f57488c71dd789796af
BLAKE2b-256 checksum
How to use checksums
c5a52182116e8af8007f3584f887ce24351c8c421104edc8923870053ad13123
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

This release

0.1.0 This release

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