Bergamot 翻译器
Bergamot 翻译器提供了一个统一的 API,用于(基于 Marian NMT 框架的)神经机器翻译功能,符合 Bergamot 项目的要求,该项目致力于改进网页浏览器中的客户端机器翻译。
构建说明
本地构建
创建一个文件夹用于构建所有构件(本例中为 build-native
)并编译
mkdir build-native
cd build-native
cmake ../
make -j2
构建 WASM
前提条件
在 wasm 上构建需要 Emscripten 工具链。可以使用以下说明下载和安装:
- 获取最新的 SDK:
git clone https://github.com/emscripten-core/emsdk.git
- 进入克隆的目录:
cd emsdk
- 安装 SDK:
./emsdk install 3.1.8
- 激活 SDK:
./emsdk activate 3.1.8
- 激活路径变量:
source ./emsdk_env.sh
编译
要构建在 Firefox Nightly 浏览器上以更高速度翻译的版本,请按照以下说明操作:
-
创建一个文件夹用于构建所有构件(本例中为
build-wasm
)并编译mkdir build-wasm cd build-wasm emcmake cmake -DCOMPILE_WASM=on ../ emmake make -j2
wasm 构件(.js 和 .wasm 文件)将在构建目录中可用(本例中为 "build-wasm")。
-
修补生成的构件以从单独的 wasm 模块导入 GEMM 库
bash ../wasm/patch-artifacts-import-gemm-module.sh
要构建在所有浏览器(包括 Firefox Nightly)上运行但翻译速度较慢的版本,请按照以下说明操作:
-
创建一个文件夹用于构建所有构件(本例中为
build-wasm
)并编译mkdir build-wasm cd build-wasm emcmake cmake -DCOMPILE_WASM=on ../ emmake make -j2
-
修补生成的构件以从单独的 wasm 模块导入 GEMM 库
bash ../wasm/patch-artifacts-import-gemm-module.sh
重新编译
只要您不更新任何子模块,只需按照编译步骤操作即可。
如果您更新了子模块,请在执行编译步骤之前,在存储库根文件夹中执行以下命令。
git submodule update --init --recursive
如何使用
使用本地版本
构建生成的库可以集成到任何项目中。所有公共头文件都在 src
文件夹中指定。
app/bergamot.cpp
文件中提供了一个如何使用 API 的简短示例。
使用 WASM 版本
请按照本存储库 wasm
文件夹中的 README
说明,了解如何在 JavaScript 中使用翻译器。