經濟全球化的今天,人們在工作和生活中經常會與外語打交道。相較傳播性較廣的英語而言,其他語種的識別和閱讀對大多數人來說是一件難事,此時就需要藉助語言翻譯軟體來幫助理解。
華為 HMS Core 機器學習服務(ML Kit)翻譯功能提供了多種翻譯模式,不僅可以滿足應用出行購物、網路社交等日常場景,還提供辦公文件、影片字幕等專業翻譯服務,滿足多種語言和場景應用。其中線上文字翻譯能力支援15國語種中文互譯,滿足郵件翻譯、語音翻譯、瀏覽器翻譯、同傳翻譯等場景。
當前主流的翻譯模式大都以語料資源較為豐富的英文作為中間語言進行“橋接”翻譯,但是經英文轉移後翻譯精度有所損失,且計算資源加倍執行效果降低。
基於此,HMS Core機器學習服務對線上文字翻譯能力進行升級,在原有的8國語言上又新增中意、中阿、中波、中荷、意中、阿中、波中、荷中 、中馬、中泰、中越、越中、泰中、馬中十四個直譯模型,支援TOP15語種中文互譯。相較於英文橋接翻譯,中文直譯模型可實現每秒併發300字元,端到端翻譯速度小於150ms,翻譯時延降低100%,翻譯速度更快;針對中文特色詞、俚語的翻譯結果更地道,翻譯質量更優。線上文字翻譯能力分批次打造可信中文直譯系統,確保中文和TOP語種的互譯效果優於友商,打造差異化競爭力,可以滿足中企出海或外企入華等對翻譯要求更高場景的需求。
產品優勢
個性化術語翻譯
使用者可自行提供術語以最佳化翻譯結果,華為術語翻譯引擎提供可定製的個性化術語翻譯能力。
中文為軸心的機器翻譯
支援TOP15語種中文互譯,讓翻譯時延更低,質量更優。在WMT 2021 國際機器翻譯大賽三角翻譯任務中,獲得俄到中翻譯第一名。
響應實時穩定
全流程毫秒級響應,譯文結果精準流暢。全球四大站點部署,助力品牌出海無憂。
多語言翻譯質量領先
依託先進的機器翻譯技術,結合各垂域大資料優勢,滿足使用者在多領域、多場景下的翻譯需求。在IWSLT 2020國際翻譯大賽中,獲得中到英字幕翻譯第一名。
開發步驟
開發準備
在進行開發之前,您需要完成必要的開發準備工作,同時請確保您的工程中已經配置HMS Core SDK的Maven倉地址,並且完成了本服務的SDK整合。
線上文字翻譯能力整合
-
請參見雲端鑑權資訊使用須知,設定您應用的鑑權資訊。
-
建立線上文字翻譯器。可以透過文字翻譯器自定義引數類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);
- 可透過下面的方法查詢線上翻譯所支援的語種。
非同步方法示例程式碼:
MLTranslateLanguage.getCloudAllLanguages().addOnSuccessListener(
new OnSuccessListener<Set<String>>() {
@Override
public void onSuccess(Set<String> result) {
// 成功獲取線上翻譯所支援的語種。
}
});
同步方法示例程式碼:
try {
Set<String> result = MLTranslateLanguage.syncGetCloudAllLanguages();
// 成功獲取線上翻譯所支援的語種。
} catch (MLException e) {
// 獲取線上翻譯所支援的語種出現異常。
}
- 進行線上文字翻譯(錯誤碼資訊可參見:機器學習服務錯誤碼)。
非同步方法示例程式碼:
// 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();
}
- 翻譯完成後,釋放資源。
if (mlRemoteTranslator!= null) {
mlRemoteTranslator.stop();
}
瞭解更多詳情>>
訪問華為開發者聯盟官網
獲取開發指導文件
華為移動服務開源倉庫地址:GitHub、Gitee
關注我們,第一時間瞭解 HMS Core 最新技術資訊~