首次启动需联网下载 1.2GB 模型,GitHub 慢的地区需按 Sideloading 指南手动放入模型;语音合成依赖手机系统 TTS,建议装 Google TTS 并在设置中切换后重启应用;低于 6GB RAM 的手机可能崩溃,可改用 1.0 版本但需 Google API 且非免费。

RTranslator
niedevApache-2.0活跃维护在 Android 手机上本地跑 NLLB 模型的实时翻译 App,支持蓝牙耳机对话翻译,全程离线不联网也能用。
Open source real-time translation app for Android that runs locally
从 https://github.com/niedev/RTranslator/releases/ 下载最新 apk 并安装;首次启动会自动下载约 1.2GB 的翻译与语音识别模型需 Android 手机且至少 6GB RAM,CPU 需足够快以保证翻译速度;README 未提及 GPU 或显存要求,模型在手机本地运行。
安卓端离线实时翻译应用,模型跑在手机上,无需联网也能对话翻译
在 Android 手机上本地跑 NLLB 模型的实时翻译 App,支持蓝牙耳机对话翻译,全程离线不联网也能用。
核心能力
- 用 Whisper 做语音识别、NLLB 做翻译,模型全部本地推理
- Conversation 模式经蓝牙连接对方手机,双向实时传译
- WalkieTalkie 模式单机轮流说话,自动识别双方语言
- 支持后台运行,锁屏或用其他应用时仍可翻译
- 模型转 ONNX 并 int8 量化,拆分权重以降低内存占用
容易踩的坑
- 3.0.0-beta2RTranslator 3.0 beta 2pre-release2026-10-12 · 2026-10-12 16:11 UTC
查看更新说明
New Beta 2 changes:
- Improved Bluetooth stability for Conversation mode (however, it is no longer compatible with previous app versions)
- Improved accessibility (added TalkBack support and made some UI adjustments)
- Implemented full-screen view option for text and messages. As suggested in issue #206
- Implemented a Widget to directly start the WalkieTalkie mode, and an intent filter to give the possibility to start the app in WalkieTalkie mode for automation tools like Tasker. As suggested in discussion #161
- Added a search bar for the languages list
- Made some UI improvements to the messages and for the language list dialog
- Fixed some bugs, including #207
RTranslator version 3.0 changes:
Main changes:
- The NLLB translation model has been replaced with the option to choose between: Mozilla Bergamot models, Madlad 400 3B, and HY-MT 1.5 1.8B. All these models have better translation quality than NLLB 54B, similar to 2024's Google Translate, with HY-MT 1.5 1.8B having much better scores than Google Translate, similar to DeepSeek v3 and Gemini 3.0.
- MLKit has been replaced with open-source alternatives (FastText and Lingua) for language detection, making RTranslator 100% open source.
- Various techniques have been added to improve translation quality, including: better beam search, multilingual dictionaries (combination of Wiktionary, FreeDict and Apertium), Tatoeba integration, and more.
- Improved TTS for WalkieTalkie and Conversation mode: now each message has a button to start and stop the TTS for that message. (Thanks to @NikolaCavendish, PR #183).
- Implemented an audio queue for WalkieTalkie mode: now the mic is deactivated only during the TTS reproduction. So with TTS deactivated you can talk and translate continuously and even when it is activated, the TTS will start for all the new messages only after no speech is detected.
Other changes:
- Improved speech detection for the automatic mic in WalkieTalkie and Conversation mode with a mix of volume level (the old way) and a small neural network that detects voice activity (Silero VAD via Android VAD).
- Total rebuild of the download system, now based on PRDownloader, increased stability, added support for pause, improved notification.
- Improved Bluetooth stability for Conversation mode.
- Improved accessibility
- Added a description dialog before any permission request.
- Updated Android APIs to 36.
- Better code organization based on git submodules for external libraries.
Warning: This is a beta release, so it can have a lot of bugs! If you want a stable experience, you should use the latest stable version and wait for the final stable release of the 3.0 version (a few months from now).
This release is funded through the NGI Mobifree Fund, a fund established by NLnet. A special thanks goes to them!
If you also want to support this project yourself, you can buy me a coffee; it means a lot ❤️
- 3.0.0-beta1RTranslator 3.0 beta 1pre-release2026-08-26 · 2026-08-26 20:18 UTC
查看更新说明
Main changes:
- The NLLB translation model has been replaced with the option to choose between: Mozilla Bergamot models, Madlad 400 3B, and HY-MT 1.5 1.8B. All these models have better translation quality than NLLB 54B, similar to 2024's Google Translate, with HY-MT 1.5 1.8B having much better scores than Google Translate, similar to DeepSeek v3 and Gemini 3.0.
- MLKit has been replaced with open-source alternatives (FastText and Lingua) for language detection, making RTranslator 100% open source.
- Various techniques have been added to improve translation quality, including: better beam search, multilingual dictionaries (combination of Wiktionary, FreeDict and Apertium), Tatoeba integration, and more.
- Improved TTS for WalkieTalkie and Conversation mode: now each message has a button to start and stop the TTS for that message. (Thanks to @NikolaCavendish, PR #183).
- Implemented an audio queue for WalkieTalkie mode: now the mic is deactivated only during the TTS reproduction. So with TTS deactivated you can talk and translate continuously and even when it is activated, the TTS will start for all the new messages only after no speech is detected.
Other changes:
- Improved speech detection for the automatic mic in WalkieTalkie and Conversation mode with a mix of volume level (the old way) and a small neural network that detects voice activity (Silero VAD via Android VAD).
- Total rebuild of the download system, now based on PRDownloader, increased stability, added support for pause, improved notification.
- Improved Bluetooth stability for Conversation mode.
- Added a description dialog before any permission request.
- Updated Android APIs to 36.
- Better code organization based on git submodules for external libraries.
Warning: This is a beta release, so it can have a lot of bugs! If you want a stable experience, you should use the latest stable version and wait for the final stable release of the 3.0 version (a few months from now).
This release is funded through the NGI Mobifree Fund, a fund established by NLnet. A special thanks goes to them!
If you also want to support this project yourself, you can buy me a coffee; it means a lot ❤️
- 2.1.5RTranslator 2.1.5最新正式版2026-02-22 · 2026-02-22 11:37 UTC
What's new:
- Added a setting to show both transcription and translation in WalkieTalkie and Conversation mode (PR #128, made by @JedLee6)
- Fixed a bug where on Vivo phones, the audio recording wouldn't work (issue #155, thanks to @NikolaCavendish for the help with debugging) .
- 2.1.4RTranslator 2.1.42025-05-17 · 2025-05-17 12:57 UTC
查看更新说明
What's new:
- Added support to Khmer as low-quality language (thanks to @KevinChhin for pointing this out).
- Added beam search support as an option in the settings to improve the translation quality (only for the text translation mode).
- Added a button to cancel input and output text in text translation mode.
- 2.1.3RTranslator 2.1.32025-03-23 · 2025-03-23 11:24 UTC
查看更新说明
Added support for Persian language in the low-quality languages. (thanks to @Fouladi-K for pointing this out in the issue #109)
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
RTranslator is an (almost) open-source, free, and offline real-time translation app for Android.
Connect to someone who has the app, connect Bluetooth headphones, put the phone in your pocket and you can have a conversation as if the other person spoke your language.
The Conversation mode is the main feature of RTranslator. In this mode, you can connect with another phone that uses this app. If the user accepts your connection request:
-
When you talk, your phone (or the Bluetooth headset, if connected) will capture the audio.
-
The audio captured will be converted into text and sent to the interlocutor's phone.
-
The interlocutors' phone will translate the text received into his language.
-
The interlocutors' phone will convert the translated text into audio and will reproduce it from its speaker (or by the Bluetooth headset of the interlocutor if connected to his phone).
All this in both directions.
Each user can have more than one connected phone so that you can translate conversations between more than two people and in any combination.
If conversation mode is useful for having a long conversation with someone, this mode instead is designed for quick conversations, such as asking for information on the street or talking to a shop assistant.
This mode only translates conversations between two people, it doesn't work with Bluetooth headsets, and you have to talk in turns. It's not a real simultaneous translation, but it can work with only one phone.
In this mode, the smartphone microphone will listen in two languages (selectable in the same screen of the walkie talkie mode) simultaneously. The app will detect in which language the interlocutor is speaking, translate the audio into the other language, convert the text into audio, and then reproduce it from the phone speaker. When the TTS has finished, it will automatically resume listening.
This mode is just a classic text translator, but always useful.
RTranslator uses Meta's NLLB for translation and OpenAi's Whisper for speech recognition, both are (almost) open-source and state of the art AIs, have excellent quality and run directly on the phone, ensuring absolute privacy and the possibility of using RTranslator even offline without loss of quality.
Also, RTranslator works even in the background, with the phone on standby or when using other apps (only when you use Conversation or WalkieTalkie modes). However, some phones limit the power in the background so in that case it is better to avoid it and keep the app open with the screen on.
To install the app, download the latest version of the app apk file from https://github.com/niedev/RTranslator/releases/ and install it (ignore the other files, those will be downloaded automatically by the app on the first start).
On the first launch, RTranslator will automatically download the models for translation and speech recognition (1.2GB) and once done you can start translating.
The initial download will get the models from GitHub, however in some regions GitHub is very slow, those who have problems of this kind can download the models separately from a computer (or in general in whatever way they prefer) and insert them manually into the app following this guide.
If you have a GitHub account and want to be notified when a new release comes out you can do so by clicking, at the top of the page, on "Watch" -> "Custom" -> "Releases" -> "Apply".
The 3.0 version of RTranslator is currently funded through the NGI Mobifree Fund, a fund established by NLnet.
Main changes of this version:
- The NLLB translation model has been replaced with the option to choose between: Mozilla Bergamot models, Madlad 400 3B, and HY-MT 1.5 1.8B. All these models have better translation quality than NLLB 54B, similar to Google Translate, with HY-MT 1.5 1.8B having much better scores 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 have been added to improve translation quality, including: beam search, multilingual dictionaries, Tatoeba integration, and more.
- The final version of the app will be released on Play Store and F-Droid.
- A self-hosted web version of the app for text translation using Mozilla models will be made available in the future (probably around November).
The second beta of this version has been released; go check it here! 🚀
-
New GUI! Designed by Chiara Chindamo.
-
Added speak and copy buttons to the text translation mode.
-
Added the option to manually control the mics in WalkieTalkie mode.
-
Added the option to use low-quality languages.
-
Fixed some bugs.
For the full list of changes see here.
I have optimized the AI models a lot to minimize RAM consumption and execution time, despite this however 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.
If you have a pretty crappy phone (or if you want maximum speed) you can always use version 1.0 of RTranslator (but since it uses Google APIs it's not free and needs some initial setup).
The languages supported 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 on the list, from version 2.1 of RTranslator you can go into the settings and enable "Support low quality languages" to add the following languages (which have lower quality for translation and speech recognition):
Afrikaans, Akan (only text), Amharic, Assamese, Bambara (only text), Bangla, Bashkir, Basque, Belarusian, Bosnian, Dzongkha (only text), Esperanto (only text), Estonian, Ewe (only text), Faroese, Fijian (only text), Georgian, Guarani (only text), Gujarati, Hausa, Hebrew, Hindi, Hungarian, Irish (only text), Javanese (only text), Kannada, Kashmiri (only text), Kazakh, Kikuyu (only text), Kinyarwanda (only text), Korean, Kyrgyz (only text), Lao, Limburghish (only text), Lingala, Lithuanian, Luxembourghish, Macedonian, Tagalog (only text), Tibetan.
To speak, RTranslator uses the system TTS of your phone, so the quality of the latter and the supported languages depend on the system TTS of your phone.
The supported languages seen above are all compatible with Google TTS, which is the recommended TTS (although you can use the 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 from the source you prefer, and open RTranslator, then open its settings (top right) and, in the "Output" section, click on "Text to Speech", at this point the system settings will open in the section where you can select the preferred system TTS engine (among those installed), at this point, if you have changed the preferred engine, restart RTranslator to apply the changes (close it from the recent apps and then reopen it).
Note: If after that the TTS doesn't work, you can clear the cache of RTranslator and the TTS from Android Applications settings, reboot the phone and retry.
Privacy is a fundamental right. That's why RTranslator does not collect any personal data (I don't even have a server). For more information, read the privacy policy (for now is the same privacy policy of RTranslator 1.0, but I will update it in the future).
RTranslator code is completely open-source, but some of the external libraries it uses have less permissive licenses, these are all the external libraries used by the app (with the indication of their license):
BluetoothCommunicator (open-source): Used for Bluetooth LE communication between devices.
GalleryImageSelector (open-source): Used for selecting and cropping the profile image from the gallery.
OnnxRuntime (open-source): Used as an accelerator engine for the AI models.
SentencePiece (open-source): Used for tokenization of the input text for NLLB.
Ml Kit (closed-source): Used for the identification of the language in the WalkieTalkie mode. And the following AI models:
NLLB (open-source, but only for non-commercial use): The model used is NLLB-Distilled-600M with KV cache.
Whisper (open-source): The model used is Whisper-Small-244M with KV cache.
I converted both NLLB and Whisper to onnx format and quantized them in int8 (excluding some weights to ensure almost zero quality loss), I also separated some parts of the models to reduce RAM consumption (without this separation some weights were duplicated at runtime consuming more RAM than expected) and done other optimizations to reduce execution time.
Here are the results of my optimizations:
| normal NLLB onnx model (full int8, no kv-cache) | RTranslator NLLB onnx model (partial int8, with kv-cache, separated parts) | |
|---|---|---|
| RAM Consumption | 2.5 GB | 1.3GB (1.9x improvement) |
| Execution time for 75 tokens | 8s | 2s (4x improvement) |
| Whisper onnx model optimized with Olive (full int8, with kv-cache) | RTranslator Whisper onnx model (partial int8, with kv-cache, separated parts) | |
|---|---|---|
| RAM Consumption | 1.4 GB | 0.9 GB (1.5x improvement) |
| Execution time for 11s audio | 1.9s | 1.6s (1.2x improvement) |
N.B. RTranslator Whisper model can also consume 0.5 GB of RAM but with an execution time of 2.1s (this mode is used for phones with less than 8 GB of RAM)
This is an open-source and completely ad-free app, I don't make any money from it.
So, if you like the app and want to say thank you and support the project, you can make a donation by clicking on one of the the buttons below (any amount is well accepted).
In case you will donate, or just live a star, thank you :heart:
Take a look at these awesome projects that use RTranslator code:
If you want to contribute to this project, first of all, thank you 🚀
If you don't know where to start, go check the to-do list, and in any case, before starting, read the contribution guidelines.
- Sometimes the Bluetooth connection drops.
If you have found any bug please report it by opening an issue, or by writing an email to [email protected]
Enjoy your simultaneous translator.