← Back to all work
GitHubMobile applications

DhebeVoice

An Android reader that turns text, EPUB, PDFs, and readable web pages into a local listening queue.

STATUSAndroid application in Google Play closed testing; repository may be newer than the installed tester build.
FOCUSMobile applications
DIAGRAM SCOPESource-based architecture

THE PROBLEM

What it sets out
to solve.

Long-form reading needs coordinated imports, saved positions, chapter navigation, and reliable playback across app and device controls.

THE APPROACH

How it comes
together.

Flutter views delegate imports and narration to services. A shared playback service routes segments to installed Android TTS or an optional native Kotlin/ONNX engine, while library and preference services keep reading state on-device.

UNDER THE HOOD

Explore the architecture.

Trace the components.
Select a node for its role in the system.

Reader state separated from import and speech transport8 COMPONENTS
INTERACTIVE 3DDhebeVoice
FlutterDartKotlin
Move to tilt · Drag to rotate · Arrow keysDrag to rotate · Tap a component8 components · 10 connections
2D diagram
Trace connections 10 relationships
  1. Files and shared linksImport controller
  2. Flutter reader and settingsImport controller
  3. Flutter reader and settingsTtsService
  4. Import controllerLocal library and preferences
  5. Import controllerTtsService
  6. TtsServiceLocal library and preferences
  7. TtsServiceInstalled Android TTS
  8. TtsServiceKotlin offline plugin
  9. Installed Android TTSAudio playback
  10. Kotlin offline pluginAudio playback

Select a component to see how it fits into the system.

CAPABILITIES

What’s inside.

  • 01

    TXT, EPUB, text-based PDF, pasted-text, and reviewed web imports

  • 02

    Local book library, saved positions, chapter and paragraph playback

  • 03

    Notification, headset, Bluetooth, lock-screen, and sleep-timer controls

  • 04

    Optional downloadable Supertonic 3 narration using on-device ONNX inference

  • 05

    Searchable voice choices, themes, and preparation state

Let’s build something useful.

Start a conversation ↗