Skip to content

DSSH v1.2 — Shift+Tab + Qwen3 ASR Flash

Latest

Choose a tag to compare

@Fishason Fishason released this 31 May 03:11

两个小但都很有用的改动:终端 Shift+Tab 在软键盘上能打出来了,语音识别从 Whisper 换到 Qwen3-ASR-Flash 解决稳定性 + 中文标点更地道。


⇥ Shift+Tab on the soft keyboard

按住物理 L(Shift)同时点软键盘 tab → 输出 \x1b[Z(CSI Z,terminal 标准的"光标后退一个 tab")。普通点 tab 仍然是 \t 不变。

实用场景:

  • vim/zsh 补全候选反向走:补全菜单里前一项
  • tmux Ctrl-B q 后窗口编号反向切
  • lazyvim 的部分 plugin 用 Shift+Tab 退出嵌套菜单

修改面:source/softkb.c 的 KIND_SEQ dispatch 加 4 行——只对 \t 特判,其他 KIND_SEQ binding 不受影响。

🎙️ ASR 从 Whisper → Qwen3-ASR-Flash

OPENROUTER_AUDIO_MODEL 常量从 openai/whisper-large-v3-turbo 切到 qwen/qwen3-asr-flash-2026-02-10

为什么换:

  • 稳定性:OpenRouter 的 Whisper Turbo provider 偶尔对某些 IP 段限速 / 阻断,同一段音频走 Qwen 始终成功
  • 中文标点更地道
    • Whisper:你好世界,今天天气不错
    • Qwen3:你好,世界。今天天气不错。
  • 没有协议改动:OpenRouter 的 /v1/audio/transcriptions endpoint 对 Whisper 和 Qwen3 用完全相同的 JSON 请求 / 响应格式——服务器端 shim 改一个常量就完事,3DS 端代码 0 修改

代价:

  • 单价从 ~$0.067/音频小时 → ~$0.13/音频小时(约 2 倍)。个人用一个月仍是几美分级别,可忽略

升级方式:

OpenRouter API key 不变(同一把 key 同时能调 Whisper 和 Qwen)。重跑 install 脚本或者手动 `git pull` 即可:

cd ~/dssh-repo && git pull
bash tools/install_whisper_api.sh   # 已有 key 不会再问,只刷新 shim

📦 安装 / 升级

想要的 下载
Homebrew Launcher 启动 `3dssh.3dsx`
HOME 菜单图标启动(推荐) `DSSH.cia`
完整 1m42s 演示视频(v1.0 拼音 IME 录的,v1.2 兼容) `demo.mp4`

从 v1.1 升级

  • 3DS:装新 `.cia` 即可(覆盖安装)。Shift+Tab 立刻生效
  • 服务器:`cd ~/dssh-repo && git pull && bash tools/install_whisper_api.sh`——shim 会刷新成 Qwen3 版本。下次按 START 自动用新模型

新用户从零安装

按 README 的语音输入章节走 OpenRouter + DeepSeek 两把 key 的一键安装,全套服务器端 ~30 KB、~1 分钟搞定。