deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
PROJECT README
DSH Web UI 的本地离线语音输入插件:录音按钮按住说话 → 本地 FunASR 引擎 (paraformer-large + FSMN-VAD + ct-punc,全部官方 int8 ONNX)精准转写 → 可选 两段式润色(LLM 修正口头禅/口误)→ 自动进 composer 并发送。本地引擎不可用 时自动回退浏览器 Web Speech API。
与 dsh-voice-chat 的差异化:本地 ASR(中文精准、隐私、断网可用)+ 两段式润色。
>=0.1.0-rc.3 <0.2.0(Profile Bundle 与嵌套 dsh.client 契约)^22.19.0 || >=24.0.0MediaDevices / 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,模型常驻)
设置面板(引擎状态/安装指引/润色开关)
python3 -m pip install -U funasr-onnx modelscope
# 仅这两个包:funasr-onnx 只依赖 onnxruntime,不需要 torch(省 2GB)
python3 python/download_models.py --model-root ~/.dsh/voice-funasr/models
默认模型目录 ~/.dsh/voice-funasr/models(可在 profile 的插件 config 里改
modelRoot)。三个子目录:paraformer/、vad/、punc/。
# 在插件 checkout 内安装开发链接
dsh plugin --profile web add .
# 或安装已经验收的发布包
dsh plugin --profile web add ./dsh-voice-funasr-0.1.2.tgz
重启 dsh web。首次说话前可在 设置 → 本地语音(FunASR)→「加载模型」预热
(约 15s,一次),之后每次识别 ~0.3s。
dsh plugin --profile web remove dsh-voice-funasr,然后删除模型目录
~/.dsh/voice-funasr/ 与 Python 包(可选):pip uninstall funasr-onnx onnxruntime modelscope。| 键 | 默认 | 说明 |
|---|---|---|
pythonCommands |
[python3, python] |
引擎解释器候选(Windows 上 python3 常不存在) |
modelRoot |
~/.dsh/voice-funasr/models |
模型根目录 |
threads |
4 |
onnxruntime 线程数 |
channelAuthority |
loopback |
/asr 通道信任围栏;局域网访问用 trusted-host |
maxAudioSeconds |
120 |
单次转写音频上限 |
独立实现,不复用其代码;两个插件都注册 conversation.input.left 槽位,
请勿同时启用(会出现两个麦克风按钮),选其一即可。
# DSH 私有依赖是 peer,不写入任何个人 staging 的绝对路径
pnpm install
pnpm run dev:link-dsh -- --runtime /path/to/dsh-0.1.0-rc.3/node_modules
pnpm run verify
pnpm pack
dev:link-dsh 会核验 npm DSH 运行时版本和每个包名,再只在本 checkout 的 node_modules
中创建链接;它不会修改 DSH 源码、active profile 或 package.json。发布包通过
prepack 从干净源码重建 lib/。建议再在全新的 DSH_HOME 中安装 tarball,执行
--dump-config 与真实 Web 启动 smoke。
DSH/React peer 标记为 package-manager optional:它们由所安装的 DSH 与 Web 平台 提供,不应被树外插件复制一份;版本范围仍用于记录并检查兼容契约。
src/index.ts(tsc → lib/index.js,@deepseek-ai/* 依赖保持外部)python/funasr_engine.py(stdio 行 JSON 协议:boot/status/transcribe/warmup/stats/exit)src/client/(tsdown → lib/client.js,__ModuleLoader__ 注册)python/ 内可直接 echo '{"action":"status","id":1}' | python3 funasr_engine.py --model-root <root>CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。