promisez322-prog/dsh-vox-input1

dsh-vox-input

Voice (speech-to-text) input for the DSH Web composer via the browser Web Speech API — tap the mic, speak, the transcript fills the input box. Zero server, zero API keys, nothing leaves the machine. · DSH Web 语音输入:点麦克风说话,识别文字回填输入框(Chrome/Edge,无需 API key)。

包名
dsh-vox-input
版本
0.1.6
许可证
MIT
最近更新
2026年8月30日

安装

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:promisez322-prog/dsh-vox-input

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  "$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 /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.