Skip to content

Seeneva/seeneva-reader-android

Repository files navigation

A libre smart powered comic book reader for Android.

Get it on Google Play Get it on F-Droid


Note: Current release should be considered as public beta.

Features

  • Smart speech balloons zooming. 💬
  • Speech balloons OCR and TTS. 👀
  • Supports CBZ (.zip), CBR (.rar) with limitations, CB7 (.7z), CBT (.tar) and PDF comic book archives.
  • Supports different image formats on any Android device.
  • View ComicRack metadata (from ComicInfo.xml file).
  • Supports Left-to-Right (LTR) and Right-to-Left (RTL) read directions.
  • Supports Android 4.1+ and all available Android ABIs arm64-v8a, armeabi-v7a, x86_64 and x86.
  • Smart functionality performs locally on the device.
  • Libre application under GPLv3 or later license.
  • No ads, no personal data collection.
  • Is it not enough? Hey, there is a bubble-whale on the icon! 🐋

Speech balloons zooming

Every time you add a new comic book into the app's library, it will scan each page to find all speech balloons on them using Machine Learning object detection model (based on YOLOv4-tiny).

Now you can easily zooming and navigate through comic book speech balloons no matter how small your screen:

Speech balloons zooming

Note:

  • Use high res page images for better recognition.
  • ML model was trained on ~10K speech balloons from modern comic books and manga. The result is really nice but sometimes you may encounter some issues with speech balloons order.

OCR and TTS

Seeneva comic book reader make it possible to use Optical Character Recognition (based on Tesseract) on all found speech balloons to extract text from them. This will allow you to easily copy speech balloon's text and for example translate it using any available translator.

OCR

After every success OCR you can also use Text-To-Speech to convert speech balloon's text into synthesized human speech. You can use Seeneva like audio comic book reader.

Note:

  • Only English language is supported right now.
  • Any Android TTS engine should be installed on the device to use in-app TTS.
  • OCR was trained on ~2K of text lines primarily by Big Two Comics. The result is pretty good but different text fonts may be recognized worse or better than others (or not recognize at all).

Performance

Smart adding new comic book into the library might take a while. It is depends on your device CPU specifications, comic book archive type, pages count and their size. Here are some examples on real devices.

Device CBR (44 MB, 24 pages) CBR (103 MB, 78 pages)
Pixel 2 XL ~15s ~75s
Nexus 5 ~60s ~190s
Ainol Novo 7 Aurora II ~180s ~600s

Permissions

Seeneva requires some Android permissions to run properly:

  • android.permission.READ_EXTERNAL_STORAGE: required on Android up to 4.3. This permission allows to add into the library comic book files located on device external storage (like SD card).
  • android.permission.FOREGROUND_SERVICE: required to process comic book adding inside a foreground Service. Each comic book goes through a ML model which can take up to a few minutes. The foreground Service allows Seeneva to keep adding comics without the risk of being killed by the OS when the user has placed the app in the background.
  • android.permission.WAKE_LOCK, android.permission.RECEIVE_BOOT_COMPLETED: required by AndroidX WorkManager library. Seeneva uses that library to periodically sync added comic book files to determine their status (e.g. comic book file was removed, renamed or corrupted) and display that status to the user. These permissions allow to start that periodical task after the device has been rebooted.
  • android.permission.POST_NOTIFICATIONS: required to display notifications on Android 13 and up. Notifications are displayed for example when adding a comic book into the library.

Screenshots

What's next?

More smart features, new supported by OCR languages. Where are a lot of ideas to implement.

Here are some of them:

  • Tools for contributors to improve ML features.
  • Smart speech balloon text translation to another language.

Stay tuned!

Seeneva is a non-profit project, so there is no strong road map.

Contribution

  • Open an issue if you catch a bug.
  • Code contribution using Pull Request.
  • Help translate the app into new languages or correct current localization mistakes using Weblate.
  • Tell your friends about the app.
  • Also you can support the app by donation.

Translation

Translation status

Donate

Seeneva is a free and open source comic book reader without any income other than donations from users of the app.

If you like Seeneva comic book reader, you can donate to its future development. It will help to upgrade developer's dev machine to faster implement new features or rent cloud services required to train ML models.

So Seeneva will be smarter than ever! 🧠

Please remember that donations are totally voluntary. There is no any bonuses right now, except the developer appreciation. 😻

FAQ

Q: What does Seeneva mean?

A: It is a modified Russian word "синева". Or this is a strange reference to Evangelion.

Q: Where can I download the ML dataset?

A: You can't because of legal issues. Maybe there will be a way in the future.

Q: Why are the results of my comic book speech balloons zooming and OCR recognition so poor?

A: Please try to use high resolution images. If it doesn't help then your comic book has unsupported speech balloon shapes or fonts. This usually can be fixed by adding this comic book into the ML training process. Also manga recognition is worse than that of comic books right now.

Q: What is the difference between the Import and Link adding options?

A: Current adding process is not very clear and can be confusing. It should be improved in future versions.

To clarify the difference:

  • Import - a comic book will be copied into the app's internal folder. If you have a 100MB comic book and import it, you will have two identical files of 100MB each. The imported comic book is always available for the app.

  • Link - the app will request a permanent read link to a comic book using Android's storage access framework. The requested comic book will be read from its source folder without any copying. This will help to save free space on a device. But. If you uninstall your file manager app which provided this permanent link, Seeneva will lose that link as a result. Your comic book file won't be corrupted or moved by Seeneva.

Q: Where can I get digital comic books?

A: You can buy them, some comic books like Pepper&Carrot are libre. You can open any comic book with the app, no matter its provenance, as long as its format is supported. Sorry, but the Seeneva app ships without any prebuilt comic books.

Privacy Policy

Please read the PRIVACY document for more information.

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.

Third party dependencies

List of used dependencies and their licenses can be found in the dependencies.json file. Full text of a license can be found in the license directory. Also you can view them in the "About app" screen.

Please let me know if any of a licenses has invalid information.

Other

  • Some examples and tests use pages from the great webcomic Pepper&Carrot licensed under CC BY 4.0.

  • Google Play and the Google Play logo are trademarks of Google LLC.