机器学习套件(ML Kit)组件在在线版和教育版中提供,离线版(含机房版)不包含。
它能做什么
语言识别判断一段文字是哪种语言,支持 100 多种,结果给出 BCP-47 语言代码(如 zh、en、ja)和中文名称。常用于自动选择翻译方向、按语言分流消息。识别在本地完成,不上传文本。
准备工作
- 短文本:文字越短越难判断;很短的文本可以把「置信度阈值」调低(如 0.2),或用「识别可能的语言」看多个候选。
- 联机调试:安卓上用 AI 伴侣调试需要安装 MLKit 版 AI 伴侣(应用宝,包名 cn.fun123.appinventor);普通版伴侣不含识别引擎,调用时会触发「屏幕.出现错误时」(错误码 4722)。直接打包 APK 安装测试不受影响。
- 安装包体积:只有用到本组件的 App 才会打包它的识别引擎与模型,体积以编译结果为准。
- 鸿蒙:暂不支持:调用方法会触发「识别语言失败」并说明原因。
案例一:识别一段文字的语言
把输入框的文字交给「识别语言」,结果事件给出语言代码和中文名:
when 按钮_识别.Click() {
语言识别1.IdentifyLanguage(文本输入框_文本.Text)
}
when 语言识别1.GotLanguage(语言代码, 名称) {
标签_结果.Text = join(名称, "(", 语言代码, ")")
}
when 语言识别1.NoLanguageFound(文本) {
标签_状态.Text = "认不出是哪种语言,文本再长一些试试"
}
案例二:列出多个候选语言
「识别可能的语言」返回 JSON 数组,逐项拼出名称和置信度:
when 按钮_候选.Click() {
语言识别1.IdentifyPossibleLanguages(文本输入框_文本.Text)
}
when 语言识别1.GotPossibleLanguages(数量, 结果JSON) {
var 行 = ""
foreach 项 in Web客户端1.JsonTextDecodeWithDictionaries(结果JSON) {
行 = join(行, dictget(项, "name", ""), ":", round(dictget(项, "confidence", 0) * 100), "%\n")
}
标签_详情.Text = 行
}
结果数据说明
「结果JSON」是数组,每项含 languageTag、name、confidence。「语言名称」方法可以直接把语言代码转成中文名。
常见问题
| 现象 | 原因与处理 |
|---|---|
| 总是识别不出 | 文本太短,或阈值太高;调低「置信度阈值」 |
| 中文被认成日文 | 纯汉字短句与日文汉字相同;多写几个字或用候选列表 |
完整 .aia 源码与操作指导
导入 LanguageIdentifierDemo.aia 后可以直接打包 APK 运行;用 AI 伴侣联机调试请安装 MLKit 版 AI 伴侣。源码文件已通过正式编辑器载入、后台导入和 APK 编译校验;真机识别效果请以实际设备为准。
| 功能 | 操作 | 预期结果 |
|---|---|---|
| 识别中文 | 直接点「识别语言」 | 显示「中文(zh)」 |
| 切换示例 | 点 English / 日本語 / 한국어 / Français 后识别 | 分别显示对应语言 |
| 可能的语言 | 点「可能的语言」 | 列出候选及置信度百分比 |
案例界面与积木源码在仓库 docs/markdown/reference/components/guide/examples/LanguageIdentifierDemo/,SHA-256:20c6a3f96902dd9bbcde3425724b640b7acd7a6ec032ce8134bf197df898f1d6。
扫码添加客服咨询