hiroi-sora / Umi-OCR

OCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片,PDF文档识别,排除水印/页眉页脚,扫描/生成二维码。内置多国语言库。
MIT License
27.12k stars 2.72k forks source link

微软日文输入法下快捷键映射<24_>问题 #636

Open Teto314 opened 2 months ago

Teto314 commented 2 months ago

Issues

Umi-OCR version 程序版本

2.1.3

Windows version 系统版本

win11 23H3

OCR plugins Used 使用的OCR插件

PaddleOCR

Reproduction steps 复现步骤

win10也测试过,与win11问题一样 使用微软输入法切换到日语后 英文,平假名和片假名的快捷键均录入异常,快捷键记录框里会新增标记 这也导致一旦刚才切换过微软日语输入法,无论最开始录入的快捷键是什么,大概率在任何输入法下都无法唤醒快捷键

其中shift+caps英文会带有<240>,ctrl+caps开启平假名后<242>,alt+caps开启片假名后<241> 见下方截图所示,不确定是否有其它微软输入法语言有这类问题

我不确定这是不是快捷键引擎特性,还是说不能修复 如果可以的话,让快捷键识别忽略诸如<241>这样的角标是可能的吗

Problem screenshots or related files (optional) 问题截图或相关文件(可选)

{5C834B44-4CCE-42A1-AD70-EDF92124F2FF} {739B06FB-D618-4EEB-9B52-1BED65761525}

hiroi-sora commented 2 months ago

这是微软日文输入法的固有特性,会在输入中的词组后面添加一个不可见的分隔符,Umi记录这个间隔符导致误判。

有两种方式可以解决此问题:

方式一: 使用 快捷键增强工具 代替 Umi-OCR 本体的快捷键机制。

方式二:

  1. 用记事本或打开 Umi-OCR\UmiOCR-data\py_src\event_bus\key_mouse\keyboard.py
  2. 第117行,有一行代码:
    self._strict = True  # 键集合相等的判定,T为严格,F为宽松

    将它改为 self._strict = False

  3. 重启 Umi-OCR ,在 非日文输入法 状态下重新录制快捷键,确保记录的快捷键不含 <241> 等间隔符。
  4. 切换到日文输入法,即可正常使用。由于此时是 宽松判定模式 ,所以就算含间隔符的按键序列,也可以正常触发快捷键事件。
Teto314 commented 2 months ago

这是微软日文输入法的固有特性,会在输入中的词组后面添加一个不可见的分隔符,Umi记录这个间隔符导致误判。

有两种方式可以解决此问题:

方式一: 使用 快捷键增强工具 代替 Umi-OCR 本体的快捷键机制。

方式二:

  1. 用记事本或打开 Umi-OCR\UmiOCR-data\py_src\event_bus\key_mouse\keyboard.py
  2. 第117行,有一行代码:
    self._strict = True  # 键集合相等的判定,T为严格,F为宽松

将它改为 self._strict = False 3. 重启 Umi-OCR ,在 非日文输入法 状态下重新录制快捷键,确保记录的快捷键不含 <241> 等间隔符。 4. 切换到日文输入法,即可正常使用。由于此时是 宽松判定模式 ,所以就算含间隔符的按键序列,也可以正常触发快捷键事件。

感谢