该附加组件可以获取图像、用户界面控件和其他视觉上无法访问的内容的详细描述。
利用先进人工智能模型和计算机视觉算法的多模式功能,我们的目标是提供一流的内容描述并提高整体独立性。有关底层模型的更多信息,请参阅本文档的相应部分。
描述焦点对象、导航器对象、整个屏幕或从板载相机拍摄照片
描述已复制到剪贴板的任何图像,无论是电子邮件中的图片还是 Windows 资源管理器中的路径
使用计算机视觉算法指示用户的脸部是否位于画面中心(不需要付费 API 访问)
支持多个提供商(OpenAI 的 GPT4、Google 的 Gemini、Anthropic 的 Claude 3 和 llama.cpp)
支持多种格式,包括 PNG (.png)、JPEG(.jpeg 和 .jpg)、WEBP (.webp) 和非动画 GIF (.gif)
可选择缓存响应以保留 API 配额
对于高级使用,自定义提示和令牌计数以根据您的需求定制信息
Markdown 渲染可轻松访问结构化信息(只需在提示末尾嵌入“在 Markdown 中响应”)
这个项目背后有几个主要动机。
NVDA 能够立即执行光学字符识别 (OCR),这改变了游戏规则。如果您想从图像或 PDF 文档中获取文本,这就是您所需要的。
但是,OCR 只能分析可能是文本的数据。它未能考虑到这些图像中传达的背景、物体和关系。互联网上充满了它们。徽标、肖像、迷因、图标、图表、图解、条形图/折线图……应有尽有。它们无处不在,而且通常不是屏幕阅读器用户可以解释的格式。直到最近,人们一直坚定不移地依赖内容作者提供替代文本描述。虽然这仍然是必须的,但很难改变这样一个事实:高标准的质量恰好是例外,而不是规则。
现在,可能性几乎是无限的。你可能会:
在培训其他人时可视化桌面或特定窗口以了解图标的位置
当声音不足或不可用时,获取有关游戏、虚拟机等状态的详细信息
找出图表中显示的内容
揭秘 Zoom 或 Microsoft Teams 中的屏幕截图或屏幕共享
在录制视频或参加在线会议之前,请确保您的脸部清晰地看着摄像头并且您的背景是专业的
GPT4愿景
谷歌双子座专业愿景
克劳德 3(俳句、索尼特和作品)
llama.cpp(根据您的硬件,极其不稳定且缓慢,经测试可与 llava-v1.5/1.6、BakLLaVA、Obsidian 和 MobileVLM 1.7B/3B 型号配合使用)
请按照下面提供的说明进行操作,以使它们正常工作。
从此链接下载该附加组件的最新版本。在安装了 NVDA 的计算机上单击该文件,然后按照以下说明从受支持的提供商处获取 API 密钥。如果您不确定使用哪一个,该插件的开发人员和测试人员的共识是 Gemini 目前提供更合理的定价,而 Open-AI 似乎提供更高的准确性。克劳德 3 俳句是最便宜、最快的选择,但质量参差不齐。当然,这些结果很大程度上取决于手头的任务,因此我们建议尝试不同的模型和提示,以找到最有效的方法。
前往 open-AI 的 API 密钥页面
如果您还没有帐户,请创建一个。如果您这样做,请登录。
在 API 密钥页面上,单击 创建新的密钥。将其复制到剪贴板。
为账户注入至少 1 美元
在 NVDA 设置对话框中,向下滚动到 AI 内容描述器类别,然后选择“管理模型 (alt+m)”,选择“GPT4 Vision”作为提供程序,选项卡进入 API 密钥字段,然后粘贴您刚刚生成的密钥这里。
在撰写本文时,Open-AI 向新的开发者帐户发放积分,这些积分可以使用三个月,之后就会丢失。在此期间之后,您将必须购买积分。典型使用量每月不应超过 5.00 美元。作为参考,该附加组件的原始版本的开发成本略低于一美元。您始终可以登录您的 OpenAI 帐户并点击“使用”来获取您的配额。
您首先需要通过转到 Google 云控制台来创建一个 Google Workspace 项目。确保您已登录您的谷歌帐户。
创建一个介于 4 到 30 个字符之间的名称,例如“Gemini”或“NVDA 附加组件”
导航至 Google AI studio API 密钥页面
点击“创建 API 密钥”
在 NVDA 设置对话框中,向下滚动到 AI 内容描述器类别,然后选择“管理模型 (alt+m)”,选择“Google Gemini”作为您的提供程序,按 Tab 键进入 API 密钥字段,然后粘贴您刚刚生成的密钥这里。
登录 Anthropic 控制台。
单击您的个人资料 -> API 密钥。
单击创建密钥。
输入密钥的名称,例如“AIContentDescriber”,然后单击“创建密钥”并复制显示的值。这是您将粘贴到 NVDA 设置对话框 -> 管理模型 -> Claude 3 的 Ai 内容描述器类别下的 API 密钥字段中的内容。
如果您还没有购买,请在人类计划页面下购买至少 5 美元的积分。
该提供商目前存在一些问题,您的里程可能会很长。实际上,只有对运行本地自托管模型以及执行此操作的硬件感兴趣的高级用户才应该尝试它。
下载 llama.cpp。在撰写本文时,此拉取请求删除了多模式功能,因此您将需要使用支持此功能的最新版本。如果您在支持 CUDA 的 Nvidia 图形适配器上运行,请下载这些预构建的二进制文件:llama-b2356-bin-win-cublas-cu12.2.0-x64.zip 和 cudart-llama-bin-win-cu12.2.0-x64。使用不同图形适配器的步骤超出了范围,但可以在 llama.cpp 自述文件中找到。
将这两个文件提取到同一文件夹中。
从 Huggingface 中找到您想要使用的模型的量化格式。对于 LLaVA 1.6 Vicuna 7B:llava-v1.6-vicuna-7b.Q4_K_M.gguf 和 mmproj-model-f16.gguf
将这些文件与其余 llama.cpp 二进制文件一起放入文件夹中。
从命令提示符处运行 llava.cpp 服务器二进制文件,传递模型和多模式投影仪的 .gguf 文件(如下所示):
server.exe -m llava-v1.6-vicuna-7b.Q4_K_M.gguf --mmproj mmproj-model-f16.gguf
在 NVDA 设置对话框中,向下滚动到 AI 内容描述器类别,然后选择“管理模型 (alt+m)”,选择“llama.cpp”作为您的提供程序,使用 Tab 键进入基本 URL 字段,然后输入如图所示的端点控制台(默认为“http://localhost:8080”)。
或者,您可以省略其中一些步骤,并在规格高于本地计算机的远程服务器上运行 llama.cpp,然后输入该端点。
默认绑定四个热键:
NVDA+shift+i:弹出一个菜单,询问是否使用 AI 描述当前焦点、导航器对象、物理相机或整个屏幕。
NVDA+shift+u:使用AI描述当前导航器对象的内容。
NVDA+shift+y:使用 AI 描述剪贴板上的图像(或图像的文件路径)。
NVDA+shift+j:描述您的脸部在所选摄像机画面中的位置。如果您连接了多个摄像头,请导航至 AI 内容描述器菜单 (NVDA+shift+i),然后通过人脸检测子菜单中的“选择摄像头”项选择您想要使用的摄像头。
三种手势未绑定:
使用 AI 描述当前关注项目的内容。
截取屏幕截图,然后使用 AI 进行描述。
使用所选相机拍摄照片,然后使用 AI 对其进行描述。
请随时从输入手势对话框中自定义这些。
要从源代码创建附加包,您将需要:
Python 发行版(推荐 3.7 或更高版本)。检查 Windows 安装程序的 Python 网站。请注意,目前准备 NVDA 源代码和包含的第三方模块需要 32 位版本的 Python 3.7。
Scons - 网站 - 版本 4.3.0 或更高版本。您可以通过 PIP 安装它。 pip install scons
Markdown 3.3.0 或更高版本。 pip install markdown
然后打开您选择的终端:
git clone https://github.com/cartertemm/AI-content-describer.git cd AI-content-describer scons
scons
命令执行完毕后,一个 *.nvda-addon 文件将被放置在该存储库的根目录中,准备测试和发布。
如果您添加需要翻译的其他字符串,那么重建 .pot 文件很重要,如下所示:
scons pot
在 Windows 机器上:
下载诗歌。这是您将用来翻译每条英语消息的软件。
在此处下载包含所有字符串的 .pot 文件
在 poedit 程序中打开刚刚下载的文件。在出现的窗口中单击“创建新翻译”,然后选择目标语言。
仔细检查源文本内容并将其转换为目标语言,然后将其粘贴到翻译字段中。如需额外帮助,请随时右键单击列表项 -> 代码出现次数,然后向上一行阅读以“# Translators:”开头的注释。这些注释还可以在 .pot 文件中的一处找到。
完成后,单击文件 -> 保存或按 ctrl+s,然后选择要存储新 .mo 和 .po 文件的位置。这些是应该通过电子邮件发送给我或附加在拉取请求中的文件。
翻译readme.md(此文件)的内容。也附上吧!
所有这些都将受到高度赞赏并予以认可。以下人员参与了该插件的开发工作。
Mazen:markdown 实现,其他代码贡献
Kostenkov-2021:俄语翻译
Nidza07:塞尔维亚语翻译
Heorhii Halas:乌克兰语翻译
Umut Korkmaz:土耳其语翻译
Platinum_Hikari:法语翻译
卢卡斯:捷克语翻译
Michaela:斯洛伐克语翻译
遇到问题?将其提交给问题跟踪器
对新功能有建议吗?也为此创建一个票证,我们可以讨论实施它。没有相关问题的拉取请求将被审查,但可能会占用每个人更多的时间,特别是如果我认为新的修复或功能需要以不同于提议的方式工作。
张开双臂欢迎翻译。越多的人能够使用这项强大的技术就越好!
如果您没有 Github,或者不想使用它,您可以给我发一封电子邮件 - cartertemm (at) gmail (dot) com。
感谢您的支持!