🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

豆包语音听写 FYZB2020/dsh-voice-doubao

DeepSeek Harness
FYZB202019 天前有提交已提供中文文档扫描:含敏感能力

dsh-voice-doubao · 豆包语音输入

29.8/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/25 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add FYZB2020/dsh-voice-doubao
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:待复验
是什么[目录]—
dsh 原生插件 · other
暂无时间戳·判据 →
装得上吗[实装验证]—
曾在 dsh 0.2.0-rc.2 下真实安装成功,但当前 dsh 已更新至 0.2.1-rc.5,本站尚未在新版下复验
L4 · 真实安装等级说明 →
数据截至 2026/10/16·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/04·判据 →
还在维护吗[仓库]✓
活跃:最近一次提交在 19 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →

可信度证据

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件发起外部网络请求
查看扫描证据(共 36 处,展示前 25 条)
  • 写入本地文件
    lib/config.js:44
    writeFileSync(path, `${JSON.stringify({ ...payload, at: new Date().toISOString() }, null, 2)}\n`, 'utf8')
  • 读取本地文件
    lib/config.js:126
    if (!existsSync(path)) return {}
  • 读取本地文件
    lib/config.js:128
    const parsed = JSON.parse(readFileSync(path, 'utf8'))
  • 发起网络请求
    lib/ark.js:94
    const response = await fetch(request.url, {
  • 发起网络请求
    lib/auc.js:136
    const submit = await fetch(String(config.submitEndpoint), {
  • 发起网络请求
    lib/auc.js:156
    const query = await fetch(String(config.queryEndpoint), {
  • 读取本地文件
    doctor.mjs:58
    if (!existsSync(entry)) return false
  • 读取本地文件
    doctor.mjs:59
    return statSync(entry).mtime > statusStat.mtime
  • 读取本地文件
    doctor.mjs:72
    if (!existsSync(patch)) return ''
  • 读取本地文件
    doctor.mjs:74
    const text = readFileSync(patch, 'utf8')
  • 读取本地文件
    doctor.mjs:91
    if (!existsSync(configPath)) {
  • 读取本地文件
    doctor.mjs:96
    config = JSON.parse(readFileSync(configPath, 'utf8'))
  • 读取本地文件
    install.mjs:80
    if (!existsSync(packageJsonPath)) {
  • 读取本地文件
    install.mjs:97
    profile = JSON.parse(stripBom(readFileSync(packageJsonPath, 'utf8')))
  • 写入本地文件
    install.mjs:137
    mkdirSync(modules, { recursive: true })
  • 读取本地文件
    install.mjs:139
    if (existsSync(linkPath) || isLink(linkPath)) {
  • 删除本地文件
    install.mjs:141
    unlinkSync(linkPath)
  • 写入本地文件
    install.mjs:155
    if (!existsSync(backup)) copyFileSync(packageJsonPath, backup)
  • 读取本地文件
    install.mjs:155
    if (!existsSync(backup)) copyFileSync(packageJsonPath, backup)
  • 写入本地文件
    install.mjs:156
    writeFileSync(packageJsonPath, `${JSON.stringify(profile, null, 2)}\n`, 'utf8')
  • 读取本地文件
    install.mjs:170
    return lstatSync(path).isSymbolicLink()
  • 读取本地文件
    install.mjs:189
    if (existsSync(configPath)) {
  • 写入本地文件
    install.mjs:192
    mkdirSync(dshHome, { recursive: true })
  • 写入本地文件
    install.mjs:193
    writeFileSync(
  • 发起网络请求
    probe-resources.mjs:80
    const response = await fetch(endpoint, {
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

社区实装还没有人打卡 · 装过的第一个就是你
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

给 DeepSeek Harness 语音输入选择器加豆包云端语音识别,可选再用大模型把口语顺成通顺的书面句子。

README

由 DeepSeek 最新模型翻译生成
dsh-voice-doubao · 豆包语音输入 English · 中文 一个云端语音识别器,接入 DeepSeek Harness 的语音输入选择器,底层用火山引擎的豆包语音服务。 DeepSeek Harness 的语音输入设置页:识别器下拉框选中「豆包听写 + 顺稿(云端)」,下面两条豆包条目都显示 云端语音识别已就绪 它们出现的地方——设置 → 插件 → 语音输入 → 配置。两条都已注册并就绪。 为什么做这个 DeepSeek Harness 自带语音输入,而且做得不错:内置本地 SenseVoice 模型,离线运行,输入框旁边放个麦克风,说完话直接落进输入框。不花钱,也不用你配置什么。 但我说话就是普通人说话的样子。于是我按住按钮,说了一段完全通顺的话,拿回来的转写里塞着三个「那个」,一个标点都没有。字是对的,句子不是。 所以这个插件往同一个识别器选择器里加了几条,指向豆包的云端模型。界面其他部分一概不动。 你会得到什么 | 选择器里的条目 | 作用 | | 豆包听写(云端) | 识别,外加服务自带的语气词清理——「嗯 / 那个 / 就是说」在你看到之前就被去掉了 | | 豆包听写 + 顺稿(云端) | 把转写交给大模型,由它把句子重新拼好:标点、同音字、说了一半的从句都接上 | 第二条只有在你配置了火山引擎 Ark 密钥之后才会出现。
展开完整文档(README 剩余 1 节)
dsh-voice-doubao · 豆包语音输入

English · 中文

一个云端语音识别器,接入 DeepSeek Harness 的语音输入选择器,底层用火山引擎的豆包语音服务。

DeepSeek Harness 的语音输入设置页:识别器下拉框选中「豆包听写 + 顺稿(云端)」,下面两条豆包条目都显示 云端语音识别已就绪

它们出现的地方——设置 → 插件 → 语音输入 → 配置。两条都已注册并就绪。

为什么做这个

DeepSeek Harness 自带语音输入,而且做得不错:内置本地 SenseVoice 模型,离线运行,输入框旁边放个麦克风,说完话直接落进输入框。不花钱,也不用你配置什么。

但我说话就是普通人说话的样子。于是我按住按钮,说了一段完全通顺的话,拿回来的转写里塞着三个「那个」,一个标点都没有。字是对的,句子不是。

所以这个插件往同一个识别器选择器里加了几条,指向豆包的云端模型。界面其他部分一概不动。

你会得到什么

| 选择器里的条目 | 作用 |
| 豆包听写(云端) | 识别,外加服务自带的语气词清理——「嗯 / 那个 / 就是说」在你看到之前就被去掉了 |
| 豆包听写 + 顺稿(云端) | 把转写交给大模型,由它把句子重新拼好:标点、同音字、说了一半的从句都接上 |

第二条只有在你配置了火山引擎 Ark 密钥之后才会出现。没配的话,插件根本不显示它——一个按下去悄悄没反应的按钮,比没有按钮更糟。

同一段九秒录音,两条路径,真实输出:

raw :那个就是我想说一下,我们是不是应该把这个语音识别的接口先接上,然后再说后面的事情?
tidied :我想说一下,我们是不是应该把这个语音识别的接口先接上,再说后面的事情?

花多少钱

| 服务 | 价格 | 免费额度 |
| 录音文件识别模型 2.0——默认路径 | 0.8 元 / 小时 | 20 小时,半年 |
| 豆包流式语音识别模型 2.0——短音频 | 1 元 / 小时 | 20 小时,半年 |
| 火山方舟——可选的顺稿 | 每次调用约 0.06 分 | — |

一百句十秒的话 ≈ 0.22 元。 免费额度要手动领:打开语音控制台,找到对应模型,点【试用】。每个识别器各有自己的 20 小时。

⚠️ 有个坑值得提前知道:开通时选按小时 / 按量付费那一档。并发规格是按并发路数卖的(每路每月 ¥500,默认零),你的第一个请求就会失败,报 quota exceeded for types: concurrency。这一条让我搭进去一个晚上。

安装

方式 A——双击。 解压到一个固定位置,然后双击 安装.cmd。它会找到 DeepSeek Harness 自带的 Node,剩下的交给它。

方式 B——命令行。

$node = "$env:LOCALAPPDATA\Programs\DeepSeek Harness\resources\runtime\primary-runtime\dependencies\node\bin\node.exe"
& $node install.mjs
路线 C —— 插件管理器。 DSH 的插件管理器接受本地绝对路径(不支持拖拽)。把解压后的文件夹路径粘贴到它的安装框里。

A 和 B 会创建目录链接并修改配置档清单 —— 不涉及包管理器。C 走 pnpm。如果 pnpm 在你的机器上曾经失败过,优先选 A 或 B。

然后:把 API key 放进 %USERPROFILE%\.dsh\voice-doubao.json,重启 DeepSeek Harness,运行 doctor:

& $node doctor.mjs

一切就位时,它会以 15 项正常,全部就绪 结尾;每一行标了 ✗ 的都会附带该怎么处理。

解压后的文件夹之后不能移动或删除 —— DSH 通过链接进入其中访问插件。

为什么它不慢(以及哪里快不起来)

这个插件背后有两个服务,行为不一样,所以它按录音逐条选择 —— 对着真实 API 实测,各跑三次,交替顺序:

| 录音 | 提交 + 轮询 | 流式 | 胜出 |
| 4.3 s | 1234 ms | 1174 ms | 流式,险胜 |
| 9.1 s | 2343 ms | 1714 ms | 流式,快 27% |
| 21.0 s | 3187 ms | 3462 ms | 提交,险胜 |
| 43.1 s | 4150 ms | 7619 ms | 提交,快 84% |

交叉点大约在 15 秒,所以默认的 transport: "auto" 把短片段交给流式,长片段走提交路径。在同一组录音上:

| 录音 | 仅提交 | auto |
| 4.3 s | 1.28 s | 0.87 s |
| 9.1 s | 2.44 s | 1.37 s |
| 43 s | 4.15 s | 4.36 s |

你可以用 transport: "submit" 或 "stream" 强制指定其中一种。

我修不了的部分: 豆包手机 App 感觉是即时的,因为它在你说话的同时就出字。DSH 的语音输入服务只暴露一个操作 —— 「这是一段录好的音频,给我文字」—— 所以文字只能在你松手之后出现。在这个限制之内,这个插件对短句等大约一秒,对四十秒的录音等大约四秒。

怎么确认它真的在用

doctor.mjs 直接回答这个问题,依据是插件实时维护的状态文件:

✓ 当前选中的识别器就是豆包 现在选的是 doubao-polished
· 最近一次识别 2026/10/14 22:20:31 doubao-polished 处理,3.2s 音频 → 17 字,1.9s,顺稿已生效

第二行是你最近一次录音的记录 —— 哪个识别器处理的、音频多长、顺稿环节有没有跑。转写文本本身不会写入磁盘,除非你设置 logTranscripts。

实话实说的限制

- 你需要自己的 API key。 这个仓库不带,也永远不会带。
- 顺稿环节需要另一把独立的 key,来自火山引擎方舟 —— 不同的控制台、不同的服务、不同的账单。它是可选的;没有它识别照样能用。
- 你得自己选识别器,在设置 → 插件 → 语音输入 → 配置里。麦克风按钮会立刻开始录音,从不弹出菜单。这我也很意外。
- 目录是一份精选清单。 DSH 的插件市场只从这份清单安装,所以这个插件必须先列进去,才能在应用内安装。在那之前,zip 包和这个仓库就是安装入口。
- 附了两个 Windows 批处理文件,供双击安装。插件代码本身与平台无关,只有这两个辅助脚本仅限 Windows。
- Windows 用户用记事本编辑 package.json 时注意:安装器能容忍 UTF-8 BOM,因为我自己就踩过这个坑。

已验证

- 168 项离线测试,在 Node 22 和 Node 24 上运行——WAV 契约、协议分帧、传输选择、失败分类、取消、并发、整理护栏、回退、配置分层、实时状态文件。
- 真实服务运行,覆盖两种传输和两种识别器,对接线上豆包和线上方舟,原始输出见上。
- 另有 56 项检查针对真实运行时——22 项针对真实的 Cordis 4.0.4 服务,13 项走真实插件加载器(所以「重启后会挂载」是测出来的,不是假设的),21 项针对整理提示词的实际输出。
- 市场自身的要求全部满足:声明了 dsh.bundle,有 cordis.patch.yml,没有 private 字段,.cmd 文件以 CRLF 存储(在 git 对象里逐字节验证过,所以下载的 ZIP 仍然能双击)。

细节——包括只有线上服务才能暴露的三个问题(流式音频格式声明、指向错误对象的静音诊断、一个没被激活的旗舰模型),以及传输数据是怎么测的——都在 技术说明.md 里。

仓库结构

lib/ the plugin: config, two transports, the tidy-up pass
test/ offline suite + a mock service + a live check + a benchmark
install.mjs link the plugin into a profile and register it
doctor.mjs read-only health check: what's missing and what to do
probe-resources.mjs which Volcengine speech resources your key can actually use
使用说明.md step-by-step guide in Chinese 技术说明.md engineering deep-dive: protocol, pitfalls, measurements

许可证

MIT。

这东西为什么会有

DeepSeek Harness 本来就带语音输入,而且做得挺好:内置一个本地 SenseVoice 模型,离线就能跑,输入框旁边放个麦克风,说完字就进框里。不要钱,也不用你配任何东西。

但我说话就是人说话的样子。所以每次按住麦克风、说一段挺正常的话,转出来就是满屏「那个那个」、一个标点都没有。字是对的,句子不是。

所以这个插件往同一个识别器列表里多加了两个选项,指向豆包的云端模型。界面上别的地方都没动。

你会得到什么

| 列表里显示 | 它做什么 |
| 豆包听写(云端) | 识别,外加服务端自带的顺滑——「嗯 / 那个 / 就是说」会在你看到之前就被拿走 |
| 豆包听写 + 顺稿(云端) | 再把这段文字交给大模型重新组织:补标点、修同音字、把说了一半又改口的地方接顺 |

第二条只有在配了火山方舟的 Key 之后才会出现。没配就不显示——摆一个点了没反应的按钮,比不摆更糟。

同一段 9 秒录音,两条路的真实输出:

原文 :那个就是我想说一下,我们是不是应该把这个语音识别的接口先接上,然后再说后面的事情?
整理后:我想说一下,我们是不是应该把这个语音识别的接口先接上,再说后面的事情?

多少钱

| 服务 | 单价 | 免费额度 |
| 录音文件识别模型 2.0 —— 默认走这条 | 0.8 元 / 小时 | 20 小时,半年 |
| 豆包流式语音识别模型 2.0 —— 短句走这条 | 1 元 / 小时 | 20 小时,半年 |
| 火山方舟 —— 可选的顺稿 | 约 0.06 分 / 次 | — |
说 100 句、每句 10 秒,大约 0.22 元。 免费额度要手动领:进语音控制台,找到模型,点【试用】。两个识别服务各有自己的 20 小时。

⚠️ 有个坑提前说:开通时选「按量后付费 / 小时版」。那个「并发版」是按并发路数卖的(500 元/路/月,默认 0 路),第一次请求就会报 quota exceeded for types: concurrency。我在这上面花了一个晚上。

怎么装

路子 A —— 双击。 解压到一个固定目录,双击 安装.cmd。它会自己找到 DSH 自带的 Node 并把剩下的做完。

路子 B —— 命令行。

$node = "$env:LOCALAPPDATA\Programs\DeepSeek Harness\resources\runtime\primary-runtime\dependencies\node\bin\node.exe"
& $node install.mjs

路子 C —— 插件管理界面。 DSH 的插件管理器支持填本地绝对路径(它不支持拖拽)。把解压后的文件夹路径粘进它的安装框。

A 和 B 只是建一个目录链接 + 改 profile 清单,不依赖包管理器;C 走 pnpm。如果你机器上 pnpm 出过问题,优先 A 或 B。

然后把 Key 填进 %USERPROFILE%\.dsh\voice-doubao.json,重启 DeepSeek Harness,跑一次体检:

& $node doctor.mjs

全部就位时会打印 15 项正常,全部就绪;每一条 ✗ 下面都会写清楚该怎么做。

解压出来的目录装完不能移动、不能删除——DSH 是通过链接指向它的。

为什么它不慢(以及哪里快不了)

它背后是两个服务,脾气不一样,所以按录音长度自动挑。下面是打真实接口量出来的(每档 3 轮、交替顺序):

| 录音长度 | 提交+轮询 | 流式 | 谁快 |
| 4.3 秒 | 1234 ms | 1174 ms | 流式,微弱 |
| 9.1 秒 | 2343 ms | 1714 ms | 流式,快 27% |
| 21.0 秒 | 3187 ms | 3462 ms | 提交,微弱 |
| 43.1 秒 | 4150 ms | 7619 ms | 提交,快 84% |

交叉点在 15 秒附近,所以默认的 transport: "auto" 让短句走流式、长录音走提交。同一批素材的实际效果:

| 录音长度 | 只用提交 | auto |
| 4.3 秒 | 1.28 s | 0.87 s |
| 9.1 秒 | 2.44 s | 1.37 s |
| 43 秒 | 4.15 s | 4.36 s |

想强制走某一条,把 transport 设成 "submit" 或 "stream"。

有一件事我修不了:豆包手机 App 感觉"瞬间出字",是因为它边说你边打。而 DSH 的语音输入服务只提供了一个操作——"给你一段录完的音频,还我文字"——所以字只能在你松手之后才出现。在这个限制里,这个插件短句等大约 1 秒,40 秒的录音等大约 4 秒。

怎么确认它真的在工作

doctor.mjs 会直接告诉你,读的是插件维护的实时状态文件:

✓ 当前选中的识别器就是豆包 现在选的是 doubao-polished
· 最近一次识别 2026/10/14 22:20:31 doubao-polished 处理,3.2s 音频 → 17 字,1.9s,顺稿已生效

第二行是你上一次录音的真实记录:谁处理的、音频多长、顺稿有没有生效。
识别出来的原文默认不落盘——除非你把 logTranscripts 打开。

说点实话(限制)

- Key 得你自己申请。 这个仓库里没有任何密钥,以后也不会有。
- 顺稿那一步要第二个 Key(火山方舟)。不同控制台、不同服务、不同账单。它是可选的,不配也能用识别。
- 识别器要你自己切一次:设置 → 插件 → 语音输入 → 配置。麦克风按钮是"按下去就开始录",它不弹菜单。这一点当初也让我愣了一下。
- 市场是人工策展的清单。 DSH 的插件市场只装清单里的插件,所以这个插件得先被收录,才能在应用里一键装。在那之前,zip 和这个仓库就是入口。
- 包里附了两个 Windows 批处理,用来实现"双击安装"。插件代码本身不分平台,只有这两个小助手是 Windows 专用的。
- 用记事本改过 package.json 的 Windows 用户:安装脚本能容忍 UTF-8 BOM——因为我自己就踩过。

验证到什么程度

- 168 项离线测试,Node 22 和 Node 24 各跑一遍——WAV 契约、协议分帧、通道选择、失败分类、取消、并发、顺稿护栏、回退、配置分层、实时状态文件。
- 真实服务跑通了两条通道和两种识别器,打的是线上豆包和线上方舟,上面贴的就是原始输出。
- 另有 56 项打真实运行时——22 项打真实 Cordis 4.0.4 服务、13 项走真实插件加载器(所以"重启后确实会挂上"是测过的,不是猜的)、21 项跑顺稿提示词的真实输出。
- 市场那套要求也满足:声明了 dsh.bundle、有 cordis.patch.yml、没有 private 字段、.cmd 以 CRLF 存进仓库(从 git 对象里逐字节验证过,所以下载 ZIP 之后照样能双击)。

协议细节、只有真实服务才能暴露的三个问题(流式的音频格式声明、把人引错方向的静音提示、以及一个根本没开通的旗舰模型)、还有上面那些数字是怎么量的,都在 技术说明.md。

仓库结构

lib/ 插件本体:配置、两条通道、顺稿那一步 test/ 离线套件 + 假服务 + 真实检查 + 基准脚本 install.mjs 把插件链接进 profile 并登记 doctor.mjs 只读体检:缺什么、下一步做什么 probe-resources.mjs 你这个 Key 到底能用哪些资源使用说明.md 中文一步步安装手册技术说明.md 工程向深文档:协议、坑、实测数据

许可

MIT。
预览分享卡片长什么样 ↓FYZB2020/dsh-voice-doubao
分享 · DeepSeek Harness Hub
FYZB2020/dsh-voice-doubao

dsh-voice-doubao · 豆包语音输入

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部