Skip to content

手写输入

Xime 支持通过手写方案和手写识别模型在键盘上直接手写输入文字,适用于不熟悉键盘布局或需要输入生僻字的场景。

手写功能被虚拟化为一个 Rime 输入方案(handwriting.schema.yaml),需在「输入方案」中启用并下载相应模型后方可使用。

功能特性

  • 手写识别 - 在手写区域直接书写,系统实时识别为文字
  • 笔画粗细动态变化 - 根据书写速度动态调整笔画粗细,书写更自然
  • 手写查找 - 手写输入后可通过反向查询查看对应编码(如五笔字根)
  • 候选词注释 - 手写候选词支持显示注释信息
  • 候选栏高亮 - 手写模式下候选栏自动高亮首个推荐项
  • 笔迹渲染 - 独立笔迹渲染引擎,支持流畅书写体验
  • 主题色适配 - 手写键盘自动适配当前主题颜色,与键盘整体风格统一(v2.5.0+)

前置准备

手写功能需要完成以下两步才能正常使用:

1. 启用手写方案

  1. 进入「设置 → 方案与词库 → 输入方案」
  2. 在「未启用」列表中找到「手写输入」方案
  3. 开启右侧开关启用
  4. 点击底部「部署方案」使更改生效

2. 下载手写模型

  1. 进入「设置 → AI 模型管理」
  2. 在手写模型区域点击「下载」按钮
  3. 等待下载完成
  4. 确保模型已选择为「使用」状态

手写方案依赖五笔86方案(wubi86),请确保五笔86方案已启用。

进入手写模式

手写方案启用并部署后,在键盘上:

  1. 点击键盘 Logo 按钮打开功能菜单
  2. 在方案列表中将显示「手写输入」方案
  3. 点击即可切换到手写输入模式

切换到手写模式后,键盘区域变为手写板。

使用手写输入

  1. 切换到手写模式后,键盘区域变为手写板
  2. 用手指在手写板上书写文字
  3. 系统实时识别并在候选栏显示匹配结果
  4. 点击候选词即可上屏
  5. 候选栏默认高亮第一个推荐项,点击可直接选择

书写技巧

  • 正常书写 - 使用手指在书写区域正常书写即可
  • 笔画粗细 - 书写速度快时笔画变细,速度慢时笔画变粗,模拟真实书写体验
  • 连续输入 - 写完一个字后自动识别,可继续书写下一个字
  • 候选选择 - 候选栏会实时更新匹配结果

手写查找

手写查找功能允许您在手写输入后,查看当前手写字符对应的输入编码(如五笔字根等):

使用方法

  1. 在手写输入模式下书写文字
  2. 候选栏显示识别结果
  3. 点击「手写查找」按钮(工具栏中的放大镜图标)
  4. 进入手写查找模式,显示当前笔画的五笔编码等详细信息
  5. 点击可上屏对应的字符

应用场景

  • 学习五笔 - 不认识的汉字,手写后查看对应的五笔编码
  • 生僻字输入 - 手写生僻字后查看编码,便于后续直接键盘输入
  • 编码查询 - 快速查询任意汉字的输入法编码

技术细节

手写方案配置

手写功能被实现为一个标准的 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 模型管理」中下载管理
  • 手写识别准确率受书写清晰度影响
  • 建议在稳定的持机姿势下书写以获得最佳识别效果

基于 GPLv3 许可发布