niedev/RTranslator

GitHub: niedev/RTranslator

一款开源离线的 Android 实时翻译应用,利用本地 AI 模型解决跨语言沟通的隐私和可用性问题。

Stars: 9991 | Forks: 921

RTranslator 是一款(近乎)开源、免费且支持离线的 Android 实时翻译应用。 连接同样安装了此应用的用户,戴上蓝牙耳机,将手机放入口袋,你就可以像对方说你的语言一样进行对话。

![对话模式](https://github.com/niedev/RTranslator/blob/v2.00/images/Conversation_image.png)

![对讲机模式与费用](https://github.com/niedev/RTranslator/blob/v2.00/images/TextTranslation_and_WalkieTalkie.png)

对话模式

对话模式是 RTranslator 的主要功能。在此模式下,你可以连接另一部使用此应用的手机。如果对方接受你的连接请求: - 当你说话时,你的手机(或已连接的**蓝牙耳机**)将捕捉音频。 - 捕捉到的音频将被转换为文本并发送到对方的手机。 - 对方的手机将接收到的文本翻译成他的语言。 - 对方的手机将翻译后的文本转换为音频,并通过其扬声器(或对方连接的蓝牙耳机)播放出来。 以上过程双向进行。 每个用户可以连接多部手机,从而实现超过两人的对话翻译,且可以任意组合。

对讲机模式

如果说对话模式适合进行长时间对话,那么此模式专为快速对话设计,例如在街上问路或与店员交谈。 此模式仅支持两人之间的对话翻译,不支持蓝牙耳机,且需要交替发言。它不是真正的同声传译,但可以在**仅使用一部手机**的情况下工作。 在此模式下,智能手机麦克风将同时监听两种语言(可在对讲机模式同一屏幕中选择)。
应用将检测对方说的语言,将音频翻译成另一种语言,将文本转换为音频,然后通过手机扬声器播放。当语音合成完成后,它将自动恢复监听。

文本翻译模式

此模式就是经典的文本翻译器,但始终有用。

概述

RTranslator 使用 Meta 的 NLLB 进行翻译,使用 OpenAI 的 Whisper 进行语音识别,两者都是(近乎)开源且处于领先水平的人工智能技术,质量卓越,并直接在手机上运行,确保了绝对的隐私,以及即使在离线情况下也能使用 RTranslator 且不损失质量。 此外,RTranslator 甚至可以在后台运行,手机待机或使用其他应用时也是如此(仅限对话或对讲机模式)。但是,一些手机会限制后台功耗,因此在这种情况下,最好避免使用后台,而是保持应用打开且屏幕亮着。
RTranslator - Open-source and offline simultaneous translator for Android | Product Hunt

下载

要安装此应用,请从 https://github.com/niedev/RTranslator/releases/ 下载最新的 APK 文件并安装(忽略其他文件,这些文件将在应用首次启动时自动下载)。 Get it on GitHub 首次启动时,RTranslator 将自动下载用于翻译和语音识别的模型(1.2GB),完成后即可开始翻译。 初始下载将从 GitHub 获取模型,然而 在某些地区 GitHub 速度非常慢,遇到此类问题的用户可以单独从电脑(或以任何他们偏好的方式)下载模型,并按照本指南手动将其插入应用。 如果你拥有 GitHub 帐户并希望在新版本发布时收到通知,可以在页面顶部点击"Watch" -> "Custom" -> "Releases" -> "Apply"。

RTranslator 3.0 即将推出!

RTranslator 的 3.0 版本将通过 [NGI Mobifree 基金](https://nlnet.nl/mobifree)资助,该基金由 [NLnet](https://nlnet.nl) 设立。 此版本的主要变化: - NLLB 翻译模型将被替换,增加以下模型选项:Mozilla Bergamot 模型、Madlad 400 3B 和 HY-MT 1.5 1.8B。所有这些模型都具有优于 NLLB 54B 的翻译质量,与 Google 翻译相当(其中 HY-MT 1.5 1.8B 的得分远高于 Google 翻译)。 - 将替换 MLKit,使 RTranslator 100% 开源。 - 将添加多种技术以提高翻译质量,包括:束搜索、多语言词典、Tatoeba 集成等。 - 应用将发布在 Play Store 和 F-Droid 上。 - 将提供一个使用 Mozilla 模型进行文本翻译的自托管 Web 版本应用。 此版本的第一个测试版将于 2026 年 4 月至 6 月之间发布。敬请期待 🚀

2.1 版本更新内容

- **全新图形界面!** 由 [Chiara Chindamo](https://www.linkedin.com/in/chiara-chindamo-946053234/) 设计。 - 在文本翻译模式中添加了朗读和复制按钮。 - 在对讲机模式中添加了手动控制麦克风的选项。 - 添加了使用低质量语言的选项。 - 修复了一些 Bug。 完整更改列表请见[此处](https://github.com/niedev/RTranslator/releases/tag/2.1.0)。

性能要求

我已经对 AI 模型进行了大量优化,以最大限度地减少 RAM 消耗和执行时间,尽管如此,为了能够无崩溃风险地使用该应用,你仍需要一部至少拥有 **6GB RAM** 的手机,并且为了获得足够快的执行时间,你需要一部 CPU 足够快的手机。 如果你的手机性能较差(或者你想要最快速度),你总是可以使用 RTranslator 的 1.0 版本(但由于它使用 Google API,因此不是免费的,并且需要一些初始设置)。

支持的语言

支持的语言如下: 阿拉伯语、保加利亚语、加泰罗尼亚语、中文、克罗地亚语、捷克语、丹麦语、荷兰语、英语、芬兰语、法语、加利西亚语、德语、希腊语、意大利语、日语、韩语、马其顿语、波兰语、葡萄牙语、罗马尼亚语、俄语、斯洛伐克语、西班牙语、瑞典语、泰米尔语、泰语、土耳其语、乌克兰语、乌尔都语、越南语。

如果你的语言不在列表中,从 RTranslator 2.1 版本起,你可以进入设置并启用“**支持低质量语言**”来添加以下语言(这些语言的翻译和语音识别质量较低): 南非语、阿肯语(仅文本)、阿姆哈拉语、阿萨姆语、班巴拉语(仅文本)、孟加拉语、巴什基尔语、巴斯克语、白俄罗斯语、波斯尼亚语、宗喀语(仅文本)、世界语(仅文本)、爱沙尼亚语、埃维语(仅文本)、法罗语、斐济语(仅文本)、格鲁吉亚语、瓜拉尼语(仅文本)、古吉拉特语、豪萨语、希伯来语、印地语、匈牙利语、爱尔兰语(仅文本)、爪哇语(仅文本)、卡纳达语、克什米尔语(仅文本)、哈萨克语、基库尤语(仅文本)、卢旺达语(仅文本)、韩语、柯尔克孜语(仅文本)、老挝语、林堡语(仅文本)、林加拉语、立陶宛语、卢森堡语、马其顿语、他加禄语(仅文本)、藏语。

语音合成

为了朗读,RTranslator 使用你手机系统的 TTS(文本转语音),因此其质量和所支持的语言取决于你手机的系统 TTS。 上面看到的所有支持语言都与 Google TTS 兼容,这是推荐的 TTS(尽管你可以使用你想要的 TTS)。 要更改系统 TTS(因此也更改 RTranslator 使用的 TTS),请从 Play Store 或你偏好的来源下载你想要使用的 TTS,然后打开 RTranslator,接着打开其设置(右上角),并在“输出”部分点击“文本转语音”,此时系统设置将在你可以选择首选系统 TTS 引擎(已安装的引擎之一)的部分打开,这时,如果你更改了首选引擎,请重启 RTranslator 以应用更改(从最近应用中关闭它,然后重新打开)。 **注意:** 如果之后 TTS 不工作,你可以在 Android 应用程序设置中清除 RTranslator 和 TTS 的缓存,重启手机,然后重试。

隐私

隐私是一项基本权利。这就是为什么 RTranslator 不收集任何个人数据(我甚至没有服务器)。更多信息,请阅读隐私政策(目前与 RTranslator 1.0 的隐私政策相同,但我将来会更新它)。

库与模型

RTranslator 的代码是完全开源的,但它使用的一些外部库许可限制较少,以下是应用使用的所有外部库(附其许可证说明): BluetoothCommunicator(开源):用于设备之间的蓝牙低功耗通信。 GalleryImageSelector(开源):用于从图库选择和裁剪个人资料图片。 [OnnxRuntime](https://github.com/microsoft/onnxruntime)(开源):用作 AI 模型的加速引擎。 SentencePiece(开源):用于 NLLB 的输入文本分词。 Ml Kit(闭源):用于对讲机模式中的语言识别。

以及以下 AI 模型: NLLB(开源,但仅限非商业用途):使用的模型是带有 KV 缓存的 NLLB-Distilled-600M。 Whisper(开源):使用的模型是带有 KV 缓存的 Whisper-Small-244M。

模型性能

我已将 NLLB 和 Whisper 都转换为 onnx 格式,并将它们量化为 int8(排除了一些权重以确保几乎无质量损失),我还分离了模型的一些部分以减少 RAM 消耗(没有这种分离,一些权重在运行时会重复,消耗比预期更多的 RAM),并做了其他优化以减少执行时间。 以下是我的优化结果: | | 标准 NLLB onnx 模型
(全 int8,无 kv-cache) | RTranslator NLLB onnx 模型
(部分 int8,有 kv-cache,分离部分) | |---------| ------------------------------------------- | ---------------------------------------------------------- | | RAM 消耗 | 2.5 GB | 1.3GB   (提升 1.9 倍) | | 75 个 token 的执行时间 | 8s | 2s   (提升 4 倍) | | | 使用 [Olive](https://github.com/microsoft/Olive) 优化的 Whisper onnx 模型
(全 int8,有 kv-cache) | RTranslator Whisper onnx 模型
(部分 int8,有 kv-cache,分离部分) | |---------| -------------------------------------------------------------- | ------------------------------------------------------------- | | RAM 消耗 | 1.4 GB | 0.9 GB   (提升 1.5 倍)| | 11 秒音频的执行时间 | 1.9s | 1.6s   (提升 1.2 倍)| **注意:** RTranslator Whisper 模型也可以消耗 0.5 GB 的 RAM,但执行时间为 2.1s(此模式用于 RAM 少于 8 GB 的手机)

捐赠

这是一款开源且完全无广告的应用,我并不从中获利。 所以,如果你喜欢这个应用并想表示感谢和支持项目,你可以点击下方的按钮进行捐赠(任何金额都非常感谢)。 [![ko-fi](https://www.ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/niedev) Donate 如果你捐赠了,或者只是点了个星,谢谢你 :heart:

关联的外部项目

看看这些使用 RTranslator 代码的出色项目: [**WhisperIMEplus**](https://github.com/woheller69/whisperIMEplus) [**WhisperJET**](https://github.com/eix128/WhisperJET)

贡献

如果你想为这个项目做出贡献,首先,谢谢你 🚀 如果你不知道从哪里开始,请查看[待办事项列表](https://github.com/niedev/RTranslator/blob/v2.00/TODO_LIST.md),无论如何,在开始之前,请阅读[贡献指南](https://github.com/niedev/RTranslator/blob/v2.00/CONTRIBUTING.md)。

错误与问题

我提醒你,该应用仍处于测试阶段。发现的错误如下: - 蓝牙连接有时会断开。 如果你发现了任何错误,请通过提交 issue 或发送邮件至 contact.niedev@gmail.com 进行报告。

享受你的同声传译。
标签:Android应用, 人工智能翻译, 免费应用, 多人对话, 实时翻译, 对讲机模式, 对话模式, 文本翻译, 文本转语音, 本地运行, 离线翻译, 移动通信, 翻译应用, 蓝牙技术, 语言学习, 语音翻译, 语音识别, 通信工具