Shuo:按住一个键说话,松手就是地道英文 不管你说中文、英文还是中英夹杂,一段能直接发出去的地道英文打进你正在用的任何软件——微信、邮件、Slack、Word、浏览器都行。永远只输出英文,一个中文字都不会出现。
一行安装(在「终端」里粘贴回车;需要 macOS 13 以上)
curl -fsSL https://shuo.sinogenomics.com/install.sh | bash
它是怎么用的
浮窗长这样(不抢焦点、鼠标点不到、不会打断你正在用的软件):
- 说错了想取消:按住的时候随便按一个别的键(比如 Esc),录音作废。
- 点一下不算:按住不到 0.35 秒或几乎没有声音,什么都不会发生,不会误触。
- 最长 120 秒:到时自动结束并处理。
- 换按键:菜单栏图标 → Push-to-talk key,可选右 ⌥ Option / 右 ⌘ Command / fn 🌐。默认右 Option,因为它平时几乎不用、按着不影响打字。
- 剪贴板:英文是通过「粘贴」打进去的;默认会在 1 秒后把你之前剪贴板里的文字放回去(菜单里可关)。
- 再复制一次:菜单 → Copy last result again。
只输出英文,是闸门不是承诺
这是整个产品最重要的一条规矩,也是它区别于「秘塔回响」这类通用语音输入法的地方:回响是把你说的话润色成同一种语言的通顺文字;Shuo 是让客户借助输入法提升英语——所以无论输入是什么语言,出来的只能是英文。
它不是写在提示词里的一句请求,而是服务端 lib/gate.mjs 的硬闸门:正文里出现任何中文字符就重跑,两次都脏就整条作废、宁可不给;流式输出也过闸门,脏的那一段根本不往客户端推。Mac 客户端只把闸门放行的英文打进你的软件,浮窗、菜单、报错全部是英文,学习提示也只在英文干净时才显示。
账号与额度(和网站完全一样)
| 状态 | 额度 | 怎么来 |
|---|---|---|
| 不登录 | 总共 3 次试用 | 装好就能用,什么都不用填 |
| 登录账号 | 每天 5 次免费(北京时间零点重置) | 菜单栏图标 → Sign in…,用 en.sinogenomics.com 的账号;没有就点 Create an account 去网站注册 |
| 会员 | 不限次 | 网站上购买(月度 ¥19.9 / 年度 ¥99),登录后自动生效 |
它是怎么工作的
- 服务端一行代码没改。Shuo 就是 en.sinogenomics.com 的另一个客户端:同一个接口、同一个账号、同一个闸门、同一套限流。网站已经上线并验收过的 442 项自动测试对它同样有效。
- 身份用
X-IME-UID头(服务端本来就支持,网页版用的是同名 cookie)。不登录时服务端发一个匿名试用身份,客户端存在~/Library/Application Support/Shuo/settings.json(权限 600)。 - 客户端零依赖:一个 Swift 文件(约 1000 行)+ Info.plist + 构建脚本,只用系统自带的 AppKit / AVFoundation。没有第三方库、没有 Xcode 工程、没有 Electron。
- 为什么要在你的 Mac 上编译:我们没有 Apple 开发者签名。未签名的现成 .app 下载后会被 Gatekeeper 拦住、且不能持有麦克风/辅助功能权限;在本机编译并做 ad-hoc 签名是最省事、也最透明的办法——源码就在下面,你装的就是你看到的。
权限(macOS 会各问一次)
| 权限 | 用来做什么 | 在哪里开 |
|---|---|---|
| 麦克风 | 按住键的时候录音 | 首次按键时弹窗 → 允许;或 系统设置 › 隐私与安全性 › 麦克风 |
| 辅助功能 | ① 听到你按下/松开右 Option;② 替你按 ⌘V 把英文打进去 | 系统设置 › 隐私与安全性 › 辅助功能 → 打开 Shuo。菜单里的 Check permissions… 会直接跳到这一页 |
没给辅助功能权限时,Shuo 仍会把英文放进剪贴板并提示你自己按 ⌘V。从 0.1.2 起安装脚本会在你的 Mac 上建一个本机签名证书,更新后权限不再失效。若之前装过旧版,到「辅助功能」里选中旧的 Shuo、点「−」删掉,再打开 Shuo 重新添加一次即可。
菜单里有什么
- 第一二行:产品名 / 账号与剩余额度
- Push-to-talk key:右 ⌥ Option(默认)/ 右 ⌘ Command / fn 🌐
- Copy last result again:把上一次的英文再放进剪贴板
- Restore clipboard after typing:打完字把原剪贴板文字放回去(默认开)
- Show a learning tip after each result:每次结果之后闪一条学习提示(默认开)
- Launch at login:开机自启
- Sign in… / Sign out · Check permissions… · Open en.sinogenomics.com · Help & updates · Quit
下载与源码
| 文件 | 说明 |
|---|---|
| install.sh | 一行安装用的脚本(就是上面那条命令拉的) |
| shuo-src.tar.gz | 源码包:Sources/main.swift、Info.plist、build.sh。自己编译:解开后 bash build.sh,产物在 dist/Shuo.app |
| main.swift | 直接在浏览器里读源码 |
常见问题
一行命令跑完提示要装 Command Line Tools,装完再跑还是提示?
在终端跑 xcode-select -p,应该打印 /Library/Developer/CommandLineTools。如果打印的是别的路径或报错,跑 sudo xcode-select --reset 再试。
公司管理的 Mac 装不了 Command Line Tools?
请在另一台能装的 Mac 上跑 bash build.sh,把 dist/Shuo.app 拷过来放进「应用程序」即可(同一芯片架构)。首次打开若被拦,右键 → 打开。
按住右 Option 没反应?
依次检查:菜单栏有没有 Shuo 图标;系统设置 › 隐私与安全性 › 辅助功能 里 Shuo 是否打开(刚重装的要关掉再开);是否有别的软件(如 Karabiner、某些输入法)改了右 Option 的行为——换成右 Command 试试。
英文打进去了,但我的剪贴板内容不见了?
默认 1 秒后会把之前的文字放回去;图片等非文字内容不会恢复。菜单里可以关掉恢复。
为什么有时候提示「Please say it differently」?
模型两次都没能写出一段不含中文的干净英文,被闸门拦下了,这一次不扣次数。换个说法通常就好。
和 en.sinogenomics.com 网页版有什么不一样?
网页版能看历史、备选说法、三条讲解、单词卡、术语库;Shuo 只做一件事:把英文打进你正在用的软件,附一条学习提示。两边一个账号,额度共用。
开发交付说明(2026-09-27)
这次做了什么。一个 macOS 菜单栏 App(Swift,单文件)、一个在用户 Mac 上现场编译的安装脚本、这个说明站,以及 PMS 快捷链接。服务端没有改动。
还没做成的。真机验证 开发在 Linux 服务器上完成,手边没有 Mac:Swift 源码没有实际编译、没有在真机上按过一次。写法都是最基础的 AppKit / AVFoundation 用法,但编译报错或权限流程不顺是完全可能的。请先在自己的 Mac 上跑一行安装;一旦报错,把终端里的输出贴回来,通常一轮就能修好。这是本次交付最大的风险,写在最前面。
已知取舍。① 没有 Apple 开发者签名,所以走本机编译 + ad-hoc 签名,代价是每次重装要重新勾一次辅助功能;② 只支持「按住说话」,没有「点一下开始、再点一下结束」的模式;③ 剪贴板只恢复文字;④ 服务端额度是共用订阅,网站的限流全部适用。
下一步建议。真机跑通并修完第一轮问题 → 签名公证后提供直接下载的 .app(要 Apple 开发者账号,¥688/年)→ 长按/切换两种模式 → Windows 版(同样只做客户端,服务端不动)→ iOS/安卓键盘扩展。
| 项 | 位置 |
|---|---|
| 网址 | https://shuo.sinogenomics.com(本页) |
| 服务器目录 | meiguo /Disk01/p1136-mac-ime/:client/ 源码、public/ 本站、server.mjs 静态服务 |
| 服务 | 用户级 unit shuo-site.service,127.0.0.1:8660,前面是 daojia-tls-proxy |
| 发新版 | 改 client/Sources/main.swift 里的 APP_VERSION,跑 bash /Disk01/p1136-mac-ime/pack.sh 重新打源码包;用户再跑一遍一行安装即可 |
| 后端 | en.sinogenomics.com(/Disk01/p1136-ime,未改动):/api/user/status、/api/user/login、/api/transcribe、/api/rewrite |