About this project

RTranslator is an Android app for real-time translation that runs entirely on the device, without sending data to external servers. It is described as almost fully open source, with the project noting that some external components carry less permissive licenses. Main modes: - Conversation mode: two or more phones running the app connect to each other. Speech is captured (phone microphone or Bluetooth headset), converted to text, sent to the other device, translated there, and spoken aloud through the other user's speaker or headset. This works in both directions and supports more than two participants in various combinations. - WalkieTalkie mode: designed for short exchanges such as asking directions or talking to a shop assistant. It works with a single phone, listening in two selectable languages at once, detecting which language is spoken, translating, and speaking the result. Users talk in turns; Bluetooth headsets are not supported in this mode. - Text translation mode: a conventional text translator, with speak and copy buttons added in version 2.1. The app can keep working in the background, including when the phone is on standby or other apps are in use, though the README notes that some phones restrict background power and that keeping the app open may be preferable. Models and technology: Version 2.x uses Meta's NLLB (NLLB-Distilled-600M with KV cache) for translation and OpenAI's Whisper (Whisper-Small-244M with KV cache) for speech recognition, both converted to ONNX and quantized to int8 with some weights excluded to limit quality loss. The README reports optimizations reducing NLLB RAM use from 2.5 GB to 1.3 GB and execution time for 75 tokens from 8s to 2s, and Whisper RAM from 1.4 GB to 0.9 GB with execution time for 11s of audio from 1.9s to 1.6s. A lower-memory Whisper configuration using about 0.5 GB is used on phones with less than 8 GB of RAM. Version 3.0 beta replaces NLLB with a choice among Mozilla Bergamot models, Madlad 400 3B, and HY-MT 1.5 1.8B, and replaces MLKit with open-source alternatives (FastText and Lingua), making the app fully open source. It also adds techniques such as beam search, multilingual dictionaries and Tatoeba integration. A self-hosted web version for text translation using Mozilla models is planned. Other external components listed include BluetoothCommunicator and GalleryImageSelector (both open source by the same author), OnnxRuntime, and SentencePiece. MLKit was used in version 2.x for language identification in WalkieTalkie mode. Languages: the main supported set includes Arabic, Bulgarian, Catalan, Chinese, Croatian, Czech, Danish, Dutch, English, Finnish, French, Galician, German, Greek, Italian, Japanese, Korean, Macedonian, Polish, Portuguese, Romanian, Russian, Slovak, Spanish, Swedish, Tamil, Thai, Turkish, Ukrainian, Urdu and Vietnamese. From version 2.1, a "Support low quality languages" setting adds many more languages with lower translation and speech recognition quality. Text-to-speech uses the phone's system TTS, with Google TTS recommended. Requirements and installation: the README states at least 6 GB of RAM is needed to avoid crashes, plus a reasonably fast CPU. The APK is downloaded from GitHub releases; on first launch the app downloads about 1.2 GB of models, with a manual sideloading guide for regions where GitHub is slow. Version 1.0 is offered for weaker phones but relies on Google APIs and is not free. Privacy: the README states the app collects no personal data and that the author operates no server. The project is ad-free and funded by donations, with version 3.0 supported by the NGI Mobifree Fund. Known issues include occasional Bluetooth connection drops, and the app is described as still in beta.