Aller au contenu

Whisperbook

Une application Android offline-first qui transforme des EPUB et PDF locaux en audiobooks multi-voix synchronisés, sans compte, sans cloud et sans accès réseau à l'exécution.

Rôle
Chakib a conçu et réalisé le produit Android de bout en bout : import et extraction, préparation des chapitres, attribution explicable des locuteurs, casting local, synthèse progressive Supertonic 3, lecture Media3, suivi synchronisé et export MP3 hors ligne.
État actuel
Version Android publique v0.1 pour appareils arm64 sous Android 8.0 ou plus. L'application importe EPUB/PDF, narre avec Supertonic 3, propose l'anglais, le français et l'arabe par livre, synchronise lecture et passages, puis exporte un MP3 local.
01

Contexte et problème

Transformer un livre en audiobook implique souvent d'envoyer un contenu privé, d'attendre la génération complète et de perdre le contrôle des voix, chapitres et corrections. Whisperbook conserve import, attribution, synthèse, lecture et export sur l'appareil.

02

Responsabilité et contribution

Chakib a conçu et réalisé le produit Android de bout en bout : import et extraction, préparation des chapitres, attribution explicable des locuteurs, casting local, synthèse progressive Supertonic 3, lecture Media3, suivi synchronisé et export MP3 hors ligne.

Responsabilités

  • Création des interfaces Kotlin/Compose et du système visuel Woodland Paper Theatre.
  • Implémentation de l'extraction EPUB/PDF, de l'OCR embarqué et de l'état durable par livre.
  • Intégration de Supertonic 3 via sherpa-onnx avec préécoute locale et casting par livre ou chapitre.
  • Création de la préparation progressive, de la lecture Media3, du suivi de lecture et de l'enchaînement des chapitres.
  • Ajout d'un export MP3 annulable qui réutilise l'audio finalisé et ne génère que les segments manquants.
03

Architecture et flux de données

Une application Kotlin/Compose mono-module copie la publication dans un stockage privé, extrait le texte EPUB ou PDF, détecte chapitres et locuteurs, persiste la bibliothèque dans Room et prépare l'audio d'ouverture via WorkManager. Supertonic 3 génère des segments WAV locaux finalisés que Media3 lit progressivement pendant la préparation des chapitres suivants.

  1. EPUB ou PDF local
  2. Extraction privée et détection des chapitres
  3. Attribution des locuteurs et casting
  4. Synthèse progressive Supertonic 3
  5. Lecture Media3 et passages synchronisés
  6. Export MP3 hors ligne
04

Décisions d’ingénierie

Supprimer tout réseau à l'exécution.

Le manifeste Android n'accorde ni INTERNET ni ACCESS_NETWORK_STATE : livres, audio et historique restent dans la frontière de l'appareil.Alternative écartée: Imposer un modèle hébergé, un compte ou un fallback cloud pour la narration.

Lire des segments locaux finalisés sans attendre le livre complet.

Le premier chapitre devient écoutable pendant la préparation séquentielle des suivants, tout en conservant cache, recherche et reprise.Alternative écartée: Bloquer la lecture jusqu'à la synthèse de tous les chapitres.

05

Fiabilité, sécurité et évaluation

  • Room, DataStore et WorkManager persistent la bibliothèque, les réglages et les checkpoints de préparation.
  • Les microsegments WAV finalisés servent de représentation commune au cache, à la lecture et à l'export.
  • Les tests JVM et Android couvrent import, synthèse, lecture, navigation, choix des voix et enchaînement des chapitres sur les interfaces Compose réelles.
06

Résultats et état actuel

Version Android publique v0.1 pour appareils arm64 sous Android 8.0 ou plus. L'application importe EPUB/PDF, narre avec Supertonic 3, propose l'anglais, le français et l'arabe par livre, synchronise lecture et passages, puis exporte un MP3 local.

Groupes technologiques

Android

Kotlin, Jetpack Compose, Room, DataStore, WorkManager

Audio

Supertonic 3, sherpa-onnx, Media3, AudioTrack, FFmpegKit

Documents

EPUB, PDF, ML Kit OCR, Storage Access Framework

07

Preuves et sources

Écran de lecture synchronisée Whisperbook avec passages étiquetés par locuteur et contrôles audio
La lecture synchronisée suit le passage actif tout en permettant de corriger manuellement le locuteur.
Écran de casting Whisperbook avec langue du livre et voix locales attribuées aux personnages
Le casting gère la langue du livre et les voix locales préécoutables sans quitter l'appareil.
Bibliothèque hors ligne Whisperbook avec reprise de lecture et autres livres locaux
La bibliothèque restaure la position d'écoute et l'état de préparation propres à chaque livre.