Skip to content

omdsh-dev/dsh-voice-funasr

31Last commit Aug 13, 2026

dsh-voice-funasr DSH plugin

This plugin adds a microphone button to the input area. When held, audio is captured and sent to a local FunASR engine (paraformer-large + VAD + punctuation) for transcription. Optionally, the transcribed text can be polished by an LLM to fix filler words or errors before being sent to the composer. It automatically falls back to the browser's Web Speech API if the local engine is unavailable.

How to install the dsh-voice-funasr DSH plugin

dsh plugin --profile web add ./dsh-voice-funasr-0.1.2.tgz

Copying does not run this command. Review the repository and version before installing the dsh-voice-funasr DSH plugin.

dsh-voice-funasr DSH plugin data source

dsh-voice-funasr DSH plugin snapshot date: Aug 16, 2026

discovered

What the dsh-voice-funasr DSH plugin can do

  • Local offline ASR with high accuracy for Chinese, using int8 ONNX quantized models
  • Two-stage polishing: LLM corrects filler words and errors before sending
  • Automatic fallback to browser Web Speech API if local engine is unavailable
  • Audio processed in memory only, never written to disk
  • Full local inference, works without internet access (polishing may require LLM endpoint)
  • Configurable backend, language, polishing mode, and engine status in settings panel

Where the dsh-voice-funasr DSH plugin fits

  • Quickly input long passages of text by speaking instead of typing
  • Voice input in environments without internet access, relying on local ASR
  • Privacy-sensitive scenarios where audio should not be uploaded to cloud services
  • Users who need to correct casual speech patterns (e.g., filler words) automatically
  • Seamless hands-free text input for DSH Web UI composer

Who the dsh-voice-funasr DSH plugin is for

  • DSH Web UI users who prefer voice input over typing
  • Users who need accurate Chinese speech recognition offline
  • Privacy-conscious users who want audio processing to stay on their device

dsh-voice-funasr DSH plugin limitations

  • ASR engine is optimized for Chinese; other languages may not be supported
  • Requires Python environment with funasr-onnx and model download (~520MB, ~1GB RAM)
  • Node.js must be ^22.19.0 or >=24.0.0, and DSH version must be >=0.1.0-rc.3 <0.2.0
  • Browser must support MediaDevices / AudioWorklet, or have Web Speech API as fallback
  • Polishing feature depends on the user's own LLM endpoint (same trust boundary as normal chat)

dsh-voice-funasr DSH plugin: from the repository README

Quoted from the omdsh-dev/dsh-voice-funasr README, the upstream source of the dsh-voice-funasr DSH plugin. Copyright remains with the original authors.

DSH Web UI 的**本地离线语音输入**插件:录音按钮按住说话 → 本地 FunASR 引擎 (paraformer-large + FSMN-VAD + ct-punc,全部官方 int8 ONNX)精准转写 → 可选 **两段式润色**(LLM 修正口头禅/口误)→ 自动进 composer 并发送。本地引擎不可用 时**自动回退**浏览器 Web Speech API。 与 dsh-voice-chat 的差异化:本地 ASR(中文精准、隐私、断网可用)+ 两段式润色。 ## 兼容性 - DSH:`>=0.1.0-rc.3 <0.2.0`(Profile Bundle 与嵌套 `dsh.client` 契约) - Node.js:`^22.19.0 || >=24.0.0` - Web profile;浏览器需要 `MediaDevices` / `AudioWorklet`,或可用的 Web Speech API 回退 插件由 `package.json#dsh.bundle.patch` 自动加入 profile。不要再把 `dsh-voice-funasr` 手工插入 profile 的 `cordis.patch.yml`,否则同一 loader id 会重复。 ## 架构 ``` 浏览器客户端 DSH host (Node) Python sidecar RecorderButton ──AudioWorklet 16k PCM16──▶ /asr RPC 通道 ──stdio 行 JSON──▶ funasr_engine.py (按住说话 + 状态徽标) (ctx.connection.rpc) (funasr-onnx,模型常驻) 设置面板(引擎状态/安装指引/润色开关) ``` - 音频仅在内存流转:base64 PCM → host → 引擎 stdin;引擎的临时 WAV 用后即删,**不落盘**。 - 模型推理全本地,断网可用;唯一可能出网的是可选润色(走用户自己的 LLM 端点, 与普通对话同信任边界)。 - 实测(Ryzen 7 5800H):5s 话语端到端 0.4–0.5s(含 VAD+ASR+标点),引擎常驻后 热转写 ~0.3s;三模型 int8 权重共 ~520MB,引擎内存 ~1GB。 ## 安装 ### 1. 前置:Python + funasr-onnx ```bash python3 -m pip install -U funasr-onnx modelscope # 仅这两个包:funasr-onnx 只依赖 onnxruntim

Read the full READMERepository license: MIT

dsh-voice-funasr DSH plugin questions

Do I need to install Python and models to use this plugin?

Yes, the plugin requires a local FunASR engine running as a sidecar. You need Python 3 with funasr-onnx and modelscope packages installed, and then download the model files (~520MB) using the provided script. The plugin will not work without this setup.

What happens if the local engine is not available?

The plugin automatically falls back to the browser's built-in Web Speech API for speech recognition. However, the accuracy may be lower and the user experience slightly different. You can also manually switch backends in the settings panel.

Can I use this plugin alongside dsh-voice-chat?

No, both plugins register the same slot ('conversation.input.left') for the microphone button. Enabling both at the same time will result in two buttons. You should choose only one to use.

Is my audio data sent to any cloud service?

No, the audio is processed entirely locally on your machine. The ASR engine, including the model inference, runs on your computer. The optional polishing step may use your own LLM endpoint, but that is within the same trust boundary as your normal chat. Audio is never written to disk.

How do I uninstall the plugin and remove the models?

Run `dsh plugin --profile web remove dsh-voice-funasr` to remove the plugin. Then delete the model directory `~/.dsh/voice-funasr/` and optionally uninstall the Python packages with `pip uninstall funasr-onnx onnxruntime modelscope`.