Show HN: I made an open source and local translation app (github.com)
A few years ago, right after high school, I decided to try to make a simultaneous translation app for Android as a side project, it took longer than expected (about 2 years) and I had to make a lot of compromises (I had to use Google's API and therefore make users use a developer key because at the time there were no free solutions for speech recognition and translation that had good quality). At the end of university, I decided to pick it up again and finally, using OpenAi's Whisper for speech recognition and Meta's NLLB for translation (with both running locally on the phone), I managed to make it free and totally open-source (as it was meant to be from the beginning).
The app is still in beta, so I would love your feedback.
57 comments
[ 3.1 ms ] story [ 115 ms ] threadThe first translation I tried was incorrect:
"Bonjour" (french) -> "- How are you ?" (english)
I suppose that's the limitation of local models.
Great job getting it to a functional beta though. I think the idea is cool, it just needs some polishing.
> 6. No Discrimination Against Fields of Endeavor
>
> The license must not restrict anyone from making use of the program in a specific field of endeavor. For example, it may not restrict the program from being used in a business, or from being used for genetic research.
This app looks really cool and I'm glad OP made it. I'm just asking that the inaccurate "open source" descriptor be removed. Don't let my comment discourage you.
[1] https://en.wikipedia.org/wiki/Source-available_software
Thank you for building this, I have been using a web interface connected to a local server for inference but the latency was about 1 second, too much for my taste!
Just bookmarked on Github. Any chance to launch it for iOS as well?
I’m a believer in native software (I write native software). I think it results in much higher Quality user experience, than hybrid development.
There’s a reason that it’s not super-popular, though. It’s a fair bit more expensive than hybrid approaches, and generally requires a higher skill level, as well. Most companies find that hybrid approaches are “good enough,” and they make much better margins.
That said, you could probably test it, using the Xcode Simulator. It’s gotten pretty good with I/O, lately. Bluetooth still requires a physical device, but most of the stuff could probably be tested fine, if you used a modular approach (my preferred methodology).
I did do an actual video tutorial on it for try!Swift[1].
[0] https://littlegreenviper.com/series/bluetooth/
[1] https://github.com/ChrisMarshallNY/ITCB-master
If possible, it would be good to include a list of devices that you know performance is good. We can all understand that most flagship mobiles will run it smoothly, but what about the average user?
"...to be able to use the app without the risk of crashing you need a phone with at least 6GB of RAM, and to have a good enough execution time you need a phone with a fast enough CPU."
> RTranslator is an open-source (almost), free, and offline real-time translation app for Android.
change to:
> RTranslator is an (almost) open-source, free, and offline real-time translation app for Android.
Reading it the first way, it's possible to misunderstand and think it's almost (but not completely) free, rather than almost (but not completely) open-source
Joking aside, this will be very beneficial software if it can work seamlessly in real-time for countries like Japan who can't speak English, and France who won't speak English.
[1] Star Trek’s Translator Technology, Explained:
https://gamerant.com/star-trek-translator-technology-explain...
Android: https://play.google.com/store/apps/details?id=org.evergreenl... iOS: https://apps.apple.com/app/3po/id6503194251
p.s. I contemplated calling it Sato, ended up using 3PO as the name. :-)
Your initial fix of not disabling the entire app's functionality if it can't get TTS working sounds like a good one.
> RTranslator in any case collects and processes data that will then be sent to Google, such as: audio, the transcription of which is transmitted at a later time via bluetooth to the phone with which you are communicating, and the transcription of the audio received by the other user, to carry out the translation.
— https://github.com/niedev/RTranslator/blob/v2.00/privacy/Pri...
Just for the reference, what I have to face with: "Sizinde Sular kokuyormu çok kötü koku var baneda mutfakta"
NLLB gives: "You smell like water. It smells bad in the kitchen."
The right translation is "Do your waters also smell? There is a very bad odor in my kitchen too."
"Bu bina elektronik bir sistem var dış kapı -otomatik- uydu -asansör elektrik yoksa hiç biri çalışmaz yanlış sigorta kapatılıp açılırsa böyle sıkıntı olur"
NLLB: "This building has an electronic system. An external door. An automatic satellite. An electric elevator. If none of them are working, it's a problem."
Should look like "This building has an electronic system with an automatic exterior door, satellite, and elevator. If there is no electricity, none of them work. If the wrong fuse is turned off and on, such problems occur."
They have regular punctuation marks like dots, commas, questions, and exclamations, but, for some reason, they don't use these in chats. I don't know why, but it hardens translations a lot.
I bookmarked/starred the repo to track the updates :) Just to clarify - no pressure, obligations, expectations, etc. Just my feedback with couple of samples, hope that helps.