2026/10/20 Live Subtitle Baberuppa — The Latest Update Is Here! 🥒
01:55

(I have no idea what I’m doing.)
For those who understand the sacred principle of “Use at Your Own Risk,” you can skip the wall of text and grab the usual files at the very bottom. d(・Θ・。)ネッ
I’m famous for talking way too much, so honestly, copying this into an AI chatbot and asking it to summarize everything is probably the smarter move.
Welcome to the future. ┌┛┌┛ズコ!
(o’Θ’o)ノ)) Hey there! It’s your friendly neighborhood kappa! 🥒
Somehow, I ended up revisiting a low-CPU/GPU-load multilingual subtitle translation project I started about half a year ago.
And, well… I may have spent more time tinkering with it than actually playing games. ( ・Θ・).;’.、ブッ
It feels like natural disasters are becoming more frequent...
Coincidence? Probably. o(`・Θ・´)o
🎙️ The trick: choosing the right tools
I discovered that I could use ReazonSpeech K2, which is particularly good at recognizing Japanese speech:
https://github.com/reazon-research/ReazonSpeech
It runs locally on the CPU, using only a small amount of processing power, to recognize Japanese speech. Then I send the recognized text to:
@cf/google/gemma-4-26b-a4b-it
…to translate it into English or other languages.
At a usage rate that works for me, I can leave it running all day without worrying too much about running out of translation capacity.
(´・Θ・`) Huh? But is the quality any good?
ヾノ'Θ'o Actually, yes! The results are pretty nice.
At least, that’s been my experience with this combination.
On the other hand, when translating English speech into Japanese, faster-whisper can work surprisingly well, even with the tiny.en model.
The key takeaway? Choosing the right combination of tools makes a huge difference.
There are so many models and projects out there. The real challenge is figuring out which ones work well together to achieve low resource usage without sacrificing too much accuracy.
I did some rather… informal research and put together a combination that works nicely for me.
And that’s how Baberuppa was born! 🥒
🌍 Let’s knock down those language barriers!
I originally built this because I wanted to keep CPU and GPU usage as close to zero as possible.
And with this version, GPU usage is still practically zero.
Actually, a version that pushes even more of the workload to Cloudflare to keep both CPU and GPU usage close to zero has been available for quite a while. The trade-off is that cloud-based speech recognition also consumes Cloudflare resources.
🎮 Who is this for?
I can imagine English speakers using it to casually follow Japanese news, anime, streams, and other content in real time.
But the main target is streamers who want subtitles without putting much load on their gaming PC.
And, honestly, when I see streamers struggling with tools that perform worse than something a random kappa can throw together, I can’t help wondering whether they got sold some overpriced tech miracle. (¬Θ¬)
I’m not claiming this is a professional, studio-grade subtitle system, of course. If you need polished, production-quality results, you can always throw money at the problem and hire actual engineers.
I’m just trying to make something useful that works well enough in real-world situations.
🔀 Multiple languages? There’s an Auto mode!
There’s an Auto mode for situations where people switch between languages.
However, automatic language detection isn’t particularly reliable for Japanese in my experience.
If you’re going to use Auto mode, the Base model may be a better choice.
It uses slightly more CPU resources, but can be worth trying when language detection matters.
📚 What about terminology dictionaries?
Some games and anime have a ton of proper nouns, so I added an optional feature to generate and assign terminology dictionaries.
The idea is to reduce translation mistakes involving character names, game-specific terms, and other specialized vocabulary.
But honestly?
For ordinary conversations and streams, I often find that I can get by just fine without a dictionary.
Unless you’re dealing with highly specialized technical content or a game full of obscure terminology, you may not need one at all.
That’s why it’s optional.
⚠️ A little warning before you use it
Some games have anti-cheat systems or terms of service that restrict certain translation tools or overlays.
I can’t guarantee that using Baberuppa is permitted in every game.
Check the rules of the game you’re playing before using it, especially if it has anti-cheat software.
Don’t let a handy subtitle tool ruin your day!
🖥️ Voice in the background music? Uh-oh.
One annoying problem is music with vocals.
Baberuppa may recognize song lyrics as speech and try to translate them, which can make a mess of your subtitles.
The default settings are tuned for ordinary conversation and streaming speech, not singing.
If you want to experiment, check the VAD section in config.yaml, especially:
speech_start_threshold
- Lower values make it easier to detect quieter speech, but may also pick up more background noise.
- Higher values make detection more selective, but may miss quieter speech.
Adjust it to suit your environment and what you want to capture.
And yes, if the translation service gets badly backed up, the software can skip some translations to recover instead of endlessly accumulating lag.
You may see missing subtitles during those periods, though.
🤬 A note about the built-in NG-word filters
There are filters for some Japanese and English words that may be unsuitable for streaming.
The English list can be a little overzealous because some short words have perfectly innocent meanings in other contexts.
I know. It’s annoying.
If the filters are too aggressive for your use case, you can adjust them yourself. Just remember that weakening the filters may also increase the risk of inappropriate words appearing in your subtitles.
🛡️ What about Cloudflare Guardrails?
Cloudflare AI Gateway has optional guardrail features, but I don’t currently recommend enabling them for this project without checking the latest model support, language coverage, latency, and additional usage costs.
If Cloudflare improves the available moderation models, I’ll reconsider.
For now, don’t assume that any automated filter or AI safety layer can guarantee that every subtitle will be suitable for broadcasting.
☁️ The one weakness I can’t fix
Cloudflare outages.
When Cloudflare has problems, there’s only so much I can do from my side.
(∩´Θ`)∩ It's over!
(´・Θ・`) Ehh...
|θ・`) *sad kappa noises*
Normally, the subtitles run smoothly. But when the cloud service has an outage or unusually high latency, translations can slow down or get skipped.
That’s the trade-off of relying on a cloud translation service.
If you need to push CPU and GPU usage as close to zero as possible, the more cloud-dependent version may be worth considering. Just remember that cloud-based speech recognition also consumes usage quota, so check the current Cloudflare pricing and limits.
📖 Documentation and licenses
There’s a Japanese manual available as well.
I try to keep the documentation accurate, but sometimes AI assistants confidently write incorrect license information. So, while I hope everything is correct this time, please verify third-party licenses and model terms before redistribution or commercial use.
The project is intended to be useful, not to replace checking the actual licenses.
🥒 That’s Baberuppa!
A multilingual real-time subtitle tool built by a kappa who wanted to play games without turning the PC into a space heater.
It’s not perfect, and it won’t magically eliminate every language barrier.
But if it helps you follow a stream, understand a conversation, or make gaming more accessible without putting much load on your GPU, then I’m happy.
Thanks for checking it out!
(o’Θ’o)ノ)) See you around, and have fun!
(´・Θ・`)ゞ Kappa out!
Downloads and project files are available below.
Use at your own risk, check the rules of the software and games you use, and have fun! 🥒
コメント