自动检测语言:应用如何选择源语言
自动检测是源语言选择器中的第一个选项。选择它并不意味着应用对源没有意见 — 这意味着应用将使用按块的 OCR 语言提示(对于照片)或 Dart 层的字符集启发式(对于文本),来为每次翻译挑选一个特定的 ML Kit 源语言。
为什么按每次翻译
ML Kit 的设备本地翻译器需要在翻译运行之前下载特定的源语言。自动检测不能意味着"从任何语言翻译";它必须解析为 19 种支持语言中的一种,每次翻译都如此。应用自动执行此解析。
照片的工作原理
对于相机捕获,OCR 引擎为每个识别到的块发出按块的语言提示。提示在整页上聚合;占多数的语言成为该翻译的 ML Kit 源语言。
单语言页面解析清晰:一页韩语字幕解析为韩语,一页法语正文解析为法语。混合脚本页面如果没有任何单一语言占主导,则回退到默认值。
按块翻译使用这些提示更精细。具有英语标题和日语字幕的页面可以使用适当的按块源进行翻译,即使多数语言不明确也是如此。
文本的工作原理
对于文本翻译,应用运行一个 Dart 层的启发式,按脚本类计算字符数:
- 汉字 → 简体中文
- 假名 → 日语
- 韩文谚 → 韩文
- 拉丁字母 → 英语
- 西里尔字母 → 俄语
- 阿拉伯字母 → 阿拉伯语
混合输入遵循多数字符类。空或仅空白输入默认为英语。
启发式很快(对输入的单个线性扫描),并在 ML Kit 调用之前运行。所选的源语言然后用于翻译请求。
自动检测失败的时候
- 无变音符号的拉丁字母。 10 个字符的纯拉丁片段可能是英语、法语、德语、意大利语、葡萄牙语、西班牙语、荷兰语、波兰语、捷克语或其他几种语言。启发式选择英语作为默认值;如果源不是英语,翻译质量可能会下降。对于短拉丁片段,手动固定源语言。
- 无具体说明的西里尔字母。 西里尔字母可能是俄语、乌克兰语或其他斯拉夫语脚本。应用选择俄语。
- 汉字脚本歧义。 简体中文和繁体中文共享大多数字符。没有更长上下文就无法将汉字片段解析为一种。应用选择简体中文。
对于这些情况,从选择器手动固定源语言。
自动检测从不沉默
页面在翻译运行时始终具有特定的 ML Kit 源语言。如果启发式返回错误的默认值,翻译可能会出错;如果它返回正确的语言,翻译就有效。没有应用"无法选择语言"的模式 — 它会通过到默认值并进行翻译。
实用建议
对于长的、单语言文档,自动检测有效。对于短片段或混合脚本页面,从选择器手动固定源语言。选择器会把你最近的常用语言放在顶部,因此第二次使用某种语言只需一次点击。