argosopentech/argos-translate
GitHub: argosopentech/argos-translate
基于 OpenNMT 的开源离线神经机器翻译库,支持数十种语言,可作 Python 库、命令行工具或 API 服务使用。
Stars: 6114 | Forks: 471
# Argos Translate
[演示](https://libretranslate.com) | [网站](https://www.argosopentech.com) | [文档](https://argos-translate.readthedocs.io) | [论坛](https://community.libretranslate.com/c/argos-translate/5) | [GitHub](https://github.com/argosopentech/argos-translate) | [PyPI](https://pypi.org/project/argostranslate/)
**使用 Python 编写的开源离线翻译库**
Argos Translate 使用 [OpenNMT](https://opennmt.net/) 进行翻译,可用作 Python 库、命令行工具或 GUI 应用程序。Argos Translate 支持安装语言模型包,这些包是扩展名为 ".argosmodel" 的 zip 压缩包,包含了翻译所需的数据。[LibreTranslate](https://libretranslate.com) 是一个基于 Argos Translate 构建的 API 和 Web 应用程序。
Argos Translate 还能通过中间语言自动进行桥接转换,以便在没有直接安装相应翻译模型的语言之间进行翻译。例如,如果您安装了 es → en 和 en → fr 翻译,您就可以像安装了该翻译一样从 es → fr 进行翻译。这允许在各种语言之间进行翻译,代价是翻译质量会有一些损失。
[argospm-index](https://github.com/argosopentech/argospm-index) 包含访问预训练 Argos Translate 模型的元数据和下载链接。
### 支持的语言
##### [浏览软件包索引](https://www.argosopentech.com/argospm/index/)
阿拉伯语、阿塞拜疆语、巴斯克语、加泰罗尼亚语、中文、捷克语、丹麦语、荷兰语、英语、世界语、芬兰语、法语、加利西亚语、德语、希腊语、希伯来语、印地语、匈牙利语、印度尼西亚语、爱尔兰语、意大利语、日语、吉尔吉斯语、韩语、马来语、波斯语、波兰语、葡萄牙语、葡萄牙语(巴西)、俄语、斯洛伐克语、西班牙语、瑞典语、土耳其语、乌克兰语、乌尔都语等
[请求添加语言](https://github.com/argosopentech/argos-translate/discussions/91)
## 安装
### 使用 Python 安装
Argos Translate 可通过 [PyPI](https://pypi.org/project/argostranslate/) 获取,并可以使用 [pip](https://pip.pypa.io/en/stable/installation/) 轻松安装。
```
pip install argostranslate
```
安装 [GUI](https://github.com/argosopentech/argos-translate-gui):
```
pip install argostranslategui
```
### 将 Python 源码安装到 virtualenv
下载本仓库的副本并使用 pip 安装。
```
git clone https://github.com/argosopentech/argos-translate.git
cd argos-translate
virtualenv env
source env/bin/activate
pip install -e .
```
## 示例
### [Python](https://argos-translate.readthedocs.io/en/latest/py-modindex.html)
```
import argostranslate.package
import argostranslate.translate
from_code = "en"
to_code = "es"
# 下载并安装 Argos Translate 包
argostranslate.package.update_package_index()
available_packages = argostranslate.package.get_available_packages()
package_to_install = next(
filter(
lambda x: x.from_code == from_code and x.to_code == to_code, available_packages
)
)
argostranslate.package.install_from_path(package_to_install.download())
# 翻译
translatedText = argostranslate.translate.translate("Hello World", from_code, to_code)
print(translatedText)
# '¡Hola Mundo!'
```
### 命令行界面
```
argospm update
argospm install translate-en_de
argos-translate --from en --to de "Hello World!"
# Hallo Welt!
```
安装所有翻译包:
```
argospm install translate
```
### [LibreTranslate](https://github.com/LibreTranslate/LibreTranslate) Web 应用 ([演示](https://libretranslate.com/))

### [LibreTranslate](https://github.com/uav4geo/LibreTranslate) API
```
const res = await fetch("https://translate.argosopentech.com/translate", {
method: "POST",
body: JSON.stringify({
q: "Hello!",
source: "en",
target: "es"
}),
headers: {
"Content-Type": "application/json"}
});
console.log(await res.json());
{
"translatedText": "¡Hola!"
}
```
#### 图形用户界面
GUI 代码位于一个[单独的仓库](https://github.com/argosopentech/argos-translate-gui)中。


## [包](https://www.argosopentech.com/argospm/index/)
- [浏览](https://www.argosopentech.com/argospm/index/)
- [使用 BitTorrent 进行 P2P 下载](/p2p/README.md)
- [训练脚本](https://github.com/argosopentech/argos-train)
- [Google Drive 下载](https://drive.google.com/drive/folders/11wxM3Ze7NCgOk_tdtRjwet10DmtvFu3i)
### GPU 加速
要启用 GPU 支持,您需要将 `ARGOS_DEVICE_TYPE` 环境变量设置为 `cuda` 或 `auto`。
```
$ ARGOS_DEVICE_TYPE=cuda argos-translate --from-lang en --to-lang es "Hello World"
Hola Mundo
```
上述环境变量将设备类型传递给 [CTranslate2](https://github.com/OpenNMT/CTranslate2)。
### HTML 翻译
[translate-html](https://github.com/argosopentech/translate-html) 库基于 Argos Translate 和 [Beautiful Soup](https://beautiful-soup-4.readthedocs.io/en/latest/) 构建,用于解析和翻译 HTML。LibreTranslate API 也支持翻译 HTML。
### 文件翻译
[argos-translate-files](https://github.com/LibreTranslate/argos-translate-files) 库基于 Argos Translate 构建,用于解析和翻译文件。LibreTranslate API 也支持翻译文件。
## 卸载
```
pip uninstall argostranslate
```
您可以选择同时删除临时文件和缓存文件:
```
rm -r ~/.local/cache/argos-translate
rm -r ~/.local/share/argos-translate
```
## 相关项目
- [LibreTranslate-py](https://github.com/argosopentech/LibreTranslate-py) - LibreTranslate 的 Python 绑定
- [MetalTranslate](https://github.com/argosopentech/MetalTranslate) - C++ 中的可定制翻译
- [LibreTranslate/Locomotive](https://github.com/LibreTranslate/Locomotive) - 用于训练/转换兼容 LibreTranslate 的语言模型的工具包 🚂
- [DesktopTranslator](https://github.com/ymoslem/DesktopTranslator) - 基于 [OpenNMT](https://opennmt.net/) 的翻译应用程序
- [LibreTranslate-rs](https://github.com/grantshandy/libretranslate-rs) - LibreTranslate 的 Rust 绑定
- [LibreTranslate Go](https://github.com/SnakeSel/libretranslate) - LibreTranslate 的 Golang 绑定
- [LibreTranslate Java](https://github.com/dynomake/libretranslate-java) - LibreTranslate 的 Java 绑定
- [LibreTranslator](https://gitlab.com/BeowuIf/libretranslator) - LibreTranslate 的 Android 应用程序
## 支持
如需获取支持,请使用 [LibreTranslate 论坛](https://community.libretranslate.com/c/argos-translate/5) 或 [GitHub Issues](https://github.com/argosopentech/argos-translate/issues)。
有关 [CTranslate2](https://github.com/OpenNMT/CTranslate2) 或一般机器翻译研究的问题,[OpenNMT 论坛](https://forum.opennmt.net/) 是一个很好的资源。
## 服务
基于您的自有数据训练的定制模型,售价为 $1000/语言(可议价)。
[我也接受雇佣](https://www.argosopentech.com/about/),以提供支持、咨询或定制软件开发。
## 贡献
欢迎贡献!Bug 报告、Pull Request、文档编写和功能建议均备受感激。
## 许可证
Argos Translate 采用双许可模式,授权依据为 [MIT 许可证](https://github.com/argosopentech/argos-translate/blob/master/LICENSE) 或 [Creative Commons CC0](https://creativecommons.org/share-your-work/public-domain/cc0/)。
标签:API, GUI应用, IPv6支持, LibreTranslate, NLP, OpenNMT, Python, SEO翻译, 多语言, 开源, 文本分析, 文本翻译, 无后门, 本地化, 机器翻译, 离线翻译, 翻译库, 语言包, 语言模型, 跨语言, 逆向工具