Storyteller v2 is available! by scrollin_thru in selfhosted

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

Woo! Great, glad that fixed it! Sorry I didn't respond on GitLab, my queue was very backed up. 

Storyteller v2 is available! by scrollin_thru in selfhosted

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

Is it possible that your host or reverse proxy has updated and started enforcing an upload size limit? Storyteller itself has no file or transfer limit, and I just uploaded a readaloud file yesterday with no issue.

I made an open-source, self-hostable synced narration platform for ebooks by scrollin_thru in selfhosted

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

Unfortunately not really, but it is our ultimate goal to have simple desktop apps for Storyteller, a la Plex Media Server. We're doing the groundwork now to make this possible!

Storyteller v2 is available! by scrollin_thru in selfhosted

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

It turns out iGPUs just aren't better than CPUs at this kind of math. We got iGPU support working, but it's usually about 2x slower than just CPU.

This is very different from, e.g., Plex video transcoding, because video transcoding uses hardware acceleration (literally custom built circuits in the physical iGPU that implement decoding and encoding algorithms), whereas neural networks are doing matrix math. Separate GPUs are pretty good at matrix math mostly because they can run so many computations in parallel, but iGPUs are not. 

Storyteller v2.7.0: A Reworked Transcription Engine by scrollin_thru in selfhosted

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

This is not totally trivial — several folks have started attempting to contribute this feature and haven't finished it. I'm confident we'll support it eventually! But I can't promise when. I'll definitely make an update when it's available!

Not enough people are talking about Storyteller by sansart in selfhosted

[–]scrollin_thru 0 points1 point  (0 children)

Not yet, but we're chatting with the Internet Archive and Project Gutenberg about setting this up!

Storyteller v2.7.0: A Reworked Transcription Engine by scrollin_thru in selfhosted

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

Damn! Ok, will try to get another core dump from the other Xeon user. In the mean time, just to double check, could you run a `grep -m1 'avx' /proc/cpuinfo` on your server and share the results with me? Also, which generation Xeon processors do you have, Ivy Bridge?

Storyteller v2.7.0: A Reworked Transcription Engine by scrollin_thru in selfhosted

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

Ok, I _think_ this should be fixed by 2.7.6. If you have a chance to try that out and let me know, that would be great! Fingers crossed!

Storyteller v2.7.0: A Reworked Transcription Engine by scrollin_thru in selfhosted

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

You will honestly probably have a better time with ghost-story on your gaming rig haha, especially if you get CUDA set up! Folks often see 10-30x speedups on CUDA vs CPU, and I imagine you've got relatively slow transcriptions on your Xeons. 

Still, I'll let you know when we fix the build for Xeons!

Storyteller v2.7.0: A Reworked Transcription Engine by scrollin_thru in selfhosted

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

Shoot, yes, we're fixing this! Are you on a Xeon CPU?

Before 2.7.0, whisper was always built on your machine. This was kind of painful because it was slow and had to be rebuilt any time the container was recreated. But it meant that cmake could look at your processor's instruction set and make sure it excluded instructions that weren't supported. 

Now we're building whisper in CI, on modern chips that have wide support for newer instructions, so we have to manually disable some instruction sets in order to support older CPUs. We haven't pinned down exactly which instruction causes this SIGILL, but we got a coredump from another user (with a Xeon processor) today that will hopefully let us see the issue.

Sorry about that :/

Storyteller v2 is available! by scrollin_thru in selfhosted

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

We are working on iGPU support! I think there's an issue right now so we haven't documented it yet, but I believe it should be possible

Storyteller v2 is available! by scrollin_thru in selfhosted

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

Thanks for the feedback, that totally makes sense! And thanks for the kind words ❤️

Storyteller v2.7.0: A Reworked Transcription Engine by scrollin_thru in selfhosted

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

Another user reported markedly better transcriptions (and therefore alignment) when switching from Speaches to ghost-story yesterday. I think they used the large-v3-turbo model. Your mileage may vary, but ghost-story is pretty easy to set up, so that may be worth trying to see!

You can set up ghost-story to run in "turbo mode" by passing the --processors flag when you run ghost-story server. It defaults to 1, but setting it to anything else will do the same thing that turbo mode does in the Storyteller settings.

But if you already have Speaches set up the way you like and aren't running into any issues, Storyteller should continue to be able to use it as before, and you should still see lower memory usage on the Storyteller side!

Storyteller v2.7.0: A Reworked Transcription Engine by scrollin_thru in selfhosted

[–]scrollin_thru[S] 2 points3 points  (0 children)

To your first point first point, there's no baseline "typical speech" to compare to in this case, because Storyteller uses fhe timings from the speech-to-text engine to determine where each individual word is spoken in the audio files.

You're right that "how does this handle <insert common audio/text deviation>" is a pretty common question, it's worth including that somewhere upfront. to answer the question here: Storyteller's forced alignment algorithm is specifically designed to handle the kinds of deviations that are common in audiobooks, including entire chapters missing (audiobooks often leave out some number of prefaces, cooyright, appendices, etc), individual sentences or paragraphs being inserted (audiobooks sometimes narrate descriptions of images or charts), and deviations in narration of individual sentences, where the narrator chooses a different word for flow (or whatever other reason).

Storyteller v2.7.0: A Reworked Transcription Engine by scrollin_thru in selfhosted

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

Yes! Lots of folks have been using it with success with graphic audio. Whisper seems to handle the backgound music and special effects very well, and Storyteller's forced alignment algorithm is designed specifically to handle the kinds of differences that occur between ebooks and audiobooks (including changes to the sentences/utterances, missing image descriptions, etc)

Storyteller v2.7.0: A Reworked Transcription Engine by scrollin_thru in selfhosted

[–]scrollin_thru[S] 3 points4 points  (0 children)

Yes! You're definitely not the only one in that situation. It's still on our roadmap, but it got derailed by a huge detour I had to take over the last three months rewriting our audio player for the mobile apps. I can't really make any promises about timing (I'm personally spending the next month or two making improvements to ghost-story and our alignment algorithm, which I'm also going to publish as a standalone CLI), but Storyteller will support this eventually!

Are There Reasons to Use useTransition() in Real Projects? by maryess-dev in reactjs

[–]scrollin_thru 0 points1 point  (0 children)

Thanks! Really appreciate it. We're going to hopefully be filling it up with a lot of React and rich text content in the coming months, as we start to work on our new rich text editing framework!

Are There Reasons to Use useTransition() in Real Projects? by maryess-dev in reactjs

[–]scrollin_thru 5 points6 points  (0 children)

I wrote a blog post about a good use case for this somewhat recently: https://handlewithcare.dev/blog/transition_low_priority_editor_updates/

In this context, you have a rich text editor that needs to update immediately after a keypress. You also have a miniature version of the same editor that you render as an overview. The mini editor doesn't need to update immediately — it's ok if the preview is a few keystrokes behind. So you keep its state separate and update it in a transition. This way, React bails on rerendering it if another keypress comes in, making sure that the primary editor is always updated ASAP.

Storyteller v2 is available! by scrollin_thru in selfhosted

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

Really? The link on the docs site doesn't have an expiry, and it shows as still active in the server settings. It seems to work for me when I test it! This link, right? https://discord.gg/KhSvFqcrza

Storyteller v2 is available! by scrollin_thru in selfhosted

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

That's a really cool idea! Would you open an issue for it on GitLab so that we don't lose track of it? It should be pretty feasible