Este complemento permite obtener descripciones detalladas de imágenes, controles de interfaz de usuario y otro contenido visualmente inaccesible.
Aprovechando las capacidades multimodales de los modelos avanzados de IA y los algoritmos de visión por computadora, nuestro objetivo es ofrecer las mejores descripciones de contenido de su clase y aumentar la independencia general. Para obtener más información sobre los modelos subyacentes, consulte la sección correspondiente de este documento.
Describe el objeto de enfoque, el objeto del navegador, la pantalla completa o toma una foto con la cámara integrada
Describe cualquier imagen que se haya copiado en el portapapeles, ya sea una imagen de un correo electrónico o una ruta en el Explorador de Windows.
Indique si la cara del usuario está colocada en el centro del marco mediante algoritmos de visión por computadora (no requiere acceso API pago)
Admite múltiples proveedores (GPT4 de OpenAI, Gemini de Google, Claude 3 de Anthropic y llama.cpp)
Admite una amplia variedad de formatos, incluidos PNG (.png), JPEG (.jpeg y .jpg), WEBP (.webp) y GIF no animado (.gif)
Opcionalmente almacena en caché las respuestas para preservar la cuota de API.
Para uso avanzado, personalice el aviso y el recuento de tokens para adaptar la información a sus necesidades.
Representación de Markdown para acceder fácilmente a información estructurada (simplemente inserte, por ejemplo, "responder en Markdown" al final de las indicaciones)
Había algunas motivaciones principales detrás de este proyecto.
NVDA es capaz de realizar reconocimiento óptico de caracteres (OCR) desde el primer momento, lo cual cambia las reglas del juego. Si estás intentando sacar texto de una imagen o un documento PDF, esto es lo que estás buscando.
Sin embargo, el OCR sólo puede analizar datos que puedan ser texto. Se queda corto al considerar el contexto, los objetos y las relaciones transmitidas en esas imágenes. E Internet está lleno de ellos. Logotipos, retratos, memes, íconos, cuadros, diagramas, gráficos de barras/líneas... Lo que sea. Están en todas partes y, por lo general, no en un formato que los usuarios de lectores de pantalla puedan interpretar. Hasta hace poco, ha habido una dependencia inquebrantable de que los autores de contenido proporcionen descripciones de texto alternativas. Si bien esto sigue siendo una obligación, es difícil cambiar el hecho de que un alto estándar de calidad resulta ser la excepción, no la regla.
Ahora, las posibilidades son casi infinitas. Podrías:
Visualice el escritorio o una ventana específica para comprender la ubicación de los íconos cuando capacite a otros
Obtenga información detallada sobre el estado de juegos, máquinas virtuales, etc. cuando el sonido sea insuficiente o no esté disponible
Descubra lo que se muestra en un gráfico
Desmitificar capturas de pantalla o pantallas compartidas en Zoom o Microsoft Teams
Asegúrese de que su rostro mire claramente a la cámara y que su experiencia sea profesional antes de grabar videos o participar en reuniones en línea.
Visión GPT4
Google Gemini pro visión
Claude 3 (Haiku, Soneto y Opus)
llama.cpp (extremadamente inestable y lento dependiendo de su hardware, probado para funcionar con los modelos llava-v1.5/1.6, BakLLaVA, Obsidian y MobileVLM 1.7B/3B)
Siga las instrucciones que se proporcionan a continuación para que cada uno de ellos funcione.
Descargue la última versión del complemento desde este enlace. Haz clic en el archivo en una computadora con NVDA instalado, luego sigue las instrucciones a continuación para obtener una clave API de un proveedor compatible. Si no está seguro de cuál usar, el consenso de los desarrolladores y evaluadores de este complemento es que Gemini ofrece actualmente precios más razonables, mientras que Open-AI parece proporcionar un mayor grado de precisión. El haiku Claude 3 es la opción más barata y rápida, pero la calidad es impredecible. Por supuesto, estos resultados dependen en gran medida de la tarea en cuestión, por lo que recomendamos experimentar con diferentes modelos e indicaciones para encontrar cuál funciona mejor.
Vaya a la página de claves API de open-AI
Si aún no tienes una cuenta, crea una. Si lo haces, inicia sesión.
En la página de claves API, haga clic para crear una nueva clave secreta. Cópialo en tu portapapeles.
Deposite fondos en la cuenta con al menos $1
En el cuadro de diálogo de configuración de NVDA, desplácese hacia abajo hasta la categoría Descriptor de contenido AI, luego elija "administrar modelos (alt+m)", seleccione "GPT4 Vision" como proveedor, acceda al campo de clave API y pegue la clave que acaba de generar. aquí.
Al momento de escribir este artículo, Open-AI emite créditos a nuevas cuentas de desarrollador que pueden usarse durante tres meses, después de los cuales se pierden. Después de este período, tendrás que comprar créditos. El uso típico nunca debería exceder los $5,00 por mes. Como punto de referencia, la versión original de este complemento se desarrolló por poco menos de un dólar. Siempre es posible iniciar sesión en su cuenta OpenAI y hacer clic en "uso" para obtener su cuota.
Primero deberá crear un proyecto de espacio de trabajo de Google yendo a la consola en la nube de Google. Asegúrese de haber iniciado sesión en su cuenta de Google.
Crea un nombre de entre cuatro y treinta caracteres, como "Gemini" o "complemento NVDA".
Vaya a la página de claves API de Google AI Studio
Haga clic en "crear clave API"
En el cuadro de diálogo de configuración de NVDA, desplázate hacia abajo hasta la categoría Descriptor de contenido AI, luego elige "administrar modelos (alt+m)", selecciona "Google Gemini" como tu proveedor, ingresa al campo de clave API y pega la clave que acabas de generar. aquí.
Inicie sesión en la consola de Anthropic.
Haga clic en su perfil -> Claves API.
Haga clic en Crear clave.
Ingrese un nombre para la clave, como "AIContentDescriber", luego haga clic en "Crear clave" y copie el valor que aparece. Esto es lo que pegarás en el campo Clave API en la categoría Descriptor de contenido Ai del cuadro de diálogo de configuración de NVDA -> administrar modelos -> Claude 3.
Si aún no lo ha hecho, compre al menos $5 en créditos en la página de planes antrópicos.
Actualmente, este proveedor tiene algunos errores y su kilometraje puede ser muy alto. En realidad, solo deberían intentarlo usuarios avanzados interesados en ejecutar modelos locales autohospedados y el hardware para hacerlo.
Descargar llama.cpp. Al momento de escribir este artículo, esta solicitud de extracción elimina las capacidades multimodales, por lo que querrás usar la última versión compatible con esto. Si está ejecutando un adaptador de gráficos Nvidia con soporte CUDA, descargue estos archivos binarios prediseñados: llama-b2356-bin-win-cublas-cu12.2.0-x64.zip y cudart-llama-bin-win-cu12.2.0-x64. zip Los pasos para trabajar con un adaptador de gráficos diferente están fuera de alcance, pero se pueden encontrar en el archivo Léame de llama.cpp.
Extraiga ambos archivos en la misma carpeta.
Localiza los formatos cuantificados de los modelos que te gustaría utilizar de Huggingface. Para LLaVA 1.6 Vicuña 7B: llava-v1.6-vicuna-7b.Q4_K_M.gguf y mmproj-model-f16.gguf
Coloque estos archivos en la carpeta con el resto de los binarios llama.cpp.
Desde un símbolo del sistema, ejecute el binario del servidor llava.cpp, pasando los archivos .gguf para el modelo y el proyector multimodal (como se muestra a continuación):
server.exe -m llava-v1.6-vicuna-7b.Q4_K_M.gguf --mmproj mmproj-model-f16.gguf
En el cuadro de diálogo de configuración de NVDA, desplázate hacia abajo hasta la categoría Descriptor de contenido AI, luego elige "administrar modelos (alt+m)", selecciona "llama.cpp" como tu proveedor, ingresa al campo URL base e ingresa el punto final que se muestra en la consola (el valor predeterminado es "http://localhost:8080").
Alternativamente, puede omitir algunos de estos pasos y ejecutar llama.cpp en un servidor remoto con especificaciones más altas que su máquina local y luego ingresar ese punto final.
Cuatro teclas de acceso rápido están vinculadas de forma predeterminada:
NVDA+shift+i: aparece un menú que pregunta si se debe describir el enfoque actual, el objeto del navegador, la cámara física o la pantalla completa con IA.
NVDA+shift+u: Describe el contenido del objeto del navegador actual usando IA.
NVDA+shift+y: describe la imagen (o la ruta del archivo a una imagen) en el portapapeles usando IA.
NVDA+shift+j: Describe la posición de tu rostro en el marco de la cámara seleccionada. Si tiene varias cámaras conectadas, navegue hasta el menú de descripción de contenido de IA (NVDA+shift+i) y elija la que desea usar con el elemento "seleccionar cámara" en el submenú de detección de rostros.
Se desatan tres gestos:
Describe el contenido del elemento actualmente enfocado usando IA.
Tome una captura de pantalla y luego descríbala usando IA.
Toma una foto con la cámara seleccionada y luego descríbela usando IA.
No dude en personalizarlos en cualquier momento desde el cuadro de diálogo de gestos de entrada.
Para crear el paquete complementario desde el código fuente, necesitará:
una distribución Python (se recomienda 3.7 o posterior). Consulte el sitio web de Python para obtener instaladores de Windows. Tenga en cuenta que actualmente, la preparación del código fuente de NVDA y los módulos de terceros incluidos requiere la versión de 32 bits de Python 3.7.
Scons - Sitio web - versión 4.3.0 o posterior. Puedes instalarlo a través de PIP. pip install scons
Markdown 3.3.0 o posterior. pip install markdown
Luego abre tu terminal de elección:
git clone https://github.com/cartertemm/AI-content-describer.git cd AI-content-describer scons
Una vez que el comando scons
termine de ejecutarse, se colocará un archivo *.nvda-addon en la raíz de este repositorio listo para probar y publicar.
Si agrega cadenas adicionales que deben traducirse, es importante reconstruir el archivo .pot de esta manera:
scons pot
En una máquina con Windows:
descargar poema. Este es el software que utilizarás para traducir cada mensaje del inglés.
descarga el archivo .pot con todas las cadenas aquí
Abra el archivo que acaba de descargar en el programa poedit. Haga clic en "Crear nueva traducción" en la ventana que aparece, luego seleccione el idioma de destino.
Revise y convierta el contenido del texto de origen al idioma de destino, luego péguelo en el campo de traducción. Para obtener ayuda adicional, no dude en hacer clic derecho en el elemento de la lista -> apariciones de código, luego suba una línea para leer el comentario que comienza con "# Translators:". Estos comentarios además están disponibles en un lugar en el archivo .pot.
Cuando termine, haga clic en archivo -> guardar o presione Ctrl+s y luego elija una ubicación para almacenar los nuevos archivos .mo y .po. Estos son los archivos que deberían enviarme por correo electrónico o adjuntar en una solicitud de extracción.
Traduzca el contenido de readme.md (este archivo). ¡Adjuntelo también!
Todos son muy apreciados y serán acreditados. Las siguientes personas han trabajado en el complemento.
Mazen: implementación de rebajas, otras contribuciones de código
Kostenkov-2021: traducción al ruso
Nidza07: traducción al serbio
Heorhii Halas: traducción al ucraniano
Umut Korkmaz: traducción al turco
Platinum_Hikari: traducción al francés
Lukas: traducción al checo
Michaela: traducción al eslovaco
¿Enfrentando un problema? Envíelo al rastreador de problemas
¿Tiene alguna sugerencia para una nueva característica? Cree un ticket para eso también y podremos hablar sobre implementarlo. Se revisarán las solicitudes de extracción sin problemas asociados, pero es probable que tomen más tiempo para todos, especialmente si decido que la nueva solución o funcionalidad debe funcionar de manera diferente a lo propuesto.
Las traducciones son bienvenidas con los brazos abiertos. ¡Cuantas más personas puedan acceder a esta poderosa tecnología, mejor!
Si no tienes Github, o prefieres no usarlo, puedes enviarme un correo electrónico: cartertemm (arroba) gmail (punto) com.
¡Gracias por el apoyo!