手写输入
Xime 支持通过手写方案和手写识别模型在键盘上直接手写输入文字,适用于不熟悉键盘布局或需要输入生僻字的场景。
手写功能被虚拟化为一个 Rime 输入方案(
handwriting.schema.yaml),需在「输入方案」中启用并下载相应模型后方可使用。
功能特性
- 手写识别 - 在手写区域直接书写,系统实时识别为文字
- 笔画粗细动态变化 - 根据书写速度动态调整笔画粗细,书写更自然
- 手写查找 - 手写输入后可通过反向查询查看对应编码(如五笔字根)
- 候选词注释 - 手写候选词支持显示注释信息
- 候选栏高亮 - 手写模式下候选栏自动高亮首个推荐项
- 笔迹渲染 - 独立笔迹渲染引擎,支持流畅书写体验
- 主题色适配 - 手写键盘自动适配当前主题颜色,与键盘整体风格统一(v2.5.0+)
前置准备
手写功能需要完成以下两步才能正常使用:
1. 启用手写方案
- 进入「设置 → 方案与词库 → 输入方案」
- 在「未启用」列表中找到「手写输入」方案
- 开启右侧开关启用
- 点击底部「部署方案」使更改生效
2. 下载手写模型
- 进入「设置 → AI 模型管理」
- 在手写模型区域点击「下载」按钮
- 等待下载完成
- 确保模型已选择为「使用」状态
手写方案依赖五笔86方案(wubi86),请确保五笔86方案已启用。
进入手写模式
手写方案启用并部署后,在键盘上:
- 点击键盘 Logo 按钮打开功能菜单
- 在方案列表中将显示「手写输入」方案
- 点击即可切换到手写输入模式
切换到手写模式后,键盘区域变为手写板。
使用手写输入
- 切换到手写模式后,键盘区域变为手写板
- 用手指在手写板上书写文字
- 系统实时识别并在候选栏显示匹配结果
- 点击候选词即可上屏
- 候选栏默认高亮第一个推荐项,点击可直接选择
书写技巧
- 正常书写 - 使用手指在书写区域正常书写即可
- 笔画粗细 - 书写速度快时笔画变细,速度慢时笔画变粗,模拟真实书写体验
- 连续输入 - 写完一个字后自动识别,可继续书写下一个字
- 候选选择 - 候选栏会实时更新匹配结果
手写查找
手写查找功能允许您在手写输入后,查看当前手写字符对应的输入编码(如五笔字根等):
使用方法
- 在手写输入模式下书写文字
- 候选栏显示识别结果
- 点击「手写查找」按钮(工具栏中的放大镜图标)
- 进入手写查找模式,显示当前笔画的五笔编码等详细信息
- 点击可上屏对应的字符
应用场景
- 学习五笔 - 不认识的汉字,手写后查看对应的五笔编码
- 生僻字输入 - 手写生僻字后查看编码,便于后续直接键盘输入
- 编码查询 - 快速查询任意汉字的输入法编码
技术细节
手写方案配置
手写功能被实现为一个标准的 Rime 输入方案(handwriting.schema.yaml),其 schema_id 为 handwriting,依赖五笔86方案(wubi86)进行编码查询。
yaml
schema:
schema_id: handwriting
name: 手写输入
dependencies:
- wubi86识别引擎
手写识别使用独立的 ONNX 模型引擎,与主输入法引擎解耦:
| 组件 | 说明 |
|---|---|
HandwritingEngine.kt | 手写识别引擎,管理模型加载和推理 |
HandwritingNativeEngine.kt | 手写 JNI 本地引擎,调用底层识别库 |
StrokeRenderer.kt | 笔迹渲染器,处理笔画绘制 |
WubiLookup.kt | 五笔反向查询,关联手写与五笔编码 |
StrokePoint.kt | 笔画点数据类,包含坐标和时间戳 |
模型管理
手写模型通过「AI 模型管理」统一管理:
- 模型下载 - 在「设置 → AI 模型管理」中下载手写模型
- 模型切换 - 支持下载和切换不同的手写模型
- 自动检测 - 切换到手写方案时检查模型文件是否存在,缺失时提示用户下载
注意事项
- 手写功能不是内置开启的,需要先启用「手写输入」方案并下载手写模型
- 手写方案依赖五笔86方案,请确保五笔86已启用
- 手写模型可在「设置 → AI 模型管理」中下载管理
- 手写识别准确率受书写清晰度影响
- 建议在稳定的持机姿势下书写以获得最佳识别效果