ppy-web/dsh-plugin-xiaomi-mimo-tts
ppy-web/dsh-plugin-xiaomi-mimo-tts为 DSH 提供小米 MiMo、豆包和浏览器本地语音朗读,支持自动播报、自定义音色与可选 UI 音效。
豆包式语音对话插件:聊天框麦克风按钮(按住说话)语音转文字并自动发送,AI 回复自动朗读。可选 LLM 转述精简(长回复压缩成口语再播,跟随当前对话模型)、朗读前清洗 markdown/emoji/特殊符号、Edge TTS 多种音色、静音自动结束时长可调,设置嵌入 DSH 自带设置弹窗(voice chat 类目)。
豆包式语音对话插件(DeepSeek Harness Web GUI):点一下 🎤 说话,AI 回复自动用语音"汇报"给你。
📖 完整使用手册见 MANUAL.md(安装/操作/配置/FAQ/原理)。
Ctrl+Shift+Space 切换麦克风(备用 Ctrl+M / Ctrl+Shift+M)。dsh web);ws,无需额外运行时);MediaRecorder 支持);# 方式一(推荐,已发布到 npm):
dsh plugin --profile web add dsh-voice-chat
# 装完重启 dsh web注:插件自带内联 edge-tts 客户端(微软 Edge 免费朗读服务,无需任何 API key);Edge TTS 无需额外密钥,MiMo TTS / 自定义 TTS 则需配置对应密钥。
打开 DSH 设置弹窗(左下角齿轮),左侧点「voice chat」,右侧即可改:
🎤 语音识别设置
🔊 朗读设置
🔒 每个引擎的配置互相隔离:ASR 的 4 个引擎、TTS 的 3 个引擎各自保存自己的
Base URL / 模型 / 密钥 / 音色,切换引擎只是"换看哪一份",不会互相覆盖;
保存时也只写当前编辑的那一份。旧版(≤0.3.x)的单份配置会在首次启动时自动
迁移到对应引擎(MiMo 音色 → MiMo TTS、自定义地址/密钥 → 自定义 TTS,无损)。
保存后立即生效,无需重启。
在 profile 的 ~/.dsh/profiles/web/cordis.patch.yml 里按 id 覆盖 config(全部可选项,不改则用默认值):
- id: dsh-voice-chat
name: 'dsh-voice-chat'
config:
asrEngine: siliconflow # siliconflow | groq | mimo | custom
asrApiKey: sk-xxxx # ASR 密钥(旧式单槽,作用于当前引擎;或环境变量 DSH_VOICE_ASR_KEY)
asrBaseUrl: https://api.siliconflow.cn/v1
asrModel: FunAudioLLM/SenseVoiceSmall
asr: # 也可按引擎分别配置(优先于上面的扁平键)
custom: { baseUrl: http://127.0.0.1:8000/v1, model: whisper-v3, apiKey: sk-xxxx }
llmModel: deepseek-v4-flash # 转述模型(fallback,正常跟随当前对话)
silenceMs: 2500
rewrite: false # 转述朗读开关(默认关闭,设置页可切换)
ttsEngine: edge # edge | mimo | custom
voice: zh-CN-XiaoxiaoNeural # Edge 音色(旧式,等价于 tts.edge.voice)
ttsBaseUrl: https://api.openai.com/v1 # 旧式单槽,作用于当前引擎
ttsModel: tts-1
ttsApiKey: sk-xxxx
tts: # 按引擎隔离的 TTS 配置(优先于上面的扁平键)
mimo: { baseUrl: https://api.xiaomimimo.com/v1, model: mimo-v2.5-tts, apiKey: sk-xxxx, voice: 冰糖 }
custom: { baseUrl: https://api.openai.com/v1, model: tts-1, apiKey: sk-xxxx, voice: alloy }
rate: '+10%'
shortTextChars: 50改完重启 dsh web 生效。优先级:设置面板 > cordis.patch.yml(按引擎 > 旧式扁平键)> 环境变量 > 默认值。
lib/index.js — 宿主半身:/stt(ASR,支持 OpenAI multipart 与 MiMo chat/completions 双协议)、/tts(Edge/MiMo/自定义 TTS)、/speak(转述+合成)、/settings(设置面板存取)等路由;lib/client.js — 浏览器半身:麦克风/静音按钮、静音检测、单信道播报、快捷键(Ctrl+Shift+Space)、录音自动转 WAV(供 MiMo 等 chat 协议 ASR);并向 DSH 设置弹窗注入「voice chat」类目表单(ASR/TTS 各引擎独立的表单槽);lib/edge-tts.js — 内联的 edge-tts 协议客户端(微软 Edge 免费朗读服务),唯一运行时依赖 ws;test/diagnose-tts.mjs — 朗读链路一键诊断(node test/diagnose-tts.mjs):逐个引擎真实合成一次,并直连插件 /tts、/speak 处理函数,逐段报出问题在配置、密钥、接口还是宿主进程出网。这个脚本随包发布,npm 装完可直接在插件目录里跑;test/*.test.mjs + test/host-smoke.mjs — 设置层自测(npm test:引擎配置互不串味、旧配置迁移、表单回填、/settings 路由冒烟)。仅仓库内使用,不随包发布:其中 host-smoke 会临时挪动 settings.local.json,不适合在别人的安装目录里跑;cordis.patch.yml — 插入 dsh-voice-chat 行 + 配置示例;settings.local.json — 设置面板保存的覆盖配置(运行时生成,不进 git);v0.4+ 结构为 asr. / tts. 分槽保存。