Live Talk:将照片转化为响应式虚拟女孩的 DSH 插件

前言

DeepSeek Harness (DSH) 的设计理念是「一切皆插件」。在开发具有数字人能力的智能体时,开发者通常需要分别对接 ASR(语音识别)、TTS(语音合成)、Avatar 媒体渲染以及对话管线,最后还要在 UI 层面完成角色注册与场景搭建。这一过程涉及多个组件的协作,开发成本较高。

Live Talk 是一个面向 DSH 的插件,它提供了一套完整的数字人切片方案。该插件将对话角色可视化核心、语音/视频 Provider 接口以及插件壳整合在一起,开发者可以直接使用它来驱动一个随对话自然说话、转身、微笑的虚拟角色。

插件概况

Live Talk 由开发者 eddiehuang227-source 维护,遵循 MIT 许可证。它允许用户将任意照片转化为一个响应式的虚拟女孩。该插件在低延迟、高细节的场景下表现良好,提供了一套从 ASR 到 TTS 再到 Avatar 渲染的完整能力。

核心功能

Live Talk 采用三层结构设计,分别对应不同的职责:

  1. dsh 插件壳:位于 package.json、cordis.patch.yml、src/index.js 和 src/client.js。负责 DSH bundle/client manifest 的管理、Host 路由注册、浏览器 conversation.view 标签页的渲染(角色舞台、开场视频、情绪 clip 联动)以及零 Key TTS 试听功能。
  2. 对话角色可视化 core:位于 src/core/characters.js、character-registry.js、dialogue-pipeline.js、emotion.js 和 conversation-bridge.js。负责管理角色 manifest、角色注册表、与供应商无关的语义管线(句子切分、情绪/动作、TTS 清洗)以及 DSH session 事件的桥接。
  3. 语音/视频 provider seam:位于 src/core/seams.js 和 provider-registry.js。提供 asr、tts 和 avatar-media 三个可替换的能力注册表。

该插件集成了角色 manifest 和对话管线,支持零 Key 的浏览器 TTS 和浏览器语音能力。角色预览图与开场视频随包发布在 assets/ 目录。情绪片段来自外部 character pack,如果缺失,UI 会自动回退到静态头像。

安装与启用

安装前请确保已安装 DeepSeek Harness 并满足运行环境要求。以下是具体的安装与启用步骤:

  1. 安装插件
    使用插件管理命令将本地或路径下的 live-talk 添加到 avatar 配置文件中:
    dsh plugin --profile avatar add /path/to/live-talk
  1. 验证配置
    运行命令查看配置文件中是否成功加载了 live-talk:
    dsh --profile avatar --dump-config
  1. 启动 Web UI
    启动 DSH 的 Web 界面:
    dsh --profile avatar web
  1. 选择会话视图
    在 Web UI 的会话顶部视图标签中,选择 Live Talk 标签页即可进入角色对话界面。

开发与测试

如果你需要对该插件进行二次开发或进行验证测试,请遵循以下步骤:

  1. 构建代码
    从 src/ 目录生成 lib/ 目录:
    npm run build
  1. 运行单元测试
    运行所有单元测试(包含构建步骤):
    npm test
  1. 运行集成测试
    运行完整的集成测试。注意:此步骤需要将 DSH_REPO 环境变量指向 deepseek-harness 的源码目录,同时需要设置 DSH_HOME:
    npm run test:integration

注意事项

在部署和使用 Live Talk 时,请注意以下事实:

  • 环境要求:需要安装 Node.js 版本 >= 22.13.0。
  • 验证版本:当前插件在 DSH 版本 0.1.0-rc.5 上经过验证。
  • 安装方式:
    • 通过 GitHub 直装时,需要锁定特定提交并允许 prepare 构建脚本。
    • 通过 npm 或 tarball 发布的版本,lib/ 目录已预构建,无需构建权限。
  • 密钥管理:所有第三方 Provider 的密钥通过 DSH 的 ctx.credentials 传递,不应出现在 patch 文件或配置文件中。
  • 集成测试:test:integration 需要依赖本地的 DSH 源码环境。

参考资料

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