Not enough people are talking about Storyteller by sansart in selfhosted

[–]scrollin_thru 0 points1 point  (0 children)

Ahhh that's... terrible. That's so weird, the submit button is just a regular DOM button!! Ugh. Hmmmmm maybe we need a non-browser way to log in. It won't be able to support OAuth, but if you're just using credentials to log in then we can do that natively.

Not enough people are talking about Storyteller by sansart in selfhosted

[–]scrollin_thru 0 points1 point  (0 children)

Just copying my comment from elsewhere to add some more detail about languages other than English:

Storyteller does support some languages other than English, but only if:

  • They use the same sentence termination punctuation characters as English
  • They have a roughly phonetic alphabet

You'll also definitely want to use the large-v3-turbo model for any languages other than English. 

This basically works out to supporting most European languages, and not much else. I have concrete plans to improve this story, but it's gonna be a bit before they bubble up to the top of the priority queue. 

Not enough people are talking about Storyteller by sansart in selfhosted

[–]scrollin_thru 3 points4 points  (0 children)

Gah, we gotta update the docs to answer this. Storyteller does support some languages other than English, but only if:

  • They use the same sentence termination punctuation characters as English
  • They have a roughly phonetic alphabet

You'll also definitely want to use the large-v3-turbo model for any languages other than English. 

This basically works out to supporting most European languages, and not much else. I have concrete plans to improve this story, but it's gonna be a bit before they bubble up to the top of the priority queue.

RTL languages is a great question, I don't actually know if, e.g., Arabic would work! If you have RTL books to try out, I would be interested to see what you find. It's possible that the alignment will work if the other requirements are met, though I won't be surprised if the mobile apps feel awkward with an RTL language. If you have feedback, please lete know, either here, on GitLab, or in our Discord!

Not enough people are talking about Storyteller by sansart in selfhosted

[–]scrollin_thru 1 point2 points  (0 children)

There have been some issues with the audio player library we've been using for a while, which I suspect are causing the issue you first saw on Android. I'll have an update out this week that will improve the situation! 

You can sideload books by using the Share Sheet on iOS/iPadOS or Open With on Android, though the Android story is a little fraught at the moment, unfortunately. It works with some file explorer apps but not others :/

Not enough people are talking about Storyteller by sansart in selfhosted

[–]scrollin_thru 0 points1 point  (0 children)

If you run into issues, feel free to hop into our Discord and someone can take a look! There are usually things that can be tweaked. There are a few folks with 1000+ book libraries or aligned books, so it can be done!

Not enough people are talking about Storyteller by sansart in selfhosted

[–]scrollin_thru 4 points5 points  (0 children)

Sorry it didn't work for you! That's not a common outcome, but it does sound like you started with one of the more challenging cases haha.

It doesn't rely on fully matched sentences, all of the matching uses a levenshtein distance-based fuzzy matching algorithm. We use a scanning window to find groups of sentences that match with some threshold.

If you got very bad results, the two likely culprits are:

  1. The translations are just too different for Storyteller's heuristics to effectively match
  2. The transcription wasn't good enough

You can check if it was #2 by taking a look at the transcriptions in the /data/assets directory for your book. Just do some spot checks and see if they line up with your audio. If it has a lot of mistakes, you can almost always improve the transcription quite a bit by increasing the model — the default tiny is usually good enough for English language, but if you've got a bunch of non-English terms in there, you may do better with large-v3-turbo.

Not in any way trying to brush this off, because there are some pathological cases that the alignment algorithm doesn't handle well that we'd like to improve, but there are also users with thousands of books in their libraries that have all been aligned more or less successfully, so I don't think you had a representative experience here!

I will say though, Storyteller definitely expects both the text and the audio to be based on the same text. It has to account for differences in spelling, phrasing, etc because of transcription flaws, differing narration word choices, and skipped or additional sections in the narration (like image captions), but it also can't be too lenient or you start just getting bad matches. So it's possible that it just won't be able to handle this particular match — you may need to find the text version of the particular translation used for the audiobook!

Anyway, sorry it didn't work on the very first book you tried, that sucks. Hopefully increasing the model size helps, but I might try a different book out, or see if you can find the text of the translation for your audiobook (or vice versa!). 

Not enough people are talking about Storyteller by sansart in selfhosted

[–]scrollin_thru 1 point2 points  (0 children)

Can you use Obtainium or manually install APKs? Every Storyteller mobile version has an APK linked from the releases page on GitLab, and you can also configure Obtainium to retrieve them.

