voice::configuration-id
Returns this worker instance's effective configuration entry ID, without its value.
- idstringrequired
Speak to the console — bundled streaming speech-to-text for live dictation, optional host whisper.cpp for final-pass and file transcription, read-aloud, and remote speech providers, with a mic chip and a voice page.
iii trigger compose::add worker=voice@nextRun in your project with the iii engine running. Exact versions are immutable and digest-pinned.
Returns this worker instance's effective configuration entry ID, without its value.
List the dictation sessions this worker currently holds open, with their age, audio duration and idle time.
Feed one chunk of 16 kHz mono 16-bit PCM (base64, at most 64 KiB) to an open dictation session. Chunks carry a rising seq; ~100 ms per chunk keeps partial text prompt.
Little-endian signed 16-bit PCM, 16 kHz mono, base64.
Rising per-session counter; a chunk not after the last accepted one is rejected.
Milliseconds of audio this chunk held.
Open a dictation session. Transcript events (partial, final, closed) are delivered to output_function_id as audio arrives through voice::dictation::push; stop with voice::dictation::stop. Audio must be 16 kHz mono 16-bit PCM.
Function that receives every transcript event of this session.
Sample rate of the audio the caller will push. Only 16000 is accepted.
Close a dictation session, flush the recognizer and return the whole transcript. discard=true throws the text away instead.
Drop the transcript instead of returning it.
Report the speech-to-text backend and whether its model is installed and loaded, the read-aloud backend and whether its command exists, and how many dictation sessions are open.
`local`, `whisper_cpp`, `router` or `openai`.
The second-pass model that gives final text its punctuation and accuracy, and where it stands.
Where the second-pass model stands, for `voice::doctor`.
The local streaming model that shows live words and finds sentence ends while dictating, whatever the engine.
The model that writes final text: bundled local, whisper.cpp GGML, router, or OpenAI-compatible endpoint model.
Set when the local model id is unknown or the selected host/remote backend is unavailable or incomplete.
`host`, `openai`, or `off`.
Requested Piper policy only, not an assertion that GPU is available.
Legacy field; browser playback is not tracked on the worker.
Download a local speech model (the active one when id is omitted), verifying every file's checksum. Progress arrives on the voice::model-progress trigger.
Model id from voice::models::list; omit for the active one.
Bytes written by this call (0 when everything was already present).
List the speech models the local backend can run, which one is active, and whether each is installed under models_dir.
The model the configuration names.
Who trained the model; CC-BY weights must carry this when redistributed.
`streaming_transducer` (live partials), `offline_nemo_transducer` (second pass), `whisper_ggml` (whisper-cli weights), or `piper_onnx` (neural TTS).
SPDX id of the model weights' license.
Model card with the license text and the files' origin.
Delete a downloaded local model from models_dir. Configured ONNX transcription models may download on use; Whisper and Piper models require an explicit download.
Model id from voice::models::list.
Internal: hot-reload the voice worker from the authoritative configuration when it changes, swapping the per-call snapshot.
Configuration id that changed (advisory; the handler re-fetches).
Synthesize text and return audio_base64 plus mime to the requesting caller. Every backend (host, piper, openai, router) returns audio for client-side playback; nothing plays on the worker machine. Markdown formatting is omitted by default; set text_format=plain for literal text. host uses say/espeak; piper uses a local neural voice.
Speaking rate in words per minute (host backend).
What to say. Markdown is converted to prose before tts.max_speak_chars is applied.
`markdown` (default) removes presentation syntax; `plain` keeps literal symbols.
Voice name for the backend; empty uses the configured default.
Base64 audio for the requesting caller to play, on every enabled backend.
`host`, `piper`, `openai`, or `router`.
MIME type of `audio_base64`.
Legacy compatibility field; always false. Playback belongs to the caller.
Unique id of this synthesis result.
Legacy server-playback stop (returns stopped=0). Audio is now returned to the caller; stop its local audio element to stop browser playback.
Legacy playback id; no effect on client-side audio.
Always zero: playback is now owned by each client.
Prepare a growing Markdown message as plain speech text without synthesizing audio. Incomplete inline syntax is withheld until complete=true or more text arrives. Returns the configured per-request speech limit for client-side chunking; no state, downloads or playback.
Flush incomplete syntax only when the message is no longer growing.
Transcribe a WAV file to text with timestamped segments. Pass a path on the worker's host or the file itself as base64 (up to max_audio_bytes). Any sample rate and channel count; the audio is downmixed and resampled.
The WAV file itself, base64.
Language hint (ISO 639-1), used by the remote backend.
Path of a WAV file on the machine running the worker.
`local`, `whisper_cpp`, `openai`, or `router`.
Serve the voice worker's injected console UI assets (content function for its console:script / console:style / console:module triggers).
The asset path from the trigger config (e.g. `state/page.js`).
The asset source, verbatim.
MIME type the console should serve the asset with.
Bytes received while a speech model downloads, one event per megabyte and a final done event (with error when the download failed).
Only deliver events for this dictation session.
Only deliver the end of this playback (`voice::speech-ended`).
A dictation session is ready for audio.
Only deliver events for this dictation session.
Only deliver the end of this playback (`voice::speech-ended`).
A dictation session ended (stopped, discarded, idle, or worker shutdown).
Only deliver events for this dictation session.
Only deliver the end of this playback (`voice::speech-ended`).
A host read-aloud started by voice::speak finished: reason ended, stopped or failed. Filter with speech_id.
Only deliver events for this dictation session.
Only deliver the end of this playback (`voice::speech-ended`).
A dictation session produced text: a partial replaces the in-progress text, a final commits a segment, closed ends the session. Filter with session_id.
Only deliver events for this dictation session.
Only deliver the end of this playback (`voice::speech-ended`).
Find workers, kits and executables, or jump to a page.