原來,這才是開發者開啟世界讀書日的正確姿勢!

HMSCore發表於2022-04-22

“獨閱樂不如眾閱樂”。

什麼意思?就是獨自快樂閱讀,不如讓更多人能夠快樂閱讀。這就是程式設計師阿強樸素的閱讀觀。

作為外文圖書愛好者,阿強想盡情享受外文原版書的原汁原味,卻總被不時出現的陌生詞彙整得磕磕絆絆;

學生時代的外文閱讀阻礙扎堆出現在查閱文獻階段,專業且生僻的詞彙是他理解文獻效率的最大“殺手”;

而如今的全球實時新聞,再大的詞彙量也不能完美防守住新詞發起的挑戰。

為了讓更多人都能擁有更好的外文閱讀體驗,一個“哪裡不會劃哪裡”的閱讀神器在阿強的數行程式碼間誕生了,使用機器學習服務的文字翻譯能力,徒手實現一個劃詞翻譯功能,讓外文讀物閱讀體驗更順暢。

關於文字翻譯

機器學習服務提供線上和離線文字翻譯能力,支援不同語種互譯並且有網路的場景。例如:

旅遊類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();
        
}

瞭解更多機器學習服務>>

訪問機器學習服務聯盟官網

獲取機器學習服務開發指導文件

瞭解更多詳情>>

訪問華為開發者聯盟官網
獲取開發指導文件
華為移動服務開源倉庫地址:GitHubGitee

關注我們,第一時間瞭解 HMS Core 最新技術資訊~

相關文章