Skip to content

Releases: PensiveFei/dsh-voice-scribe

dsh-voice-scribe 0.4.0

Choose a tag to compare

@PensiveFei PensiveFei released this 28 Aug 01:31

What's new in 0.4.0

  • Composer microphone button — tap the mic icon next to the input to record/stop (turns red while recording); equivalent to the Alt hotkey.
  • Realtime transcription — Web Speech streams hypotheses into the draft while you talk; the local SenseVoice engine previews every 3s. The final transcript replaces the preview (no duplication; stale preview rolled back on too-short/failed recordings).
  • Cloud ASR provider chain — configure multiple OpenAI-compatible endpoints; tried in order with automatic failover, failures aggregated. Legacy single-endpoint config folds in automatically.
  • Mic button state fix — the icon now turns red immediately on record and clears on stop (was lagging one tap).
  • SECURITY.md — public Issues welcome for non-critical findings; high-severity issues go to Security Advisories.

Tests: 108 passing. Lint + security scan clean.

v0.3.0

Choose a tag to compare

@PensiveFei PensiveFei released this 27 Aug 05:07

[0.3.0] — 2026-08-28

Added

  • 识别语言新增 粤语 / 日本語 / 한국어:SenseVoice 模型原生支持中/英/日/韩/粤,本地离线识别自动检测语言;所选语言同时作用于浏览器 Web Speech(完整 locale 码)与云端 ASR(归一化为主子标签,如 yue-Hant-HK→yue)

Fixed

  • 设置页「未配置 API key」警告不再误报:此前引擎为「自动 / 本地离线识别」(都不需要 key)时也显示该警告;现在只在「云端 ASR」引擎下提示
  • 本地识别器并发加载去重:两次重叠的转写曾各自构造一个 OfflineRecognizer,约 230MB 模型被加载进内存两次;现在并发调用共享同一个加载 Promise,失败自动清除缓存可重试
  • 模型下载补齐背压:file.write() 返回 false 时等待 drain 再继续,避免镜像快、磁盘慢时把 230MB 整个堆进内存
  • 镜像失败不再留垃圾:此前回退镜像时把最多 230MB 的半成品改名 .part.fail 永久留在磁盘;现在失败即删 .part,且每次启动下载先清理陈旧的 .part / .part.fail
  • 本地转写超时放宽到 180s:本地 CPU 推理约 0.3× 实时,最长录音(约 4.7 分钟)需 ~90s,此前沿用 75s 通用上限会被客户端提前掐断
  • 「✨ 润色中…」状态改为常驻:润色最长 30s,此前 2.6s 就淡出,看起来像没在工作
  • 模型下载轮询去重:下载进行中再按 Alt 曾会启动第二个重复轮询(localDownloading 标志只写不读);现在共享同一个进行中的 Promise

测试:95/95 通过(+10),lint 与密钥/路径扫描干净。

dsh-voice-scribe v0.2.0

Choose a tag to compare

@PensiveFei PensiveFei released this 26 Aug 16:09

dsh-voice-scribe v0.2.0 — 本地离线识别引擎(零配置 · 零 API key)

🧠 核心变化:新增「本地离线识别」引擎

  • 引擎:SenseVoice(sherpa-onnx,CPU 推理),支持中文自动标点、中/英/日/韩/粤
  • 音频完全在本机处理,不出本机、不依赖任何云端 API/API Key
  • 首次使用自动后台下载模型(约 230MB,国内镜像 hf-mirror.com),之后完全离线可用
  • 不受浏览器限制:天然规避 Chrome 被墙 / Edge Stable 回归 / 离线环境

⚙️ 默认引擎改为「自动(auto)」

  • 本地模型就绪 → 直接本地识别(100% 可靠)
  • 未就绪 → 先用浏览器 Web Speech;不可用时自动切换本地并自动下载模型
  • 从 0.1.x 升级的用户会自动迁移到「自动」模式

🐛 修复

  • 超大请求体不再挂起(真正返回 413)
  • 润色失败不再卡状态条;插件注册名统一为 dsh-voice-scribe
  • trustedHosts 校验移到启动期(坏配置不再拖垮全部请求)
  • 语言码不再截断(粤语 yue 等 3 字母码)
  • 热键不再误触非输入框;本地转写解码修复(杜绝卡死)
  • 客户端 abort 透传服务端;设置页支持清除已存 key、URL 校验

📌 关于 Web Speech(重要说明)

浏览器内置识别(Web Speech)依赖 Google/Microsoft 语音服务:

  • Chrome 在中国大陆被墙(Google 服务不可达)
  • Edge Stable 有已知回归(微软官方确认:Stable/Beta 的 SpeechRecognition 报 network 错误,Dev/Canary 正常,后续版本修复)
  • 插件不再依赖它作为主路径;「自动」模式会无缝使用本地引擎
  • 若显式选择「浏览器内置识别」遇到网络错误,这是浏览器/网络限制,请切换「本地离线识别」或「云端 ASR」

🔧 安装 / 升级

dsh plugin --profile web add dsh-voice-scribe@0.2.0
# 重启 dsh web 后生效
  • 新增原生依赖 sherpa-onnx-node(预编译,win/mac/linux)
  • 首次使用本地引擎时自动下载模型(约 230MB,只需一次)

v0.1.1

Choose a tag to compare

@PensiveFei PensiveFei released this 25 Aug 08:25

v0.1.1 — 设置页 UI + 云端 ASR 配置

新增

  • 设置页 UI(设置 → 语音输入 / Voice Input,中文/英文双语):识别引擎、识别语言、热键、润色开关
  • 云端 ASR 配置界面:切换到云端引擎后显示 Base URL / 模型 / API Key 输入 + 保存按钮(key 只存服务端 ~/.dsh/voice-input.json,不进浏览器)

修复

  • 设置页显示英文 → locale 字典改为按语言嵌套({ zh, en }),section label 硬编码中文
  • 点击设置选项无反应 → 设置行加 useState tick,变更后立即重渲染
  • 客户端注册 id dsh-voice-inputdsh-voice-scribe(修复浏览器 "loaded without registering")
  • 插件自带 cordis.patch.yml 与 tgz 同步为 dsh-voice-scribe;服务端 name 导出同步

使用

dsh plugin --profile web add dsh-voice-scribe

默认引擎为浏览器内置 Web Speech(零配置零 key);切换云端引擎后可配置 OpenAI 兼容 ASR 端点。润色默认关闭,开启后复用 DSH 已配置模型。

已知问题

  • Web Speech 引擎依赖浏览器语音服务联网(Chrome 走 Google、Edge 走 Azure),内网/离线环境可能识别失败;可切换云端 ASR 引擎
  • 浏览器可能拦截 Alt 单键(聚焦菜单栏),此时用 Alt+空格

v0.1.0

Choose a tag to compare

@PensiveFei PensiveFei released this 25 Aug 07:23

v0.1.0 — 首个发布版

DSH 专属语音输入插件:点按 Alt 说话、再点按结束转文字,文本直接插入输入框光标处。

新增

  • 点按 Alt 切换录音(默认热键;备选 Alt+空格,设置可切换)
  • 默认引擎:浏览器内置 Web Speech(Chrome/Edge 自带,零配置零 key,开箱即用——DSH 用户大多只有 DeepSeek 文本模型 key,无法直接做语音转写,此方案无需额外注册任何服务)
  • 可选引擎:OpenAI 兼容 ASR(Groq / 硅基流动 / 自建端点,API key 只存服务端 ~/.dsh/voice-input.json
  • 可选润色:复用 DSH 已配置模型清理口头禅/补标点(默认关闭,零额外配置)
  • 持久状态条:录音中/转写中持续显示,文字插入后自动消失
  • 安全:路由护栏(loopback/trustedHosts/跨站拒绝)、key 不进浏览器、音频不落盘不打日志、免责声明

兼容性

  • DSH web(浏览器访问 127.0.0.1),Chrome/Edge 推荐
  • Node.js >= 18

安装

dsh plugin --profile web add dsh-voice-scribe
# 或本地打包后安装:pnpm pack → dsh plugin --profile web add ./dsh-voice-scribe-0.1.0.tgz

已知问题

  • Web Speech 引擎依赖浏览器语音服务联网(Chrome 走 Google、Edge 走 Azure),内网/离线环境可能识别失败;可切换云端 ASR 引擎
  • 浏览器可能拦截 Alt 单键(聚焦菜单栏),此时用 Alt+空格