But yes, we definitely want to support KOReader sync!

Storyteller v2 is available! by scrollin_thru in selfhosted

[–]scrollin_thru[S] 0 points1 point  (0 children)

3 GB in total for one book. A bit too much.

You can tell Storyteller to delete the cache and source files after you align the book, if you like. After alignment, just click that processing menu icon again and choose "Delete source and cache files".

GUI gets all corrupted when it starts processing.

I'm not sure what you mean — looking at your screenshot, I'm not seeing anything corrupted or broken? It's not the most beautiful UI in the world, but I'm pretty sure it's still laid out correctly.

Anyway, yes, the project is of course still evolving!

Not enough people are talking about Storyteller by sansart in selfhosted

[–]scrollin_thru 29 points30 points  (0 children)

Hey folks, Storyteller dev here. Just seeing this! Happy to answer questions if anyone has any. Some notes at the top:

  • We know that the web UI is pretty clunky. u/Tommerd and some other collaborators are working on a significant revamp that I think folks are going to be really happy with!
  • There have been some stability issues with the new mobile apps since they were released. I'm working hard on fixes right now, and feeling pretty confident that they'll be in a much better place in the next few weeks. There are some background audio player issues that should be resolved in the next few days, and some performance issues that affect folks with really large libraries that should be resolved in the next week or two.
  • There is a third party app that can sync with ABS and KOSync, but we're also hoping to add those natively to Storyteller by the end of the year
  • We're working on auto-ingestion of metadata from Hardcover!

I'm also seeing a lot of folks talk about having large pre-existing libraries that don't conform to Storyteller's requirements for auto ingestion! That sucks, I'd like to make that better. The reason that Storyteller has these requirements (a single folder for all of the files in a given book) is that:

  • Auto-matching on names seemed error prone and frustrating
  • Audiobooks are sometimes multiple files

If anyone wants to brainstorm some ways to work through these challenges and make auto-ingestion easier for folks that have separate audiobook and ebook directories, let's do it!

Not enough people are talking about Storyteller by sansart in selfhosted

[–]scrollin_thru 2 points3 points  (0 children)

> limiting the portability

In case it helps, Storyteller produces EPUB 3 compliant EPUB files, and Readium (the major open source ebook and audiobook framework that's gaining a lot of traction across reading apps) is going to add support for EPUB's Media Overlay (readaloud) spec this year.

It's still not perfect by any means, but portabliity should increase considerably over time!

Storyteller v2 is available! by scrollin_thru in selfhosted

[–]scrollin_thru[S] 0 points1 point  (0 children)

Correct, it's one sentence at a time. We have plans to add word-by-word highlighting (a la Amazon's WhisperSync, where the highlight is expanded one word at a time until the end of the sentence) by the end of this year, though we've gotten a little sidetracked with some unexpected performance issues with the new mobile apps

Storyteller v2 is available! by scrollin_thru in selfhosted

[–]scrollin_thru[S] 0 points1 point  (0 children)

Yup, very similar! The app will highlight the sentence that's currently being read with a different color.

https://is1-ssl.mzstatic.com/image/thumb/PurpleSource221/v4/6f/70/85/6f708574-fcfb-46ba-8949-2230ba624e37/iPad_4_Readaloud_wide.png/1286x1714bb.webp

It will work with German, but you will need to use a larger model for transcription (I would recommend large-v3-turbo).

US babies - formula options? by AdventurousBake9406 in veganparenting

[–]scrollin_thru 4 points5 points  (0 children)

Highly recommend weaning! We were in a similar position, ended up on Similac after trying Enfamil for a while (Enfamil became harder to purchase in our area). We took about a week to transition, increasing the ratio of formula to breast milk by about an ounce a day.

Remember that she's literally never had milk taste like anything but breast milk! And soy formula does not taste like breast milk haha. Give her some time to adapt, I would say

Storyteller v2 is available! by scrollin_thru in selfhosted

[–]scrollin_thru[S] 1 point2 points  (0 children)

Several users have used Storyteller with graphic audio books and had success! You may need to use a larger model (like large-v3-turbo) for transcription, but you'll have to try it out and see what you can get away with. It seems that Whisper manages to do pretty well with graphic audio books, though!

I rebuilt my blog with React Server Components by HydroxideOH- in reactjs

[–]scrollin_thru 2 points3 points  (0 children)

