@lbxc/dsh-voice-input
在输入框旁添加麦克风按钮,支持浏览器本地识别与多种转写接口。 适合偏好语音输入、需配置转写接口的用户。
安裝
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:LBXC-666/dsh-voice-input說明文件
閱讀完整 README ↗2. 首次使用:导入 / 配置 API(必做)
插件不内置转写服务,首次使用二选一:
- 导入配置:设置 → 语音输入 → 「导入 / 导出 API 配置」,粘贴 JSON 或选择
config.example.json; - 手动配置:选择接口模式和快速预设,填写 API Key / 地址 / 模型。
3. 快速配置
进入 设置 → 语音输入。
方式 A:浏览器本地识别(零配置)
接口模式选「浏览器本地识别」,语言填 zh-CN。仅 Chrome / Edge。
方式 B:OpenAI 兼容接口
| 预设 | 接口地址 | 模型 |
|---|---|---|
| OpenAI Whisper | https://api.openai.com/v1/audio/transcriptions | whisper-1 |
| Groq Whisper | https://api.groq.com/openai/v1/audio/transcriptions | whisper-large-v3 |
| SiliconFlow SenseVoice | https://api.siliconflow.cn/v1/audio/transcriptions | FunAudioLLM/SenseVoiceSmall |
| 本地 faster-whisper | http://127.0.0.1:8000/v1/audio/transcriptions | whisper-1 |
方式 C:自定义 JSON 接口
模板占位符:{{audio}}(base64)、{{format}}(MIME)、{{model}}、{{language}};用「取值路径」提取结果文本。
方式 D:实时流式接口(推荐日常使用)
本地鉴权代理会跟随 dsh web 自动启动:只要插件已安装,重启电脑后启动 dsh web 时,插件的 node 半身会自动拉起代理并做健康检查;代理已存在则直接复用,dsh 停服时由插件启动的代理会一并停止。日志写入 ~/.dsh/logs/dsh-voice-input-proxy.log。
插件自动启动的代理使用当前环境变量;
DASHSCOPE_API_KEY需要在 dsh web 的启动环境中配置。如果 dsh web 本身没有配置开机自启,请先让 dsh web 随系统启动,代理才会跟随启动。
手动启动仅用于调试或独立使用:
### 方式 A:浏览器本地识别(零配置)
接口模式选「浏览器本地识别」,语言填 `zh-CN`。仅 Chrome / Edge。
### 方式 D:实时流式接口(推荐日常使用)
**本地鉴权代理会跟随 dsh web 自动启动**:只要插件已安装,重启电脑后启动 dsh web 时,插件的 node 半身会自动拉起代理并做健康检查;代理已存在则直接复用,dsh 停服时由插件启动的代理会一并停止。日志写入 `~/.dsh/logs/dsh-voice-input-proxy.log`。
> 插件自动启动的代理使用当前环境变量;`DASHSCOPE_API_KEY` 需要在 dsh web 的启动环境中配置。如果 dsh web 本身没有配置开机自启,请先让 dsh web 随系统启动,代理才会跟随启动。
手动启动仅用于调试或独立使用:
```bash
## 4. 使用方式
### 语音输入
- **按住右 Alt 说话,松手结束**:录音中按钮显示声纹动画,实时识别文字在按钮上方滚动;
- 或点击 🎤 开始,再点停止;
- 识别结果自动插入输入框并聚焦。
### AI 优化按钮
1. **只要输入框有文字,✨ 按钮就显示**;文本清空(发送)后隐藏,手动修改文字不会隐藏;
2. **左键 ✨**:执行「左键模式」(默认一轮纠错);
3. **右键 ✨**:执行「右键模式」(默认一轮纠错 + 二轮格式化);
4. **自动优化开关**:打开后,每次语音转写完成都会**自动**按「自动优化模式」优化,直接进入下一步处理,不需要任何快捷键,也不会在前台显示额外按钮;优化结果会**原位替换刚转写的原文**,不保留原始转写(已有输入框内容不受影响),优化什么内容由「自动优化模式」决定(一轮纠错 / 二轮格式化 / 一轮+二轮);
5. **↶ 回退按钮**:优化前自动保存原文快照,一键恢复未优化文本;
6. 优化结果**逐字写回并替换原文本**:自动优化只替换刚转写的原文,手动优化替换整个输入框;AI 优化期间(等待模型返回与写回过程)文本框内会有**反复扫过文字的流光扫描动画**——优先只在“实际有文字的区域”逐行扫过,测量失败或文本过长时自动回退为整行扫过;
7. 除语音输入的右 Alt 按住说话外,不再注册任何优化快捷键。
配置位置:设置 → 语音输入 → 文本整理(各分类可折叠):
| 字段 | 说明 |
|---|---|
| 模型接口地址 | 例如 `https://api.deepseek.com/v1` 或 `https://dashscope.aliyuncs.com/compatible-mode/v1` |
| 模型 | 例如 `deepseek-chat`、`qwen-plus` |
| API Key | 留空则复用语音识别的 API Key |
| 左键模式 / 右键模式 / 自动优化模式 | 可选:一轮纠错、二轮格式化、一轮 + 二轮 |
| 自动优化开关 | 默认关闭;打开后转写完成自动执行「自动优化模式」,无需快捷键 |
| 一轮提示词(纠错) | 只纠正错别字/口语化,支持 `{{context}}` / `{{text}}` |
| 二轮提示词(固定格式) | 生成固定格式,不注入上下文;支持 `{{text}}` |
| 模型思考档位 | 关闭 / 低 / 中 / 高,默认**低**:低档思考可显著提高输出准确性,关闭最快;兼容 DeepSeek `thinking` 与 DashScope `enable_thinking` |
| 注入当前对话上下文 | 默认开启:最近 2 条用户/助手消息完整注入;超长时只保留结尾 800 字,避免丢失最新结论 |
> 已移除独立的「启用第二轮优化」开关:选择「一轮」就等于只纠错,选择「一轮 + 二轮」就等于先纠错再格式化,模式下拉框已经完整覆盖这两种行为。
默认输出格式:
```text
【目标】
【关键要求】
-
【补充信息】
5. 导入 / 导出配置
设置 → 语音输入 → 导入 / 导出 API 配置:
- 粘贴 JSON 导入,或选择
config.example.json文件导入; - 一键复制 / 下载当前配置。
配置字段(节选):
{
"mode": "openai",
"preset": "openai",
"endpoint": "https://api.openai.com/v1/audio/transcriptions",
"apiKey": "",
"model": "whisper-1",
"language": "zh",
"prompt": "",
"headers": {},
"shortcutEnabled": true,
"customUrl": "",
"jsonTemplate": "…{{audio}}…",
"responsePath": "text",
"realtimeUrl": "ws://127.0.0.1:8787/ws",
"realtimeModel": "fun-asr-flash-8k-realtime",
"realtimeApi": "fun-asr",
"micDeviceId": "",
"micChannel": "auto",
"formatterEndpoint": "https://api.deepseek.com/v1",
"formatterApiKey": "",
"formatterModel": "deepseek-chat",
"formatterThinking": "low",
"formatterWithContext": true,
"autoOptimizeEnabled": false,
"clickLeftMode": "round1",
"clickRightMode": "round1+round2",
"autoMode": "round1+round2",
"formatterFixTemplate": "…{{context}}…{{text}}…",
"formatterFinalTemplate": "…{{text}}…"
}
使用者:
dsh plugin --profile web add github:LBXC-666/dsh-voice-input#v1.0.0