IME Bridge 模块
IME Bridge 是说点啥的独立 LSPosed / LSPatch 扩展模块。它让悬浮球通过当前第三方输入法直接预览和回填识别文字,也可在兼容输入法底部直接长按录音。
进阶功能
该模块会在选定的第三方输入法进程中运行,需要 LSPosed 或 LSPatch 环境。请只从可信来源下载安装,并将作用域限制为实际需要桥接的输入法。
能做什么
| 能力 | 开源版 | Pro 版 | 说明 |
|---|---|---|---|
| 悬浮球文字回填 | ✅ | ✅ | 由当前第三方输入法直接向输入框提交最终识别文字 |
| 流式预览 | ✅ | ✅ | 支持时以组合文本显示中间结果,结束或取消时正确收尾 |
| 键盘显隐检测 | ✅ | ✅ | 由输入法自身报告面板状态,可减少对无障碍检测的依赖 |
| 输入法内录音 | ✅ | ✅ | 长按第三方输入法底部的桥接区域录音,松手后交给说点啥识别 |
| 剪贴板特权读写 | ✅ | ✅* | 在目标输入法进程内读写系统剪贴板,供 SyncClipboard 在非主键盘场景下同步;凭证与 HTTP 仍在说点啥本体 |
| 输入框上下文辅助 | ❌ | ✅ | 在启用相关 AI 后处理选项时读取光标附近文本作为参考 |
* 开源版与 Pro 版均需使用 0.2.4 或更高版本模块,并由模块声明 supports_clipboard。
模块本身不执行 ASR 或 AI 后处理。录音、供应商选择、备用引擎、识别历史、SyncClipboard 网络请求和最终后处理仍由说点啥负责。
剪贴板同步限制
桥接剪贴板能力依赖目标输入法进程存活。键盘被系统回收后,监听与写入会暂停,直到再次打开该输入法。这不是 always-on 守护进程。
使用前准备
- Android 8.0(API 26)或更高版本
- 最新版说点啥开源版或 Pro 版
- 已配置可用的 ASR 供应商
- 以下环境二选一:
- 已安装并启用 LSPosed 的 root 设备
- 可使用 LSPatch 修补第三方输入法 APK 的设备
- 目标输入法应基于标准 Android
InputMethodService;部分高度定制或有完整性校验的输入法可能不兼容
先选择目标输入法
“目标输入法”是你平时实际使用、希望接收说点啥结果的第三方键盘。LSPosed 作用域应勾选它,而不是说点啥。
下载模块
- 打开模块的 Releases 页面
- 下载最新版本的 APK
- 安装 APK;它会以 BiBi IME Bridge 出现在应用和模块列表中
建议同时更新说点啥与 IME Bridge。旧模块可能仍可完成文字回填,但不会上报输入法内录音、会话或输入上下文等新能力。
使用 LSPosed 安装
- 安装 IME Bridge APK
- 打开 LSPosed 管理器并启用 BiBi IME Bridge
- 进入模块作用域,只勾选需要桥接的第三方输入法
- 不要把说点啥开源版或 Pro 版本体加入作用域
- 强制停止并重新打开目标输入法;如仍未生效,请重启设备
- 将目标输入法切换为当前键盘,再到说点啥刷新桥接状态
最小作用域
不要勾选“系统框架”或无关应用。扩大作用域不会增加功能,只会让模块进入更多不必要的进程。
使用 LSPatch 安装
- 在 LSPatch 中选择需要桥接的第三方输入法 APK
- 将 IME Bridge 作为嵌入模块进行修补
- 安装修补后的输入法,并将其设为当前键盘
- 更新第三方输入法后,需要使用新版 APK 重新修补
签名与账号风险
LSPatch 会改变 APK 签名;LSPosed 模块可能导致系统稳定性问题甚至系统崩溃,使用前请确保有救砖能力。操作前请备份输入法配置;若不愿承担这些风险,请使用 LSPatch 方案。
在说点啥中启用
- 打开
设置 → 界面与交互 → 悬浮球设置 - 开启「输入法桥接文字回填」和「在桥接输入法内录音」(可选,见下文)
- 点进普通文本框并保持目标输入法打开
- 点击「输入法桥接状态」刷新检测结果
- 确认状态中显示正确的目标输入法,并且存在活动输入连接
启用后,悬浮球识别结果会优先通过目标输入法自身写入。若桥接暂时未就绪,说点啥仍可尝试无障碍写入或剪贴板兜底。
正常使用流程
- 在任意应用中点进普通文本输入框
- 确认已打开配置过作用域的第三方输入法
- 使用悬浮球开始录音
- 流式识别支持中间结果时,输入框中会显示可撤销的组合文本预览
- 识别完成后,最终文字由当前输入法提交;取消会话时预览也会被清理
密码、支付等敏感输入框会被模块主动阻止,属于正常的安全行为。
在第三方输入法内录音
此功能需要较新的 IME Bridge,并且状态中的 PCM 显示为“支持”。
- 在
设置 → 界面与交互 → 悬浮球设置开启「在桥接输入法内录音」 - 在系统应用权限中,允许目标第三方输入法使用麦克风
- 打开普通文本输入框,在键盘底部中央的桥接区域长按约 0.2 秒
- 出现录音波形后开始说话
- 松手停止;音频会交给说点啥,并按当前 ASR、备用引擎和 AI 后处理设置完成识别
目标输入法录音时也会遵循说点啥的「录音时压低其他音频」设置。
触摸区域限制
底部桥接区域需要从按下开始接管触摸事件,因此该区域内的短按也可能被消耗。若它遮挡输入法原有按钮,可在 BiBi IME Bridge 应用中调整区域宽度和高度,或关闭「在桥接输入法内录音」而只保留文字回填。
录音失败时不会自动改用悬浮球或说点啥自身麦克风,需要排查后重新触发。
调整录音区域
安装模块后,打开应用列表中的 BiBi IME Bridge:
- 可预览待机与录音波形
- 录音区域宽度可在 120–280 dp 之间调整,默认 190 dp
- 高度可在 24–72 dp 之间调整,默认 32 dp;增加高度也会让区域略微上移
- 可一键恢复默认值
修改后重新打开目标输入法查看效果。部分 LSPosed / LSPatch 环境无法让目标进程读取自定义值,此时模块会安全回退到默认尺寸。
Pro:输入框上下文辅助 Pro
Pro 版开启 AI 后处理的「输入框上下文」后,悬浮球可通过 IME Bridge 获取光标附近文本,让 LLM 更好地理解前后文、术语和语气。
- 仅在用户开启输入框上下文与 AI 后处理时请求
- 只作为后处理参考,不会替代本次识别正文
- 密码等敏感输入框会拒绝请求
- API 日志只记录结果状态和字符数量,不记录上下文内容
详细说明见 Pro 功能介绍。
状态与故障排除
| 状态或现象 | 处理方法 |
|---|---|
| 未收到桥接响应 | 确认模块已启用、作用域包含当前第三方输入法,并重启输入法或设备 |
| 没有当前输入法 | 先切换到已桥接的目标输入法并打开键盘 |
| 没有活动输入连接 | 点进普通文本框并保持键盘显示,再刷新状态 |
| 等待输入框 | 模块已检测到,但当前没有可写入的编辑器;重新点击文本框 |
| 敏感输入框已阻止 | 属于安全限制,请改用普通文本输入框测试 |
PCM 不支持 | 更新 IME Bridge;确认已开启输入法内录音并重新启动目标输入法 |
| 目标键盘无法录音 | 为目标输入法授予麦克风权限,并确认没有其他应用独占麦克风 |
| 不支持通用底部触发区域 | 该输入法窗口结构不兼容;仍可只用文字回填,或更换目标输入法 |
| 文字仍走无障碍方式 | 检查桥接状态、当前输入法和活动输入连接是否均正确 |
| 更新输入法后失效 | LSPosed 重新启动目标进程;LSPatch 使用新版输入法 APK 重新修补 |
如仍无法定位,可进入 设置首页 → 识别历史,点击右上角的 API Log,并结合 LSPosed 日志检查模块是否进入了正确的输入法进程。分享日志前请先确认其中没有个人信息。
权限与隐私
- Xposed 类模块拥有较高能力,请保持最小作用域并使用正式仓库发布的 APK
- 普通文字回填不会读取输入框已有内容
- Pro 输入上下文仅在明确开启后读取有限的光标附近文本,并对敏感输入框失效关闭
- 输入法内录音由目标输入法进程采集后发送给说点啥;若当前使用在线 ASR,音频随后会按该供应商的规则上传
- 模块不自行保存或识别音频,也不执行 AI 后处理
与 AIDL 联动的区别
| 项目 | IME Bridge | AIDL 联动 |
|---|---|---|
| 适用输入法 | 可通过 LSPosed / LSPatch Hook 的第三方输入法 | 已主动集成说点啥 AIDL 协议的输入法 |
| 是否需要 Hook | 需要 | 不需要 |
| 主要入口 | 悬浮球或输入法底部录音区域 | 输入法自身提供的语音入口 |
| 文字写入 | 通过当前输入法的输入连接 | 由调用方接收识别回调并处理 |
如果使用的是已集成语音联动的 fxliang Fcitx5,请优先参考 AIDL 通信(小企鹅联动)。