国内可用的输入框语音输入。需要先启动本地 Python bridge(pip install dashscope websockets,运行 bridge/voice-bridge.py)——只装插件不可用。浏览器麦克风采集 16kHz PCM 流式转发给 bridge,由阿里云 DashScope ASR(paraformer-realtime-v2)识别;识别文字在光标处实时填入草稿,静音自动停止,可选识别后自动发送。
安装
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:Schumchanvi/dsh-voice-input-cn
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
DeepSeek Harness Web 语音输入插件(国内可用版)
在聊天输入框添加麦克风按钮,点击说话即可将语音转为文字填入草稿。基于 阿里云 DashScope ASR(国内直连可用),替代原版依赖的 Google Web Speech API(国内无法访问)。
本项目 fork 自 NewDaNew/dsh-voice-input,原版使用 Web Speech API(Google 云端),在国内直连不可用;本版重写了识别引擎为阿里云 DashScope ASR + 本地 bridge。
🛠 开发工具:本插件在 DeepSeek Harness (DSH) 中开发与调试(代码重构、排障、测试均由 DSH 辅助完成)。DSH 是一个开源 AI 助手框架:https://github.com/deepseek-ai/dsh
✨ 功能
- 🎤 输入框麦克风按钮,点击开始说话,静音 1.5 秒自动停止
- 📝 识别文字实时填入输入框(光标位置插入,不覆盖已有草稿)
- 🔀 中文 / English 语言切换
- 📨 可选"识别后自动发送"
- 🔌 本地 bridge(Python)中转,国内直连阿里云,低延迟
🧱 架构
浏览器插件 (lib/client.js)
├─ AudioWorklet 采集麦克风 16kHz PCM
├─ 流式发送 → ws://127.0.0.1:8765
└─ 本地 bridge (bridge/voice-bridge.py)
└─ 阿里云 DashScope paraformer-realtime-v2 识别
为什么需要本地 bridge? DashScope 的 ASR WebSocket 握手依赖官方 SDK 的内部鉴权逻辑,浏览器裸 WebSocket 直连会 401。bridge 用官方 Python SDK 处理鉴权,浏览器只负责录音和显示。
📦 安装
1. 安装插件
dsh plugin --profile web add github:Schumchanvi/dsh-voice-input-cn
或用 dshmarket 安装(如果已上架)。
2. 安装 bridge 依赖(Python 3.10+)
pip install dashscope websockets
3. 启动 bridge
# 前台运行
python bridge/voice-bridge.py
# 或 Windows 开机自启(双击注册到启动文件夹)
wscript bridge/start-voice-bridge.vbs
bridge 默认监听 127.0.0.1:8765(仅本机,不暴露公网)。
4. 配置 API Key
- 刷新 DSH 页面
- 点击输入框旁的麦克风按钮 → 右侧小箭头(⌄)打开设置
- 填入 DashScope API Key(阿里云百炼获取)
- 选择语言,保存
🎤 使用
- 点击麦克风按钮开始
- 正常说话(文字会实时填入输入框)
- 停顿 1.5 秒或再次点击 → 自动结束
- 若开启"自动发送"则直接提交,否则可继续编辑后手动发送
🔧 配置项(设置菜单)
| 项 | 说明 |
|---|---|
| DashScope API Key | 阿里云百炼 API Key(存 localStorage) |
| 识别后自动发送 | 识别完成自动提交草稿 |
| 识别语言 | 自动 / 中文 / English |
📝 与原版的区别
| 原版 (dsh-voice-input) | 本版 (dsh-voice-input-cn) | |
|---|---|---|
| 识别引擎 | Web Speech API(Google 云端) | 阿里云 DashScope ASR |
| 国内可用 | ❌ 不可用 | ✅ 直连可用 |
| 架构 | 纯浏览器 | 浏览器 + 本地 Python bridge |
| 识别体验 | 一次性返回 | 流式实时填入 |
| 静音停止 | 无 | ✅ 1.5s 自动停止 |
| 光标插入 | 追加末尾 | ✅ 光标位置插入 |
⚠️ 安全说明
- API Key 存于浏览器 localStorage,本插件不上传 key 到任何第三方;但同一浏览器内的其他脚本可读取,请勿在共享电脑使用
- bridge 仅监听
127.0.0.1,不对外网开放 - 音频仅发送至阿里云 DashScope 识别,不留存
🐛 常见问题
Q: 显示"连接本地语音服务失败"
A: bridge 没启动。运行 python bridge/voice-bridge.py,确认端口 8765 已监听。
Q: 识别不出内容 / "呃呃啊啊" A: 检查麦克风权限(浏览器 + Windows);确认 Key 有效(阿里云百炼控制台可测试);确认音频不是静音。
Q: 显示"无可用麦克风"
A: 这是浏览器 getUserMedia 的 NotFoundError。检查 Windows 麦克风隐私设置、默认输入设备、驱动状态(Intel 智音端点幽灵化时需重装驱动)。
Q: 延迟高 A: 识别为流式,理论上说完即出;若延迟明显,检查网络到阿里云的延迟,或换用更近的区域节点。
Q: 报 NO_VALID_AUDIO_ERROR
A: bridge 只接受裸 PCM(16kHz 单声道 int16)。如果你用自建脚本/客户端直连,别拼 WAV 头;本插件内置的 AudioWorklet 已输出纯 PCM,正常情况下不会出现此错误。
Q: 有回音/自己说话被识别
A: 麦克风流不允许连回 AudioContext.destination(回放)。本插件已断开该连接;若你魔改过,检查 worklet 是否接了 destination。
Q: 文字被填了两次 / 重复插入
A: 这是"停止提交"与"空闲提交"双触发的经典 bug。本插件统一由 onState("idle") 提交一次,手动点停不会再提交;若你魔改过,检查 stop 路径是否也提交了。
Q: 浏览器直连 DashScope 报 401
A: 这是预期的。DashScope ASR 的 WebSocket 鉴权在官方 SDK 内部完成,裸 WebSocket 无法携带签名。必须走本地 bridge(本仓库 bridge/voice-bridge.py)。
Q: bridge 端口被占用(Windows 报"address already in use")
A: 说明已有 bridge 实例在跑(或别的程序占了 8765)。关掉旧的,或用 set VOICE_BRIDGE_PORT=xxxx 换端口(同时需在客户端改 BRIDGE_URL)。
📜 License
MIT(保留原版 fork 版权声明;阿里云 DashScope 服务需遵守其使用条款)
链接
同类插件
PolinniZhong/dsh-omi-voice★ 74
DeepSeek Harness 对话内朗读:点一下即可朗读、暂停、继续 AI 回复,豆包 TTS 自然音色(BYOK),只读最终回答并过滤代码、表格与图形,本地引擎,插件零 Key。
PensiveFei/dsh-voice-scribe★ 35
面向 Web UI 的语音输入插件:点按 Alt(或 Alt+空格)开始/停止听写,支持浏览器内置 Web Speech(零配置)或 OpenAI 兼容云端 ASR,可选经 DSH 已配置模型润色,带设置页。
WizisCool/dsh-ears★ 22
面向 DeepSeek Harness (dsh) 的语音输入插件:输入框的麦克风按钮把语音转成草稿文本,支持多种语音识别后端,可选经 dsh 自有 LLM 路由润色,并带原生设置页。
1624318455/dsh-plugin-tts★ 21
用免费 Edge TTS 或你自己的 RVC 音色朗读 AI 回复:消息朗读与自动朗读、长文自适应分块渐进播放(无缝衔接)、音色包仓库一键安装、便携 RVC 运行时。
PerryLink/dsh-talk★ 16
DeepSeek Harness 的语音输入输出:麦克风语音转文字与文字转语音。
qishuilalala/dsh-voice-mode#dsh-voice-mode★ 16
DeepSeek Harness Web UI 全双工语音对话:按钮或 Ctrl+Shift+V 进入,持续聆听(停顿自动发送)或按住说话,zipformer2 流式识别入可编辑草稿、可选唤醒词;回复按句 Edge TTS 朗读并显示实时字幕,开口即打断播放与回合(真 barge-in);识别模型本地推理、Edge TTS 在线合成,无需 API Key。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。