dsh-vox-input
Voice (speech-to-text) input for the DSH Web composer via the browser Web Speech API
(Chrome/Edge). Tap the mic, speak, and the transcript fills the input box — editable before send.
Zero server, zero API keys, zero model downloads; nothing leaves the machine.
Install
# symlink the package into the web profile (local dev), then add the row:
ln -s <this-dir> "$DSH_HOME/profiles/web/node_modules/dsh-vox-input"
# append to $DSH_HOME/profiles/web/cordis.patch.yml:
# - insert:
# - id: dsh-voice-input
# name: dsh-vox-input
#
# IMPORTANT: the short `id: dsh-voice-input` above is only the host patch-row
# identifier. In client.js, the module registration MUST use the exact package
# name:
# window.__ModuleLoader__.load({ id: "dsh-vox-input", factory })
# Never replace that client registration with the short row id.
# restart: node <dsh>/lib/bin.js web
Use
A waveform 🎙️ control appears in the composer tool row. Tap to listen (Chinese by default; the
tiny chip cycles zh-CN / en-US / auto). Interim text streams in a live caption above the
composer; final text is appended into the draft sentence by sentence (pause ~1s between
sentences — the session stays open, and auto-ends after ~4s of silence). Non-Chromium
browsers show a muted badge.
Notes
- Client UI (dual-face) plugin: the host half is an empty shell; all logic lives in
client.js via window.__ModuleLoader__.load. The registration ID must equal
package.json.name exactly (dsh-vox-input). See AGENTS.md.
- MIT licensed. Conventions follow the ecosystem references (dsh-mic-input, dsh-voice-input-web);
implementation is original.