RTranslator is a (nearly) open-source, free, offline real-time translation app designed for Android. Its core feature is that all AI models run locally, with no need to upload data to a server, thereby protecting user privacy. The app is free and ad-free.
Main Feature Modes
Conversation mode
This is RTranslator's main feature. In this mode, you can establish a connection with another phone using the app. After the other party accepts the connection request, the conversation flow is as follows: when you speak, your phone (or a connected Bluetooth headset) captures the audio; the captured audio is converted to text and sent to the conversation partner's phone; the conversation partner's phone translates the received text into their language; the other phone converts the translated text into audio and plays it from the speaker (or the other party's connected Bluetooth headset). The entire process takes place in both directions. Each user can connect multiple phones, so conversations with more than two people can be supported, with translation in any combination.
WalkieTalkie mode
This mode is designed for quick conversations, such as asking for directions on the street or talking to a store clerk. It translates only between two people, does not support Bluetooth headsets, and requires speaking in turns. It is not true simultaneous interpretation, but it can work with just one phone. In this mode, the smartphone microphone listens to both languages at the same time (selectable in the WalkieTalkie mode interface). The app detects which language the conversation partner is speaking, translates the audio into the other language, converts the text into audio, and then plays it from the phone speaker. When TTS playback is finished, listening automatically resumes.
Text translation mode
This is a classic text translator, but always useful.
Technical Foundation
RTranslator uses Meta's NLLB for translation and OpenAI's Whisper for speech recognition. Both are (nearly) open-source and state-of-the-art AI models, with excellent quality, and run directly on the phone, ensuring absolute privacy and the possibility of offline use, without loss of quality. In addition, RTranslator can work even in the background, when the phone is on standby, or when using other apps (only in Conversation mode or WalkieTalkie mode). However, some phones restrict background power consumption, so in this case it is best to keep the app open and the screen on.
Installation and First Use
To install the app, from https://github.com/niedev/RTranslator/releases/ Download the latest version of the APK file and install it (ignore the other files, those files will be downloaded automatically by the app on first launch). On first launch, RTranslator will automatically download the translation and speech recognition models (1.2GB), and once the download is complete you can start translating. The initial download will fetch the models from GitHub, but in some regions GitHub is slow; users experiencing such problems can download the models separately from a computer and manually place them into the app according to the guide.
Version 3.0 Beta Update
Version 3.0 of RTranslator is currently funded by the NGI Mobifree Fund (established by NLnet). The main changes in this version include: the NLLB translation model has been replaced with optional models: the Mozilla Bergamot model, Madlad 400 3B, and HY-MT 1.5 1.8B. All of these models have better translation quality than NLLB 54B, similar to Google Translate, with HY-MT 1.5 1.8B scoring far higher than Google Translate, similar to DeepSeek v3 and Gemini 3.0. MLKit has been replaced with open-source alternatives (FastText and Lingua), making RTranslator 100% open source. Various techniques for improving translation quality have also been added, including: beam search, multilingual dictionaries, Tatoeba integration, etc. The final version will be released on the Play Store and F-Droid. A self-hosted web version for text translation using the Mozilla model will be provided in the future (possibly around November). The first beta version of this release has been published.
New in Version 2.1
New GUI! Designed by Chiara Chindamo. Read-aloud and copy buttons have been added to text translation mode. An option to manually control the microphone has been added to walkie-talkie mode. An option to use low-quality languages has been added. Some bugs have been fixed. See here for the full changelog.
Performance Requirements
In order to use the app without crashes, the phone needs at least 6GB of RAM, and a sufficiently fast CPU to achieve sufficiently good execution times. If your phone is fairly weak (or you want maximum speed), you can always use RTranslator version 1.0 (but since it uses Google APIs, it is not free and requires some initial setup).
Supported languages
The supported languages are as follows: 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, Vietnamese. If your language is not in the list, starting from RTranslator version 2.1, you can go to settings and enable "support low-quality languages" to add the following languages (lower translation and speech recognition quality): Afrikaans, Akan (text only), Amharic, Assamese, Bambara (text only), Bengali, Bashkir, Basque, Belarusian, Bosnian, Dzongkha (text only), Esperanto (text only), Estonian, Ewe (text only), Faroese, Fijian (text only), Georgian, Guarani (text only), Gujarati, Hausa, Hebrew, Hindi, Hungarian, Irish (text only), Javanese (text only), Kannada, Kashmiri (text only), Kazakh, Kikuyu (text only), Kinyarwanda (text only), Korean, Kyrgyz (text only), Lao, Limburgish (text only), Lingala, Lithuanian, Luxembourgish, Macedonian, Tagalog (text only), Tibetan.
To speak, RTranslator uses your phone's system TTS, so the latter's quality and supported languages depend on your phone's system TTS. The supported languages listed above are all compatible with Google TTS, which is the recommended TTS (although you can use any TTS you want). To change the system TTS (and therefore the TTS used by RTranslator), download the TTS you want to use from the Play Store or your preferred source, then open RTranslator, open its settings (top right), in the "Output" section tap "Text to speech", at this point the system settings will open, where you can select your preferred system TTS engine (among the installed engines), at this point, if you changed the preferred engine, restart RTranslator to apply the changes (close it from the recent apps list, then reopen it). Note: if afterwards the TTS does not work, you can clear the cache of RTranslator and the TTS from the Android app settings, restart your phone and try again.
Privacy
Privacyis a fundamental right. Therefore RTranslator does not collect any personal data (there is not even a server). For more information, please read the privacy policy (currently the same as RTranslator 1.0's privacy policy, but it will be updated in the future).
Libraries and models
RTranslator's code is completely open source, but some of the external libraries it uses have less permissive licenses; below are all the external libraries used by the app (with an indication of their licenses):
- BluetoothCommunicator (open source): used for Bluetooth LE communication between devices.
- GalleryImageSelector (open source): used to select and crop profile pictures from the gallery.
- OnnxRuntime (open source): used as the acceleration engine for the AI models.
- SentencePiece (open source): used for tokenization of the NLLB input text.
- Ml Kit (closed source): used for language identification in walkie-talkie mode.
And the following AI models:
- NLLB (open source, but non-commercial use only): the model used is NLLB-Distilled-600M with KV cache.
- Whisper (open source): the model used is Whisper-Small-244M with KV cache.
Model performance
The author converted both NLLB and Whisper to onnx format and performed int8 quantization (excluding some weights to ensure almost zero quality loss), also separated certain parts of the models to reduce RAM consumption (if not separated, some weights would be copied at runtime, consuming more RAM than expected), and made other optimizations to reduce execution time. Note: RTranslator's Whisper model can also consume 0.5 GB RAM, but with an execution time of 2.1 seconds (this mode is for phones with less than 8 GB RAM).
This is an open-source and completely ad-free app, and the author does not make money from it. Therefore, if you like this app and want to express your thanks and support the project, you can donate via the donate button (any amount is welcome).
Related external projects
You can check out these excellent projects that use RTranslator's code:
If you want to contribute to this project, first of all, thank you. If you don't know where to start, please check the to-do list, and in any case, before starting, please read the contribution guidelines.
Bugs and issues
Sometimes the Bluetooth connection dropsoff. If you find any bugs, please report them by opening an issue or sending an email to contact.niedev@gmail.com.
Enjoy your simultaneous interpreter.