Home
Softono
YomiNinja

YomiNinja

Open source TypeScript
689
Stars
16
Forks
80
Issues
11
Watchers
10 months
Last Commit

About YomiNinja

Open-source OCR and dictionary tool.

Platforms

Web Self-hosted

Languages

TypeScript

Links

YomiNinja

YomiNinja is an application for extracting text from any type of visual content and is designed with language learners in mind.

Demonstration with 10ten

https://github.com/matt-m-o/YomiNinja/assets/25914763/2bb02444-fc41-44e7-bc9e-c66d0d40d7b3

Demonstration with Yomichan

https://github.com/matt-m-o/YomiNinja/assets/25914763/1868db47-5b50-44c1-a5b3-694d46c69e28

The extracted text overlays the original content, allowing for quick look-ups with pop-up dictionaries like 10ten, Yomitan and Inkah.
It minimizes distractions and simplifies the process of looking up unfamiliar words.
This is especially beneficial for language learners who study through videos or games.

YomiNinja is perfect for:

  • Language learners who study through games, videos, or any other visual content.
  • Anyone who values a distraction-free, efficient way to look up unfamiliar words.
  • Users looking for seamless text extraction and workflow improvement.

Check out this video by ganqqwerty to get started quickly and easily!

Dictionary Extensions

YomiNinja supports web browser dictionary extensions, enabling convenient word lookup without external applications.
While not all extensions are currently installable, 10Ten and Yomitan have been successfully tested and are included as pre-installed options for simplified installation.

Installation

Windows

You need Windows 10 or 11 and VCRedist installed.
If you are using the N or KN edition of Windows 10 or 11, please be aware that you will also need to install the Media Feature Pack. This is necessary to ensure that all the required DLLs are installed.

Download and install the latest YomiNinja release.

Linux

YomiNinja currently offers support for distros using the X11 window system. Wayland is not supported due to its limitations with global shortcuts and window positioning.

  1. Install xdotool.

  2. Download the YomiNinja package corresponding to your distribution.

  3. Install the package. For example, on Debian-based distributions:

     sudo dpkg -i yomininja-e_x.x.x_amd64.deb

    macOS

    Download and install the latest YomiNinja release.

Notes:

  • The ARM64 version for macOS might show the message "YomiNinja is damaged and can't be opened". You can work around this issue by running the command xattr -cr /Applications/YomiNinja.app
  • The list of available languages for the Apple Vision OCR engine depends on your macOS version.

Current features

  • Text extraction from the entire screen or specific window.
  • Built-in pop-up dictionaries.
  • Chrome Extensions (partial support).
  • OCR Templates (predefined text areas, optimizing OCR efficiency).
  • Auto OCR.
  • Text to speech.
  • WebSocket for Texthookers.

Planned Features

  • Text extraction from snip.
  • Anki integration.
  • History.
  • Text translation.
  • Support for more OCR engines.
  • Support for more TTS voices.

Supported Languages

  • English
  • Japanese
  • Chinese
  • Korean

Supported OCR Engines

Building

  1. Clone the git repository

     git clone https://github.com/matt-m-o/YomiNinja.git && cd YomiNinja
  2. Build OCR services:

     cd ./ocr_services/py_ocr_service
     ./gen_grpc_service.bat
     ./build.bat
     cd ../..
     ./copy_py_ocr_service_build.bat
  3. Based on your platform, download and extract the latest build of PPOCR-Inference-Service into the appropriate directory:

    • Windows: ./bin/win32/ppocr
    • Linux: ./bin/linux/ppocr
  4. (optional) Download 10ten for Electron, and place the zip file into the following directory:

    ./yomininja-e/extensions/
  5. Install node modules. Note: --force is used due to outdated react-furi peerDependencies, but it should function normally.

     cd yomininja-e && npm install --force
  6. Generate gRPC Protobuf types

     npm run grpc-types
  7. Build

     npm run dist

Inspired by: