3 points par GN⁺ 2023-12-25 | 1 commentaires | Partager sur WhatsApp

Storyteller : plateforme de synchronisation automatique pour livres audio et ebooks

  • Storyteller est une plateforme auto-hébergée qui synchronise automatiquement les livres audio et les ebooks.
  • La plateforme génère des fichiers ebook conformes au standard EPUB 3, qui peuvent être lus sur n’importe quel lecteur ebook (logiciel ou matériel) prenant en charge les media overlays EPUB, ou via l’application mobile dédiée Storyteller.
  • Storyteller est entièrement auto-hébergé, et tous les livres sont stockés sur le matériel de l’utilisateur, ce qui permet de les déplacer, copier et sauvegarder librement selon les besoins.

L’avis de GN⁺

  • Storyteller est important car il fournit une plateforme permettant de synchroniser facilement livres audio et ebooks afin d’améliorer l’expérience de lecture des utilisateurs.
  • La fonction d’auto-hébergement, qui permet aux utilisateurs de garder un contrôle total sur leurs données, répond aux préoccupations actuelles en matière de protection de la vie privée et de propriété des données.
  • La conformité au standard EPUB 3 contribue à améliorer la compatibilité et l’accessibilité en permettant aux utilisateurs de lire leurs livres sur divers appareils et logiciels.

