文字接力:在手机上说话,让文字直接落到 Windows 输入框

Administrator 1 阅读

电脑前打长段中文时,我经常觉得手机语音输入更顺手。问题是,手机里识别出来的文字还得再想办法送到电脑,复制粘贴、扫码或者发给自己都绕了一圈。

“文字接力”就是为这件小事做的。手机负责语音识别,项目只传输识别后的文字。Windows 客户端收到内容后,把它写入剪贴板,再向当前输入框提交一次 Ctrl+V。

文字接力手机页面
文字接力手机页面

它是怎么工作的

完整链路是:手机 PWA、HTTPS 反向代理、转发服务、Windows 托盘客户端、系统剪贴板和 Ctrl+V。

手机端不需要安装原生 App,可以直接添加到主屏幕。一个账户可以连接多台 Windows 电脑,页面会显示在线、离线和暂停状态。文字在发送前使用目标电脑的 Curve25519 公钥加密,转发服务不保存消息正文。

它会保留中文、表情、换行和制表符。默认只粘贴,不按回车;如果确实需要发送后立即提交,可以在手机页面临时勾选“发送后按一次回车”。

部署服务端

服务端适合放在一台 Linux 主机上,需要 Docker Compose v2,以及你自己维护的域名、HTTPS 和反向代理。

mkdir voice-relay && cd voice-relay
curl -LO https://raw.githubusercontent.com/fangxinbuzaijia/voice-relay/main/docker-compose.yml
docker compose up -d
docker compose exec relay cat /data/initial-credentials.txt

Compose 会拉取公开的预编译镜像,默认只监听宿主机的 127.0.0.1:3100。首次启动会生成服务端主密钥和一组随机登录凭据。登录后应立即修改用户名和密码,再按需要开启二步验证。

反向代理需要把同一域名下的 //api/v1/*/ws 和健康检查转发到 127.0.0.1:3100,同时保留 Host 和 WebSocket Upgrade。公网访问必须使用有效 HTTPS。

安装 Windows 客户端

打开 最新版本下载页,在 Assets 中选择一种:

  • VoiceRelay-Setup-版本-win-x64.exe 是推荐的安装程序。
  • VoiceRelay.exe 可以直接运行,不需要安装。
  • portable zip 适合放在固定目录中使用。

这些版本都带有运行环境,不需要另装 .NET。启动后,客户端会常驻系统托盘,关闭设置窗口不会退出。需要时可以在设置中开启随 Windows 启动。

第一次连接和使用

先在 Windows 客户端中填写服务地址并登录,给这台电脑起一个容易辨认的名称。客户端上线后,用手机浏览器打开同一个服务地址并登录,就能在设备列表里看到它。

选中目标电脑,用手机系统自带的语音输入说出内容,校对后发送。Windows 客户端会把文字粘贴到当前输入框。发送前最好确认一下电脑上的光标位置,特别是勾选了“发送后按回车”时。

使用时要注意什么

这个项目只传文字,不上传手机录音。服务端不保存消息,但会保存账号、设备和必要的连接状态。Windows 登录信息使用 DPAPI 绑定当前 Windows 用户,手机端会把会话保存在浏览器本地。

它依赖 Windows 剪贴板和模拟粘贴,所以目标程序如果以更高权限运行,普通权限的客户端可能无法输入。有些远程桌面或游戏窗口也会拒绝模拟按键。遇到这类情况,先在记事本里测试最容易判断问题出在哪一段。

源码和完整说明:fangxinbuzaijia/voice-relay