“獨閱樂不如眾閱樂”。
什麼意思?就是獨自快樂閱讀,不如讓更多人能夠快樂閱讀。這就是程式設計師阿強樸素的閱讀觀。
作為外文圖書愛好者,阿強想盡情享受外文原版書的原汁原味,卻總被不時出現的陌生詞彙整得磕磕絆絆;
學生時代的外文閱讀阻礙扎堆出現在查閱文獻階段,專業且生僻的詞彙是他理解文獻效率的最大“殺手”;
而如今的全球實時新聞,再大的詞彙量也不能完美防守住新詞發起的挑戰。
為了讓更多人都能擁有更好的外文閱讀體驗,一個“哪裡不會劃哪裡”的閱讀神器在阿強的數行程式碼間誕生了,使用機器學習服務的文字翻譯能力,徒手實現一個劃詞翻譯功能,讓外文讀物閱讀體驗更順暢。
關於文字翻譯
機器學習服務提供線上和離線文字翻譯能力,支援不同語種互譯並且有網路的場景。例如:
旅遊類App中,提供將外文路牌、選單等翻譯成母語的功能,優化體驗;教育學習類App,學習多種語言時,輕鬆實現將陌生語言翻譯成熟悉的語言,提高學習效率。
同時,離線翻譯可不需網路支援,旅途中即使身處無網環境也可輕鬆解決溝通障礙。
效果展示
開發準備
在正式開發“劃詞翻譯”功能之前需要完成以下準備工作:
配置AppGallery Connect
開通服務
整合HMS Core SDK
配置混淆指令碼
新增許可權
具體開發準備可以參考文件
應用開發
2.1 參考雲測鑑權信心使用須知,設定應用的鑑權資訊
MLApplication.getInstance().setApiKey("apiKey or Token");
2.2 建立線上文字翻譯器
MLLocalTranslateSetting setting = new MLLocalTranslateSetting
.Factory()
.setSourceLangCode(mSourceLangCode)
.setTargetLangCode(mTargetLangCode)
.create();
this.localTranslator = MLTranslatorFactory.getInstance().getLocalTranslator(setting);
2.3 查詢線上翻譯所支援的語種
MLTranslateLanguage.getCloudAllLanguages().addOnSuccessListener(new OnSuccessListener<Set<String>>() {
@Override
public void onSuccess(Set<String> result) {
// 成功獲取線上翻譯所支援的語種。
}
});
2.4 進行線上文字翻譯
localTranslator.preparedModel(downloadStrategy, modelDownloadListener).addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
final Task<String> task = localTranslator.asyncTranslate(input);
task.addOnSuccessListener(new OnSuccessListener<String>() {
@Override
public void onSuccess(String text) {
displaySuccess(text, true);
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(Exception e) {
displayFailure(e);
}
});
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(Exception e) {
displayFailure(e);
}
});
2.5 翻譯完成,釋放資源
if (localTranslator != null) {
localTranslator.stop();
}
瞭解更多機器學習服務>>
瞭解更多詳情>>
訪問華為開發者聯盟官網
獲取開發指導文件
華為移動服務開源倉庫地址:GitHub、Gitee
關注我們,第一時間瞭解 HMS Core 最新技術資訊~