主要观点:作者介绍了在 Firefox 引入浏览器内设备翻译功能后,希望在浏览器外使用该功能,经过一系列研究和尝试,成功在 Linux 和 Android 上运行bergamot-translator
,包括构建、运行、解决各种依赖和错误等,但在 Android 上仍遇到诸多问题,如缺少 Intrinsics、iconv 问题、运行时崩溃等,最终使翻译库在 Android 上工作并实现基本的 Android 应用,还介绍了一些应用的功能如直接从其他应用翻译、检测输入语言等,以及速度测试和结果等。
关键信息和重要细节:
- Firefox 引入浏览器内设备翻译,作者因不愿发送浏览数据给 Google 而寻找在浏览器外使用的方法。
bergamot-translator
可运行 Firefox 翻译模型,需特定 YAML 文件,模型等应从firefox-translations-models
获取。- 在 Linux 上构建
bergamot-translator
及运行步骤,如克隆仓库、安装依赖、设置配置等。 - 在 Android 上构建共享库遇到诸多问题,如 CMake 错误、PCRE2 依赖、缺少 Intrinsics、iconv 问题等,通过各种设置和修改解决。
- 运行时出现崩溃,如在全局构造函数中出现 SIGILL 错误,原因是模拟器的处理器不支持 AVX 指令,通过启用 AVX 在模拟器上解决。
- 实现基本的 Android 应用,包括获取模型文件、生成 YAML、连接到
libbergamot
,以及实现直接从其他应用翻译和检测输入语言的功能。 - 速度测试表明初始加载模型耗时约 100ms,后续翻译短短语约 5ms,中长文本分别约 20ms 和 80ms 以上。
- 应用约 15MB,模型约 40MB 需单独下载,翻译质量不如 Google Translate 等,支持的语言有限。
- 作者对 CMake、Android Studio 等工具表达不满,如 CMake 复杂、Android Studio 存在各种问题等。
总结:作者通过不懈努力在不同平台上实现了 Firefox 翻译功能的外推,过程中克服了诸多技术和工具方面的困难,最终取得了一定成果,但仍存在一些待改进之处。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。