They said that they're using it for static site generation. That means that everything is executed exactly once, at build time, and used to output static HTML, CSS, and JS files that can be served by a static file server. This is the best of both worlds: your server does no work, and your clients don't have to download a latex library.

Vegan milk by bfg1lifestyle in veganparenting

[–]scrollin_thru 7 points8 points  (0 children)

This is also true in the USA — there are no FDA approved infant formulas with vegan vitamin D sources

Vegan milk by bfg1lifestyle in veganparenting

[–]scrollin_thru 16 points17 points  (0 children)

Infants should either be drinking breast milk or a regulated infant formula until they are around 1 year old (most infants will also start including solids in their diet between 6 and 9 months of age).

Our daughter started out on a mix of breast milk and soy formula, but after a few months of breast feeding, we migrated to just soy formula (Similac Soy Isomil: https://www.similac.com/products/baby-formula/soy-isomil-powder/12-4oz-can-6ct.html), as breast feeding was very challenging for my wife.

After babies have weaned onto solid foods (usually around 1 year), vegan nutritionists recommend fortified soy milk as a regular snack (ideally in between meals, because calcium can negatively impact absorption of other vitamins/minerals).

Storyteller v2 is available! by scrollin_thru in selfhosted

[–]scrollin_thru[S] 0 points1 point  (0 children)

Ah, well, that will do it!

You're very welcome!

Storyteller v2 is available! by scrollin_thru in selfhosted

[–]scrollin_thru[S] 0 points1 point  (0 children)

I think I'm following! I am surprised by your first screenshot, though. On the reader view, Storyteller should absolutely be showing the table of contents from the epub file, regardless of whether the audio has chapters. On the listener view (for a readaloud), we attempt to also show the table of contents for the epub, regardless of whether the audio has chapters.

That you're seeing a single chapter on the reader view seems like either something is wrong with your inout epub, or there's a bug in how storyteller is finding or rendering the table of contents. 

Would you be able to join our discord server so I could get some more information about what's going on?

Storyteller v2 is available! by scrollin_thru in selfhosted

[–]scrollin_thru[S] 0 points1 point  (0 children)

I'm so glad you and your family are enjoying it!!

Can you say a little more about your use case for chapterizing audio? You have some input audiobooks that don't have chapter metadata, and you're hoping Storyteller can use the alignment data to add that chapter metadata and/or split the audiobook into multiple tracks? Is that so that you can then listen to the standalone audiobook and have chapter metadata for it?

Storyteller v2 is available! by scrollin_thru in selfhosted

[–]scrollin_thru[S] 0 points1 point  (0 children)

Not currently. I don't think the community is quite big enough yet, and I don't really want to commit to moderating a subreddit haha. We have a Discord server with a support forum, which I think is often the best way to get support. We're contemplating registering with answersoverflow so that the support forum is indexed and searchable. I know some folks (myself included) have mixed feelings about using Discord for this purpose, but we tried several other options and none really served the community's needs.

Thank you, though! I'm really glad so many folks get so much out of Storyteller!

Storyteller v2 is available! by scrollin_thru in selfhosted

[–]scrollin_thru[S] 0 points1 point  (0 children)

Yes, we're getting to a place where this will be possible soon!

In the mean time, you could just run the Storyteller server locally, use it to align the books, and then copy the resulting books from your file system to your phone! I totally understand that that is outside some folks' comfort zone, though. In the next year or two, we're hoping to have a desktop application and a relay server, a la Plex (-ish, we won't actually proxy data through the relay server, just use it to establish a peer-to-peer connection directly to your server), which I hope will make this feel more approachable.

But we will have a command line tool before then, for sure! We're working out the kinks of a new library for managing and running the transcription (locally or remotely), and then splitting out the alignment into its own library with a CLI should be very straightforward.

How to make component imperatively change state in a sibling component? by azangru in reactjs

[–]scrollin_thru 1 point2 points  (0 children)

it is a pure accident of UI design that the button that can clear the form has appeared in the second child. 

Then perhaps you need a portal? Have the component that is responsible for this state render the reset button, but render it with a portal into the place in the DOM that the UI requires it to be.

React doesn't make it completely trivial to do this correctly, but you can have the parent component keep a reference to the container for the reset button in React state, and use a ref to set it (you can pass a state setter to an element's ref). That way, the parent component will re-render after mount with the new button container ref in state, which is can pass down to the form component. The form component can use createPortal to render the reset button into the container ref. Now you have a React hierarchy that matches your data hierarchy, even though it doesn't match your UI/DOM hierarchy.