1 commentaires

 
GN⁺ 2023-12-25
Avis sur Hacker News
  • Impressionnant. Il y a quelques années, j’ai créé un outil similaire d’alignement ebook-livre audio, https://github.com/r4victor/syncabook
    À l’époque, j’avais considéré que les méthodes d’alignement de texte, y compris celles basées sur le machine learning, étaient trop coûteuses en calcul et insuffisantes pour les textes longs, donc j’avais choisi de synthétiser le texte en parole puis d’aligner deux séquences audio
    Storyteller semble aligner le texte ; je me demande combien de temps il faut pour synchroniser un livre entier
    Autre point : les versions audio et texte diffèrent souvent beaucoup. Par exemple, l’audio peut contenir une introduction absente du texte. J’aimerais savoir dans quelle mesure Storyteller gère bien ce genre de cas, et s’il faut éditer manuellement l’audio/le texte ou s’il traite automatiquement les différences

    • syncabook est excellent, et Storyteller adopte en quelque sorte l’approche presque inverse pour l’alignement forcé (forced alignment)
      J’ai détaillé l’algorithme de synchronisation dans la documentation, mais dans les grandes lignes : Storyteller transcrit l’audio en texte avec Whisper, et c’est l’étape la plus coûteuse en calcul
      Ensuite, il trouve chaque chapitre dans le texte au moyen d’une recherche floue basée sur la distance de Levenshtein. C’est la partie qui vise à tenir compte des différences entre les versions audio et texte
      Pour chaque chapitre, il effectue à nouveau une recherche floue sur l’ensemble de la transcription afin de trouver les horodatages de début/fin de chaque phrase
      Globalement, cela fonctionne plutôt bien, mais comme l’ebook est considéré comme la donnée de référence, il arrive actuellement que les introductions ou fins de livres audio soient manquées. La prise en charge permettant de déclencher explicitement ce type de sections est dans la feuille de route
    • La documentation indique généralement 1 à 4 heures, selon le livre et le matériel : https://smoores.gitlab.io/storyteller/docs/syncing-books
      Elle décrit aussi en détail l’algorithme qui gère automatiquement les différences entre l’audio et le texte
  • C’est vraiment génial. Je n’y avais jamais pensé auparavant
    Dans les transports, j’ai commencé à écouter des livres audio, et le soir je lis. En ce moment, j’écoute des ebooks avec audiobookshelf[0], qui prend aussi en charge les ebooks
    J’ai laissé un commentaire[1] dans la discussion pour savoir si audiobookshelf peut lire les EPUB générés par Storyteller
    [0]: https://www.audiobookshelf.org/
    [1]: https://github.com/advplyr/audiobookshelf/issues/189#issueco...

    • Écouter des livres audio dans les transports et lire le soir, c’est presque exactement la raison qui m’a poussé à commencer ce projet il y a plus de deux ans
      Je voulais pouvoir passer librement d’un livre audio à sa version texte. Merci d’avoir mentionné Storyteller dans cette discussion ; je vais aller y jeter un œil
  • J’aime vraiment beaucoup. Cela dit, ma femme et mes enfants lisent tous des EPUB sur des liseuses Kobo, donc ce serait bien de pouvoir synchroniser la dernière page lue depuis Kobo vers Storyteller, afin de reprendre plus tard en livre audio
    Si c’est nécessaire pour la synchronisation, ça ne me dérange pas d’installer KOReader sur tous les Kobo. Il ne semble pas que KOReader prenne en charge les media overlays EPUB3, mais il dispose bien d’une fonction de synchronisation

    • La synchronisation de la position de lecture côté serveur et l’intégration avec KOReader figurent toutes deux réellement dans la feuille de route. C’est une demande qui est déjà revenue plusieurs fois
    • Amazon possède désormais à la fois les livres texte et l’audio Audible, donc l’absence de toute forme de fonction de synchronisation n’a aucun sens
      Au contraire, cela pourrait inciter les gens à acheter le livre dans les deux formats. Il y a vraiment beaucoup de moments où l’on aimerait, après avoir lu un ebook, pouvoir reprendre naturellement sur la version audio en conduisant, avec une sorte de « handoff »
  • La réaction a énormément grandi pendant que je ne regardais pas. Si certains essaient de le configurer, ce serait sympa de passer sur le canal Gitter (https://smoores.gitlab.io/storyteller/docs/say-hi) pour dire bonjour, demander de l’aide ou laisser des retours

  • J’aimerais avoir plus d’informations. Des choses comme un lien vers l’app iOS, des captures d’écran, ou les fonctionnalités fournies par le projet
    Je me demande s’il s’agit d’une bibliothèque ebooks/livres audio avec synchronisation, comme audiobookshelf, ou simplement d’un outil de synchronisation : https://www.audiobookshelf.org/

    • C’est une remarque juste, je vais essayer d’ajouter davantage de ces informations. Je pensais créer un lien depuis la documentation vers la page App Store, et je viens de la mettre à jour pour l’inclure
      Storyteller est une bibliothèque ebooks/livres audio complète, avec synchronisation. Cela dit, jusqu’ici, je me suis beaucoup plus concentré sur l’expérience de lecture que sur l’expérience de gestion de bibliothèque
      Je prévois aussi de travailler bientôt à l’amélioration de cette dernière
    • L’app n’était pas très facile à trouver. Ce serait bien d’ajouter un lien depuis la page de l’app mobile
      https://apps.apple.com/us/app/storyteller-reader/id647446772...
  • Projet vraiment génial
    Puisque vous faites déjà de la transcription avec l’IA, ce serait excellent de pouvoir aller jusqu’à la génération de voix par IA avec du TTS
    Je me suis abonné puis désabonné plusieurs fois d’Audible, parce qu’il y avait trop peu de livres audio de qualité. Même les livres lus par leur auteur sont souvent médiocres, et la plupart ne sont pas des narrateurs professionnels
    Avec une bonne IA, cela pourrait être formidable : elle pourrait maintenir pendant des heures la même énergie, la même intonation et le même rythme sans se fatiguer

  • C’est assez intéressant.
    Il y a quelque temps, j’avais écrit quelque chose de similaire : à partir d’une combinaison ebook/livre audio, je créais un jeu de données LJSPEECH personnalisé, puis j’utilisais coqui-tts et le modèle VITS pour synthétiser la voix de mon narrateur préféré et « publier » en livre audio des livres qui n’étaient pas sortis dans ce format.
    Je pouvais synchroniser le contenu du livre avec les horodatages, découper la voix phrase par phrase, puis créer un jeu de données LJSPEECH à partir de cette combinaison.
    J’utilisais aeneas[1] et la configuration était un peu délicate, mais avec le temps il arrivait à faire le mapping avec plus de 80 % de précision, même pour des langues autres que l’anglais — dans mon cas, l’allemand.
    Ça fonctionnait plutôt bien et le jeu de données LJSPEECH était correct, mais à l’époque la techno TTS n’était pas encore au niveau. C’est peut-être le moment de relancer ça avec des approches de modélisation plus récentes comme XTTS.
    [1]: https://www.readbeyond.it/aeneas/

    • J’avais exactement cette idée il y a quelques années, mais pas les compétences techniques pour l’implémenter.
      Comme tu le dis, il y a beaucoup de bons livres, mais le plus gros problème, ce sont les excellents livres dont la narration/la qualité de production est médiocre. Par exemple, A Song of Ice and Fire sur Audible est vraiment atroce, alors que The Martian d’Andy Weir est excellent.
      Est-ce qu’on pourrait transposer Wil Wheaton ou Greg Tremblay sur GOT ? Faire lire plusieurs personnages par des voix différentes ? Si c’est possible, ça vaudrait le coup de réessayer.
  • Il manque le lien : https://smoores.gitlab.io/storyteller/
    Ça a l’air très bien, et l’étape suivante serait de créer un écosystème entièrement synchronisé pour la gestion des livres.

    • Tu parles d’un système comme Audiobookshelf[0] ? Personnellement, je le recommande vivement. Il a fonctionné de façon plus fiable que n’importe quel service payant que j’ai essayé jusqu’ici.
      [0] https://www.audiobookshelf.org/
    • Oui, c’est l’objectif. La gestion de bibliothèque et l’application de lecture existent déjà, mais il reste encore beaucoup de travail, surtout côté gestion de bibliothèque.
  • Ce que j’aimerais vraiment obtenir de cette nouvelle ère du machine learning, c’est du TTS et du STT auto-hébergeables, au niveau humain.
    J’aimerais pouvoir écouter des ebooks texte, et convertir en texte de gros podcasts ou des cours vidéo/audio pour faciliter la recherche et les citations.
    Je me demande si c’est ce que fait ce projet. Tout ce que j’ai trouvé jusqu’ici était nettement en dessous du niveau humain, ou bien des services en ligne coûteux.

  • Génial. Ça fait des années que je veux un truc comme ça. Ce serait bien que Libby l’intègre pour pouvoir l’utiliser aussi avec les livres empruntés.
    Ce serait bien aussi d’ajouter le lien vers l’app de l’App Store.