Presentación en HN: una plataforma de narración sincronizada de código abierto y autoalojable para ebooks
(smoores.gitlab.io)Storyteller: plataforma de sincronización automática para audiolibros y ebooks
- Storyteller es una plataforma autoalojada que sincroniza automáticamente audiolibros y ebooks.
- La plataforma genera archivos de ebook compatibles con el estándar EPUB 3, por lo que pueden leerse en cualquier lector de ebooks (software o hardware) que soporte EPUB Media Overlays, o bien usar la app móvil dedicada de Storyteller.
- Storyteller es completamente autoalojado, y todos los libros se almacenan en el hardware del usuario, por lo que pueden moverse, copiarse o respaldarse libremente según sea necesario.
La opinión de GN⁺
- Storyteller es importante porque ofrece una plataforma para sincronizar fácilmente audiolibros y ebooks, mejorando la experiencia de lectura del usuario.
- La capacidad de autoalojamiento, que permite al usuario tener control total sobre sus datos, encaja con las preocupaciones actuales sobre privacidad y propiedad de los datos.
- El cumplimiento del estándar EPUB 3 contribuye a mejorar la compatibilidad y la accesibilidad, ya que permite a los usuarios leer libros en diversos dispositivos y programas.
1 comentarios
Opiniones de Hacker News
Increíble. Hace unos años hice una herramienta similar de alineación entre ebook y audiolibro, https://github.com/r4victor/syncabook
En ese momento, consideré que los métodos de alineación de texto, incluidos los basados en machine learning, eran demasiado costosos en cómputo y no alcanzaban para textos largos, así que opté por sintetizar el texto a voz y luego alinear dos secuencias de audio
Storyteller parece usar un enfoque de alineación de texto; me da curiosidad cuánto tarda en sincronizar un libro completo
Además, las versiones de audio y texto a menudo difieren bastante. Por ejemplo, el audio puede incluir una introducción que no está en el texto. También quisiera saber qué tan bien maneja Storyteller estos casos, si hace falta editar manualmente el audio/texto o si procesa las diferencias automáticamente
En la documentación dejé detallado el algoritmo de sincronización, pero a grandes rasgos es así: Storyteller transcribe el audio a texto con Whisper, y esta es la etapa con mayor costo computacional
Luego usa búsqueda difusa basada en distancia de Levenshtein para encontrar cada capítulo dentro del texto. Esa es la parte que intenta contemplar las diferencias entre las versiones de audio y texto
Para cada capítulo, vuelve a hacer una búsqueda difusa sobre toda la transcripción para encontrar las marcas de tiempo de inicio/fin de cada oración
En general funciona bastante bien, pero como toma el ebook como dato de referencia, por ahora a veces se pierde introducciones o partes finales del audiolibro. El soporte para disparar explícitamente esas secciones está en el roadmap
La documentación también explica en detalle el algoritmo que maneja automáticamente las diferencias entre audio y texto
Está buenísimo. Es algo que no se me había ocurrido antes
En el trayecto al trabajo empecé a escuchar audiolibros, y de noche leo el libro. Ahora estoy escuchando ebooks con audiobookshelf[0], que también soporta ebooks
Dejé un comentario[1] en la discusión sobre si audiobookshelf puede leer los EPUB que genera Storyteller
[0]: https://www.audiobookshelf.org/
[1]: https://github.com/advplyr/audiobookshelf/issues/189#issueco...
Quería poder pasar libremente entre un audiolibro y su versión en texto. Gracias por mencionar Storyteller en esa discusión; tendré que entrar a verla
Me encanta. Pero mi esposa y mis hijos leen EPUB en lectores de ebooks Kobo, así que me gustaría poder sincronizar la última página leída desde Kobo hacia Storyteller para luego continuar con el audiolibro
Si hace falta para la sincronización, no me molesta instalar KOReader en todos los Kobo. Parece que KOReader no soporta superposiciones multimedia de EPUB3, pero sí tiene función de sincronización
Incluso podría hacer que la gente compre el libro en ambos formatos. Muchas veces, cuando estoy leyendo un ebook y quiero continuar mientras manejo, me gustaría tener un “handoff” que me pase de forma natural a la versión de audio
La reacción creció muchísimo mientras no estaba mirando. Si alguien lo está configurando, sería genial que entre al canal de Gitter (https://smoores.gitlab.io/storyteller/docs/say-hi) para saludar, pedir soporte o dejar feedback
Me gustaría que hubiera más información. Cosas como el enlace a la app de iOS, capturas de pantalla o qué funciones ofrece el proyecto
Me pregunto si es una biblioteca de ebooks/audiolibros con sincronización, como audiobookshelf, o si es solo una herramienta de sincronización: https://www.audiobookshelf.org/
Storyteller es una biblioteca completa de ebooks/audiolibros con sincronización incluida. Dicho eso, hasta ahora me enfoqué mucho más en la experiencia de lectura que en la experiencia de gestión de la biblioteca
También voy a trabajar pronto en mejorar la experiencia de gestión de la biblioteca
https://apps.apple.com/us/app/storyteller-reader/id647446772...
Es un proyecto realmente genial
Si ya están usando IA para transcribir, sería muy bueno que también se pudiera hacer generación de voz con IA mediante TTS
Me suscribí a Audible varias veces y lo dejé, porque había muy pocos audiolibros de alta calidad. Muchos libros leídos por el propio autor tampoco son buenos, y la mayoría no son narradores profesionales
Una buena IA podría ser excelente, porque mantendría la misma energía, entonación y ritmo durante horas sin cansarse
Está bastante interesante.
Hace tiempo escribí algo parecido que, con una combinación de ebook/audiolibro, permitía crear un dataset LJSPEECH personalizado, sintetizar la voz de mi narrador favorito con coqui-tts y un modelo VITS, y “publicar” libros que no habían salido como audiolibros.
Podía sincronizar el contenido del libro con las marcas de tiempo, dividir el audio por oración y crear un dataset LJSPEECH con esa combinación.
Usé aeneas[1] y la configuración era algo complicada, pero con el tiempo podía mapear idiomas distintos del inglés —en mi caso, alemán— con más de 80% de precisión.
Funcionaba bastante bien y el dataset LJSPEECH también era decente, pero en ese momento la tecnología TTS todavía se quedaba corta. Quizá sea momento de retomarlo con enfoques de modelado más nuevos como XTTS.
[1]: https://www.readbeyond.it/aeneas/
Como dices, hay muchos libros buenos, pero lo más grave son los libros excelentes con una calidad de narración/producción mediocre. Por ejemplo, A Song of Ice and Fire en Audible es realmente espantoso, y The Martian de Andy Weir es excelente.
¿Se podría trasladar a Will Wheaton o Greg Tremblay a GOT? ¿Se podría hacer que varios personajes se leyeran con voces distintas? Si es posible, me gustaría volver a intentarlo.
Falta el enlace: https://smoores.gitlab.io/storyteller/
Se ve muy bueno, y el siguiente paso es crear un ecosistema completamente sincronizado para gestionar libros.
[0] https://www.audiobookshelf.org/
Lo que realmente quiero obtener de esta nueva era de machine learning es TTS y STT autoalojables de nivel humano.
Me gustaría poder escuchar ebooks de texto y convertir a texto podcasts largos o cursos grandes en video/audio para poder buscar y citar con facilidad.
Me pregunto si esto es eso. Todo lo que he encontrado hasta ahora ha estado bastante por debajo de un humano o ha sido un servicio online caro.
Impresionante. Llevo años queriendo algo así. Ojalá Libby lo integrara para poder usarlo también con libros prestados.
También estaría bien que agregaran el enlace a la app en la App Store.
Voy a subir un cambio para incluirlo ya mismo en la documentación.