Foxlet Translate 0.5.0:重写分句器,AAR 缩小 25.75%
本次升级主要优化多语言分句与 Android 发行体积,并整理开发目录、补充 Maven 发布能力。继续沿用 0.4.0 的 Foxlet 客户端 API,现有接入代码无需因公开接口变化而迁移。
重写分句器,改善多语言和混合文本处理
用自有 C++ UTF-8 分句器替换 ssplit-cpp 与 PCRE2,基于 Unicode 17 句界属性处理文本,将常用缩写规则直接编译进代码,移除随包分发的 Moses 前缀文件。
重点完善以下场景:
- 中文、日文:无空格连续文本、句末标点与引号,以及夹杂英文缩写的混合文本。
- 英文及混合文本:缩写、网址、数字和计量表达,避免把
sq. ft、cu. ft等短语中的句点当成句末。 - 俄文:面积、体积、长度、马力、金额与数量缩写,例如
кв.、куб.、пог.;区分см.的“厘米”和“参见”上下文,并处理缩写本身位于句末的情况。 - 韩文及通用 Unicode 文本:完善语言标点、引述、组合字符与 Unicode 空白处理。仍支持调用方提供自定义 UTF-8 缩写表。
在相同方法的 11 套 UD 测试语料、20,877 句上,句界识别 micro-F1 从 94.67% 提升到 96.08%。例如英文 EWT 为 73.98% → 80.80%、日文 GSD 为 96.17% → 98.29%、俄文 SynTagRus 为 97.83% → 99.46%。这是分句质量指标;韩语两个测试集各增加一个误切边界,完整结果保留在版本报告。
裁剪 Android 依赖,发行 AAR 缩小 25.75%
按两个正式 Release 附件压缩后的实际大小比较:
| 发行 AAR | 大小 |
|---|---|
| v0.4.0 | 3,784,263 字节(3.784 MB) |
| v0.5.0 | 2,809,936 字节(2.810 MB) |
| 减少 | 974,327 字节,约 974.3 KB(25.75%) |
体积缩减主要来自分句器及其依赖替换,以及 Android 端移除 SentencePiece 训练库。词表加载、分词和解码功能保留;仓库中的训练源码与主机工具能力也保留。裁剪前后归档的 10,120 条主机译文输出完全一致。
本版统一为一个 AAR,不再分“默认版”和 no-prefixes 版。AAR 不包含模型权重;首次使用仍需下载对应模型。MB、KB 均按十进制计算。
整理开发目录与验证工具
native/jni/集中 JNI 桥接代码,native/sentence/放置自有分句器。sdk-example/提供消费最终 AAR、启用 R8 的接入示例。benchmark/app/放置基准应用,benchmark/data/统一保存版本基准、历史协议和原始结果。docs/集中接入、API、架构与构建发布文档,新增英文 README。- 新增分句规则测试、语料评分与基准报告生成工具;报告从归档生成,调整展示无需重新跑设备。
Maven 接入与发布状态
新增 Maven 发布配置,坐标为 io.github.yinvoke:foxlet-translate:0.5.0,包含 AAR、POM、Gradle 模块元数据、Kotlin 源码包和 Dokka API 文档包。Maven 元数据声明 Kotlin 与协程依赖,方便通过 Gradle 管理 SDK。
0.5.0 的 GitHub 附件已发布;Maven Central 正在补发,当前尚不可从 Central 解析。 完成账号、命名空间和签名配置后,复用已验收的同一 AAR 上传;可下载后会更新本公告和接入文档。目前可直接使用下方 AAR。
性能与兼容性说明
本次可量化的主要收益是 AAR 体积缩减和分句质量改善。归档中相对 0.3.0 的同协议原生热态速度变化为 −0.2%~+6.6%,多数场景接近;它不是与 0.4.0 的速度对比,也不足以说明整体推理提速。
- 公开 JVM API 签名与 0.4.0 一致;从 0.3.x 升级仍需迁移调用代码。
prefixLanguages表示内置缩写规则覆盖范围,当前为en/de/fr/es/pt/it/ru/tr/zh/ja/ko,不代表翻译模型支持的语向。nonbreakingPrefixes = false关闭缩写规则,仍保留 Unicode 和语言标点处理。分句变化可能改变组批与译文,不保证逐句复现旧版输出。- App 标准基准仅完成 8/18 个进程;补充 AAR 回测有四项波动超限;原生译文哈希变化仍记为检查失败。完整数据和限制见版本归档。
普通 CI 和正式发行流程均已通过;最终 R8 示例 APK 已在 Android 16 ARM64 模拟器完成模型下载、翻译、模型管理和生命周期验收,结果及 APK SHA-256 见 device-result.json。模拟器验收用于功能验证。
下载
- foxlet-v0.5.0.aar:统一 Android SDK,Android 9+、arm64-v8a。
- foxlet-sdk-example-v0.5.0.apk:模型管理与离线翻译示例,使用开发签名。
- SHA256SUMS:附件校验值;许可、源码来源和设备验收记录一并提供。