这个插件可以做什么

LION是一款插件,能够按照特定的时间间隔,对屏幕上特定的区域进行自动光学字符识别(OCR)操作。

为什么说它智能呢?这既不是因为它是我编写的,也不是因为“i”让这个首字母缩写显得很巧妙。

由于它会对同一屏幕区域进行多次OCR操作,正常情况下,它会多次读取到相同的文本,这显然不太理想。因此,我实现了一种机制,当识别出的文本与之前识别的文本相似时,就不再进行朗读。并且增加了使用正则过滤识别结果的功能。

我能用它做什么

编写这款插件的主要目的是为了读取字幕。基于其工作原理,它可以读取屏幕上的各类字幕,包括YouTube、Netflix、哔哩哔哩等在线视频网站上的字幕,AVI文件中嵌入的字幕,甚至是直播电视的字幕!

在使用时,务必将视频设置为全屏模式,因为它的工作方式类似于正常人的视觉。较大的文本有助于它获得更好的识别效果。不过,识别质量并非完美无缺。如果可以设置,尽量将字幕字体调大,并使用高分辨率屏幕。它所采用的OCR引擎并非十全十美,在某些图像上的识别效果可能不太理想。

除了读取字幕,它还能用于监测屏幕上那些无法直接访问的文本,比如视频游戏的菜单。但遗憾的是,它无法识别高亮显示的文本。

我该如何使用它

若要使用默认选项启动该插件,只需按下NVDA + ALT + N组合键。LION便会每隔1秒对整个屏幕进行一次OCR操作,且只有在文本发生变化时才会进行朗读。希望能如你所愿。

如果你想对其功能进行自定义设置,可以前往NVDA菜单,进入“选项”,再选择“设置”,找到“lion类别”。例如,视频文件的左上角可能会有一个标识,在读取字幕后,这个标识也会被一并读出,从而影响使用体验。下一部分我们将介绍如何解决这个问题。

LION具备以下设置项: 1. 识别间隔:即程序执行OCR操作的频率,取值范围为0.1秒至10秒。 2. 识别目标:用于指定进行OCR操作的屏幕区域。可供选择的选项包括:当前控件、当前窗口、导航对象以及全屏。 3. 从上方、下方、右侧、左侧裁剪像素:在全屏模式下,这四个设置项可用于裁剪屏幕中不需要扫描的区域。此设置仅在全屏模式和当前窗口模式下生效。这个设置有什么用呢?以之前提到的标识为例,只需从上方裁剪大约10%左右的区域,就能跳过该标识,避免它被读出。实际上,为了加快识别速度并减少资源占用,你可以从上方裁剪大约70%的区域,因为字幕通常位于屏幕下方三分之一的位置。

更新日志

版本3.1.0

版本3.0

  1. 兼容nvda2025.1
  2. 解决了一些影响使用的问题
  3. 将设置移入nvda设置对话框中

版本2.0

  1. 完全重构OCR识别部分,采用PaddleOCR-json,进一步提升了识别效果。
  2. 导入插件模板,并进行相关修改,以方便编译插件。

版本1.15

  1. 适配了NVDA 2022.1 。
  2. 完成了界面翻译工作。
  3. 支持在“按键雨手势”对话框中自定义快捷键。
  4. 在开启黑屏时启动识别操作会给出提醒,识别过程中开启黑屏同样也会给出提醒。
  5. 将默认快捷键改为NVDA + ALT + N 。

版本1.12

  1. 实现与NVDA 2021.1的兼容。
  2. 修复了一些已知错误。
  3. 更改了插件激活和停用的提示音。

版本1.11

修复了一个主要在YouTube全屏模式下出现的错误。

版本1.1

  1. 裁剪设置现在也会对当前窗口模式产生影响。
  2. 新增了相似度阈值设置,这在游戏场景中尤为有用。LION会持续将当前文本与之前朗读过的文本进行对比。如果判断文本没有发生变化,就不会进行朗读。该设置用于控制LION在文本对比时的严格程度。设置为0时,所有文本都会被视为相同,插件几乎无法正常使用;设置为1时,所有文本都会被朗读,即便它们完全相同。默认值为0.5。

版本1.0

初始版本