经济全球化的今天,人们在工作和生活中经常会与外语打交道。相较传播性较广的英语而言,其他语种的识别和阅读对大多数人来说是一件难事,此时就需要借助语言翻译软件来帮助理解。

华为 HMS Core 机器学习服务(ML Kit)翻译功能提供了多种翻译模式,不仅可以满足应用出行购物、网络社交等日常场景,还提供办公文档、视频字幕等专业翻译服务,满足多种语言和场景应用。其中在线文本翻译能力支持15国语种中文互译,满足邮件翻译、语音翻译、浏览器翻译、同传翻译等场景。

当前主流的翻译模式大都以语料资源较为丰富的英文作为中间语言进行“桥接”翻译,但是经英文转移后翻译精度有所损失,且计算资源加倍执行效果降低。

基于此,HMS Core机器学习服务对在线文本翻译能力进行升级,在原有的8国语言上又新增中意、中阿、中波、中荷、意中、阿中、波中、荷中 、中马、中泰、中越、越中、泰中、马中十四个直译模型,支持TOP15语种中文互译。相较于英文桥接翻译,中文直译模型可实现每秒并发300字符,端到端翻译速度小于150ms,翻译时延降低100%,翻译速度更快;针对中文特色词、俚语的翻译结果更地道,翻译质量更优。在线文本翻译能力分批次打造可信中文直译系统,确保中文和TOP语种的互译效果优于友商,打造差异化竞争力,可以满足中企出海或外企入华等对翻译要求更高场景的需求。

产品优势

个性化术语翻译

用户可自行提供术语以优化翻译结果,华为术语翻译引擎提供可定制的个性化术语翻译能力。

中文为轴心的机器翻译

支持TOP15语种中文互译,让翻译时延更低,质量更优。在WMT 2021 国际机器翻译大赛三角翻译任务中,获得俄到中翻译第一名。

响应实时稳定

全流程毫秒级响应,译文结果精准流畅。全球四大站点部署,助力品牌出海无忧。

多语言翻译质量领先

依托先进的机器翻译技术,结合各垂域大数据优势,满足用户在多领域、多场景下的翻译需求。在IWSLT 2020国际翻译大赛中,获得中到英字幕翻译第一名。

开发步骤

开发准备

在进行开发之前,您需要完成必要的开发准备工作,同时请确保您的工程中已经配置HMS Core SDK的Maven仓地址,并且完成了本服务的SDK集成

在线文本翻译能力集成
  1. 请参见云端鉴权信息使用须知,设置您应用的鉴权信息。
  1. 创建在线文本翻译器。可以通过文本翻译器自定义参数类MLRemoteTranslateSetting创建翻译器。
// 使用自定义的参数配置创建文本翻译器。
MLRemoteTranslateSetting setting = new MLRemoteTranslateSetting
    .Factory()
    // 设置源语言的编码,使用ISO 639-1标准(中文繁体使用BCP-47标准)。此设置为可选项,如果不设置,将自动检测语种进行翻译。
    .setSourceLangCode("zh")
    // 设置目标语言的编码,使用ISO 639-1标准(中文繁体使用BCP-47标准)。
    .setTargetLangCode("en")
    .create();
MLRemoteTranslator mlRemoteTranslator = MLTranslatorFactory.getInstance().getRemoteTranslator(setting);
  1. 可通过下面的方法查询在线翻译所支持的语种。

异步方法示例代码:

MLTranslateLanguage.getCloudAllLanguages().addOnSuccessListener(
    new OnSuccessListener<Set<String>>() {
        @Override
        public void onSuccess(Set<String> result) {
            // 成功获取在线翻译所支持的语种。
    }
});

同步方法示例代码:

try {
    Set<String> result = MLTranslateLanguage.syncGetCloudAllLanguages();
    // 成功获取在线翻译所支持的语种。
} catch (MLException e) {
    // 获取在线翻译所支持的语种出现异常。
}
  1. 进行在线文本翻译(错误码信息可参见:机器学习服务错误码)。

异步方法示例代码:

// sourceText是待翻译的文本,长度需小于5000个字符。
final Task<String> task = mlRemoteTranslator.asyncTranslate(sourceText);
task.addOnSuccessListener(new OnSuccessListener<String>() {
    @Override
     public void onSuccess(String text) {
         // 识别成功的处理逻辑。
   }
}).addOnFailureListener(new OnFailureListener() {
     @Override
     public void onFailure(Exception e) {
         // 识别失败的处理逻辑。
         try {
             MLException mlException = (MLException)e;
             // 获取错误码,开发者可以对错误码进行处理,根据错误码进行差异化的页面提示。
             int errorCode = mlException.getErrCode();
             // 获取报错信息,开发者可以结合错误码,快速定位问题。
             String errorMessage = mlException.getMessage();
         } catch (Exception error) {
           // 转换错误处理。
         }
     }
 });

可选:同步方法示例代码:

try {
    String output = mlRemoteTranslator.syncTranslate(sourceText);
    // 识别成功的处理逻辑。
} catch (MLException e) {
    // 识别失败的处理逻辑。
    // 获取错误码,开发者可以对错误码进行处理,根据错误码进行差异化的页面提示。
    int errorCode = e.getErrCode();
    // 获取报错信息,开发者可以结合错误码,快速定位问题。
     String errorMessage = mlException.getMessage();
}
  1. 翻译完成后,释放资源。
if (mlRemoteTranslator!= null) {
    mlRemoteTranslator.stop();
}

了解更多详情>>

访问华为开发者联盟官网
获取开发指导文档
华为移动服务开源仓库地址:GitHubGitee

关注我们,第一时间了解 HMS Core 最新技术资讯~

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