dsh-meeting-notes:DSH 本地会议录音、离线转写与纪要生成

前言

在 DSH 里做结对编程、评审或站会时,常见做法是另开录音应用、再用手动或在线服务转写,最后把文稿贴回工作区。音频往往要上传第三方,纪要还要再拷一层。下面介绍社区插件 dsh-meeting-notes(npm:@iceleaf/dsh-meeting-notes):在 DSH 侧栏完成「混音录音 → 本机 ASR → 可选一键纪要」,转写走 DSH 的 ctx.speechToText,默认不联网、不上传音频。

这是什么

dsh-meeting-notes 由维护者 iceleaf916 发布,当前版本 v0.2.1(MIT)。它是 DSH Web 侧栏插件,入口名为「会议记录」:主区负责录音、转写与文稿阅读;左侧列会议列表,右侧看转写或纪要;设置集中在右上角齿轮弹窗。

归类上在 SkillHub 目录中常与「模型推理」相关——识别与 Qwen3-ASR 推理在本机完成;纪要阶段再调用 DSH 大模型整理文稿。

核心功能

录音与混音

  • 默认同时采集 系统音频(macOS ScreenCaptureKit)与 麦克风(AVAudioEngine),逐样本相加混音,输出 16 kHz 单声道 PCM,落盘为 WAV。
  • 采集后端目前仅实现 macOS(需 macOS 13+)。Linux / Windows 上 Host 会明确提示暂不支持录制;存储、转写、纪要等与平台无关的部分仍可用。
  • 首次录音会调用 swiftc 编译 recorder/ 辅助程序(需 Xcode Command Line Tools)。系统需授予 DeepSeek Harness 屏幕录制(系统声)与 麦克风 权限。

转写模式与模型

两种模式可在配置中切换:

  1. 录音结束后转写(默认):停止后后台整段转写,录音期间预热本地模型。
  2. 实时转写:按静音点切段,边说边出字;预览识别约每 3.5 秒刷新。

识别复用 DSH 的 ctx.speechToText,完全本机离线。设置页 识别模型列表 中可下载、切换、查看准备进度。内置两种 provider(列表按 DSH 动态生成,后续接入的 ASR 也会出现在此):

模型 说明
SenseVoiceSmall (INT8) DSH 语音输入插件提供,约 1 GB,支持实时,速度快
Qwen3-ASR-0.6B (INT8) 本插件自带(qwen3.js + worker,依赖 sherpa-onnx-node),约 1.15 GB,中文/方言/中英混说更稳;非流式、单次窗口约 30 秒,更适合结束后转写

默认语言 zh;SenseVoice 对英文术语、产品名会原样保留。Qwen3 模型文件默认在 ~/.dsh/speech-to-text/qwen3-asr-0.6b/,可用 qwen3ModelDir 覆盖;下载源可选 ModelScope(国内推荐)或 HF-Mirror。

存储与纪要

  • 默认目录 ~/dsh-meetings/,界面可改;每场会议一个子目录,编号形如 20261110-140322-a1b2。
  • 每场会议典型文件:meeting.json(元数据与分段)、audio.wav、transcript.md([00:01:23] 文本 格式)、minutes.md(仅点击「生成会议纪要」后由模型写入)。
  • 「生成会议纪要」非自动:Host 将会议目录注册为 DSH 工作区、新建会话,让模型读 transcript.md 并写 minutes.md,客户端跳转到该会话,可继续追问修改。同一路径重复点生成不会重复注册工作区,但会新建会话。

依赖与环境

安装与运行前建议核对:

  • DSH(Web profile),Host 提供 webServer;纪要需要 workspaceRegistry 与 sessionController(Desktop 版默认具备)。
  • SenseVoice:需启用 DSH 实验语音插件 @deepseek-ai/dsh-experimental-speech-to-text 与 -sensevoice,并在设置页完成模型准备。
  • Qwen3-ASR:由本插件注册 provider,依赖 sherpa-onnx-node ^2.0.1(含 macOS arm64 ONNX 运行时)。
  • 客户端仅 React(由 DSH 模块表提供)与浏览器 API,插件侧无独立构建步骤。

安装与启用

从 npm 安装(资料中的官方命令):

dsh plugin --profile web add @iceleaf/dsh-meeting-notes
# Desktop 版把 web 换成 desktop

装完后重启 DSH 或刷新页面,左侧栏出现「会议记录」。首次录音会自动编译录音辅助程序;首次识别请在设置页「识别模型」下载并准备所选模型(Qwen3 首次约 1.15 GB)。

社区目录页:SkillHub · dsh-meeting-notes
源码与完整说明:GitHub · iceleaf916/dsh-meeting-notes

典型用法

按 README 描述的可复现流程:

  1. 打开侧栏「会议记录」,在设置中确认存储目录、转写模式(结束后 / 实时)、providerId、是否采集系统声与麦克风、切块秒数等(对应 POST /config 字段:storageDir、transcribeMode、language、providerId、captureSystemAudio、captureMicrophone、chunkSeconds)。
  2. 在识别模型列表选好模型并完成「下载并准备」;SenseVoice 未就绪时插件会提示,不会静默失败。
  3. 填写标题后开始录音(POST /recordings);录制中可通过 SSE GET /recordings/events 看电平与实时分段。
  4. 停止录音(POST /recordings/stop):音频写入会议目录,after 模式下转写在后台继续。
  5. 在页面查看 transcript.md、回放 audio.wav(支持 Range)。
  6. 需要纪要时点击「生成会议纪要」(POST /meetings/<id>/minutes),跳转到新会话,等待模型写入 minutes.md 后再在同会话中修改或追问。

需要可对已有会议 POST /meetings/<id>/transcribe 重新转写,或 DELETE /meetings/<id> 删除整场目录。

适用场景与注意

适合谁

  • 已在 macOS 上用 DSH 开会或录屏讲解,希望系统声与麦克风一并留存、转写与纪要留在本机工作流里的开发者。
  • 对离线 ASR 有要求、愿意为本机模型占用约 1–1.15 GB 磁盘的用户。
  • 需要把单场会议目录注册成工作区、用同一会话迭代纪要的场景。

务必注意

  • 插件以当前 DSH 进程权限运行;安装前建议阅读 仓库源码 与 MIT 许可证,自行评估录音与本地模型风险。
  • 录制仅限 macOS;在非 macOS 上不要指望完成混音采集。
  • SenseVoice 对专业术语、远场小音量识别有限;实时预览比正式分段粗糙。
  • Qwen3-ASR 更适合结束后转写;UI 会标注实时延迟较高。
  • 生成纪要耗时取决于所用大模型;页面只负责跳转会话,不阻塞等待 minutes.md 写完。
  • DSH 社区插件目录(SkillHub)为独立站点,与 DeepSeek / 幻方无官方从属关系;本插件 GitHub 星标数为 0(以仓库页面为准),不代表质量结论,仅作生态事实。

结尾

dsh-meeting-notes 把会议链路的「采集(macOS)→ 离线转写 → 可选 DSH 纪要会话」收进同一侧栏,与「音频上云再贴回 DSH」相比,路径更短、数据默认留在本机。若你使用 Web 或 Desktop profile,可按上文命令安装,在 macOS 上从识别模型准备做起,再试一场短录音验证转写与纪要跳转是否符合预期。

  • 目录页:https://www.skillhub.cn/plugins/iceleaf916/dsh-meeting-notes
  • GitHub:https://github.com/iceleaf916/dsh-meeting-notes
羽毛球分组比赛记分
小程序二维码

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

Xiaoye