前言¶
在 DeepSeek Harness(DSH)里长时间对话时,助手回复往往是一屏接一屏的文本:谁在说、要不要边做别的边听结果,界面本身并不强调。若你希望每轮回答左侧有一个固定的「角色位」,并能用系统语音或本机 TTS 把最终回答读出来,就需要在客户端侧接一层界面能力。下面介绍社区插件 dsh-avatar-frame(维护者 vioeveann,分类为客户端):它在每轮已完成的回复左侧显示圆形头像与可编辑 ID,并提供朗读、播放控制与可选的一键托管语音服务进程;插件不附带任何语音模型或参考音频,音色由你本机或远程 HTTP 服务提供。
这是什么¶
dsh-avatar-frame 是面向 Web 平台 DSH 的界面插件:接管「已完成,用时 …」相关行的渲染,在 gutter 区展示头像和 ID,并可选朗读该轮最终回答(不读思考过程与折叠的工具步骤)。数据保存在浏览器 localStorage,默认不上传;只有当你把 TTS 地址指向远程时才会对外发起合成请求。代码以 MIT 许可发布,npm 包名与仓库名均为 dsh-avatar-frame。
核心功能¶
形象与预设¶
每轮回答结束后,左侧出现圆形头像,右侧是可点击编辑的 ID,与完成用时行对齐。可上传图片并在裁切框内拖动、滚轮缩放后应用到所有轮次;ID 字号可在 10–20px 间调节。最多保存 8 套「头像 + ID + 字号」预设,一键切换;预设图以压缩 JPEG 形式存储。
朗读与播放¶
点 ID 右侧小喇叭可朗读该条回复正文。可开启「自动朗读新回复」,仅对新完成的轮次生效,历史轮次不会补念。
两种引擎:
- 系统语音:开箱即用,可选音色;按回复语言倾向选中/英文音色,并优先神经网络类音色(具体列表取决于系统与客户端)。
- 本地服务:向你在设置里填写的 HTTP 地址发起合成;默认
http://127.0.0.1:8123。服务不可用时自动退回系统语音;离线时每 2.5 秒重试,连上后每 30 秒静默保活。
朗读时出现播放控制条(接在小喇叭右侧):暂停/继续、上一句/下一句、五档语速(0.95× / 1.00× / 1.05× / 1.10× / 1.15×)、停止;系统语音与本地服务均支持。音量滑块 0–100%,默认 50%。语气三档(平稳 / 自然 / 活泼)会随请求发给本地服务。长回复按句切分,并提前两段预生成以减少句间停顿;单句失败会跳过并继续,失败时小喇叭旁有红点,悬停可见原因。
语音服务进程(可选)¶
插件可在宿主端替你启动 / 停止 / 重启你配置的 TTS 进程,入口在 设置 → 角色头像 → 语音服务 与插件详情页同名区块。可勾选「DSH 启动时拉起语音服务」(指 DSH 启动时执行一次,非开机自启)。启动配置包括启动命令、工作目录、环境变量(每行 KEY=VALUE)。切换到「系统语音」时该区块通常隐藏;若进程仍在跑或开着自启,界面行为以 README 说明为准。
状态会随连接过程更新:启动后先显示检测与等待秒数,连上为「已连接」;超过 25 秒仍未连上会显示「未连接」及简短原因。设置页提供诊断信息(服务状态、模型名、上一句合成耗时、播放进度、最近错误等)。界面语言可在中文 / English 间切换,选择仅存本机。
安装与启用¶
在 DeepSeek Harness 中打开 插件 → 添加插件,任选一种来源:
- npm 包名:
dsh-avatar-frame - GitHub 仓库地址:
https://github.com/vioeveann/dsh-avatar-frame - 本机解压后的源码目录(例如从 最新 release 源码 zip 解压)
添加完成后必须重启一次 DSH(安装或升级后同样如此)。插件前端模块与「一键启动服务」的宿主端代码在 DSH 启动时加载,只刷新页面可能出现「已安装、显示运行中,但聊天区无变化」或「宿主端未加载」。
国内使用 npm 时可走 registry.npmmirror.com 等镜像;若用 GitHub 地址安装依赖本机 git 能访问 github.com。装不上时可按 README 排查 registry、代理,或改用本地目录安装。
典型用法¶
配置头像与 ID¶
- 点任意一轮回复左侧头像,或「已完成」行的 ID,打开设置面板。
- 点「选择头像图片」上传,在裁切框内调整,确定。
- 在顶部输入框填写 ID,按需调节字号;需要时点「保存预设」。
- 打开「朗读」后,点回复旁小喇叭试听。
集中配置入口:设置 → 角色头像(与点头像弹出的面板、插件详情页内容一致)。
先用系统语音¶
引擎选「系统语音」,在音色下拉框试听。Windows 11 可安装微软自然语音后重启 DSH,下拉框会优先排列带 Natural 的项;若系统仅有老 SAPI 音色,可改用本地服务。
用仓库示例跑通本地 TTS¶
插件不带服务实现;仓库提供最小示例(微软 Edge 在线语音):
pip install edge-tts
python examples/simple_tts.py
示例默认监听 127.0.0.1:8123。在插件里把服务地址设为 http://127.0.0.1:8123,引擎选「本地服务」,点小喇叭或「试听一句」验证。
若要用插件托管该进程,在「启动配置」中填写例如:启动命令 python examples/simple_tts.py,工作目录为本仓库所在目录;安装或升级插件后需重启 DSH 后该能力才可用。
本地服务 HTTP 契约(摘要)¶
完整说明见仓库 docs/tts-contract.md。最小约定:
GET /health
-> 200 {"ok": true, "model": "任意字符串"}
POST /tts
{"text": "要读的文本", "speed": 1.05, "tone": "normal"}
-> 200,Content-Type 为 audio/wav 或 audio/mpeg
需允许 CORS(Access-Control-Allow-Origin: * 并响应 OPTIONS)。speed 建议范围 0.7–1.3;不识别的 tone 可由服务忽略。
适用场景与注意¶
适合谁:在 Web 版 DSH 里希望对话更有「角色感」、或需要听最终回答而非盯屏的用户;已有自研 TTS 且愿意按 HTTP 契约对接的开发者。
权限与安全:「一键启动服务」会按你填写的命令在本机执行程序,插件不附带第三方服务;请只配置可信命令。路由走本机同源请求且无额外鉴权,勿将 DSH 暴露到不可信网络。
生态与来源:DSH 社区插件目录(如 SkillHub 上的条目)为独立站点,与 DeepSeek / 幻方无官方从属关系。安装前建议查看 GitHub 仓库 源码与 MIT 许可证,并自行确认所用 TTS 模型、参考音频与第三方服务的版权。
已知限制(摘自 README):
- 仅支持 Web 平台 DSH。
- 停用或卸载后请刷新界面,否则可能出现「未知 surface 事件:turn-process」。
- 头像仅在一轮结束后出现,流式输出过程中不显示。
- 与其他同样接管
turn-process的插件可能冲突。 - 语音模型、参考音频需自备;插件不包含音色文件。
结尾¶
dsh-avatar-frame 把「谁在说」和「读出来」收进客户端一层:头像、ID、预设与双引擎朗读,并可选择由 DSH 托管你自己的 TTS 进程。进一步了解与安装:
- 目录页:https://www.skillhub.cn/plugins/vioeveann/dsh-avatar-frame
- GitHub:https://github.com/vioeveann/dsh-avatar-frame