在线文本翻译能力新增14个直译模型,打造以中文为轴心语言的翻译系统

代码吟游使
• 阅读 1923

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

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

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

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

在线文本翻译能力新增14个直译模型,打造以中文为轴心语言的翻译系统

产品优势

个性化术语翻译

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

中文为轴心的机器翻译

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

响应实时稳定

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

多语言翻译质量领先

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

开发步骤

开发准备

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

在线文本翻译能力集成

  1. 请参见云端鉴权信息使用须知,设置您应用的鉴权信息。
  2. 创建在线文本翻译器。可以通过文本翻译器自定义参数类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 最新技术资讯~

点赞
收藏
评论区
推荐文章
blmius blmius
4年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Wesley13 Wesley13
4年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Wesley13 Wesley13
4年前
Java日期时间API系列31
  时间戳是指格林威治时间1970年01月01日00时00分00秒起至现在的总毫秒数,是所有时间的基础,其他时间可以通过时间戳转换得到。Java中本来已经有相关获取时间戳的方法,Java8后增加新的类Instant等专用于处理时间戳问题。 1获取时间戳的方法和性能对比1.1获取时间戳方法Java8以前
Wesley13 Wesley13
4年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Wesley13 Wesley13
4年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
4年前
Java日期时间API系列36
  十二时辰,古代劳动人民把一昼夜划分成十二个时段,每一个时段叫一个时辰。二十四小时和十二时辰对照表:时辰时间24时制子时深夜11:00凌晨01:0023:0001:00丑时上午01:00上午03:0001:0003:00寅时上午03:00上午0
Stella981 Stella981
4年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Python进阶者 Python进阶者
2年前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这
幂简集成 幂简集成
1年前
2024年常用的语言翻译API
在当今全球化的时代,语言翻译的发展正日益成为人们生活中不可或缺的一部分。随着科技的不断进步和人们对全球交流需求的增加,语言翻译API的应用范围也在不断拓展和深化。从最基础的文本翻译到更复杂的实时语音翻译,这些API服务已经成为许多行业和个人的利器。随着20