HMS Core機器學習服務實現同聲傳譯,支援中英文互譯和多種音色語音播報

HMSCore 發表於 2022-07-01
Machine Learning

當使用者有跨語種交流或音訊內容翻譯的需求時,應用需要能自動檢測語音內容再輸出為使用者需要的語言文字。

HMS Core機器學習服務提供同聲傳譯能力,同聲傳譯實現將實時輸入的長語音實時翻譯為不同語種的文字以及語音,並實時輸出原語音文字、翻譯後的文字以及翻譯文字的語音播報。

在直播類,會議類的應用中,同聲傳譯顯得尤為重要。比如,在會議類應用中,可以將正在進行的會議發言人的發言內容實時輸出為目標語言文字,便於不同語言的人實時理解會議內容,提高會議效率。在直播類應用中,可以將主播的說話內容實時輸出為使用者需要的語言文字,再進行實時播報,提高了使用者的觀看體驗。

HMS Core機器學習服務同聲傳譯能力不僅支援連續5小時的實時長語音輸入轉換為文字,還支援中英文互譯和多種音色語音播報,滿足不同型別應用中不同場景的需要。

DEMO示例

HMS Core機器學習服務實現同聲傳譯,支援中英文互譯和多種音色語音播報

開發步驟

在進行開發之前,您需要完成必要的開發準備工作,同時請確保您的工程中已經配置HMS Core SDK的Maven倉地址,並且完成了本服務的SDK整合。

SDK示例程式碼如下:

dependencies{
    // 引入同聲傳譯服務SDK
implementation 'com.huawei.hms:ml-computer-si-sdk:3.5.0.312'
}
  1. 請參見雲端鑑權資訊使用須知,設定您應用的鑑權資訊。
  2. 建立同傳識別器,並設定配置。
MLSimultaneousInterpretationConfig config = new 
MLSimultaneousInterpretationConfig.Factory()
                // 設定源語種,目前支援中文和英文
.setSourceLanguage(MLSimultaneousInterpretationConstants.LAN_ZH_CN)
                // 設定目標語種,目前支援中文和英文
                .setTargetLanguage(MLSimultaneousInterpretationConstants.LAN_EN_US)
                // 設定識別型別。支援原始文字+翻譯文字+翻譯語音
                .setResultType(MLSimultaneousInterpretationConstants.RESULT_TYPE_TEXT_TRANSLATED_VOICE)
                // 設定發音人,支援中、英男聲和女聲
                .setPerson(MLSimultaneousInterpretationConstants.EN_FEMALE_VOICE)
                .create();
 MLSimultaneousInterpretationRecognizer = MLSimultaneousInterpretationRecognizer.getInstance();
  1. 建立語音識別結果監聽器回撥。
// 回撥實現MLSimultaneousInterpretationListener,實現介面中的方法。
    protected class SIRecognitionListener implements MLSimultaneousInterpretationListener {
        @Override
        public void onStartListening() {
            // 錄音器開始接收聲音。
 }
        @Override
        public void onVoiceDataReceived(byte[] data) {
            // 返回給使用者原始的PCM音訊流和音訊能量,該介面並非執行在主執行緒中,返回結果需要在子執行緒中處理。
        }
        @Override
        public void onRecognizingResults(Bundle partialResults) {
            // 從SIRecognitionListener接收到持續語音識別的文字。
            // RESULTS_RECOGNIZING:原始文字;RESULTS_TRANS_RECOGNIZING:tts文字;RESULTS_SN:原始序列號;RESULTS_TRANS_SN:tts序列號
        }
        @Override
        public void onResults(Bundle results) {
            // 從SIRecognitionListener接收到完整的句子
            // RESULTS_RECOGNIZED:原始結果;RESULTS_TRANS_RECOGNIZED:tts結果
        }
        @Override
        public void onError(int error, String errorMessage) {
            // 識別發生錯誤後呼叫該介面。
        }
        @Override
        public void onState(int state, Bundle params) {
            // 通知應用狀態發生改變。
        }
    }
  1. 繫結同傳識別器。
mlSimultaneousInterpretationRecognizer.setMLSimultaneousInterpretationListener(new SIRecognitionListener());
  1. 呼叫startRecognizing啟動語音識別。
// 開始識別。 
 mlSimultaneousInterpretationRecognizer.startRecognizing(config);
  1. 識別完成後,結束識別並釋放資源。
if (mlSimultaneousInterpretationRecognizer!= null) {
  mlSimultaneousInterpretationRecognizer.destroy();
  }

瞭解更多詳情>>

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

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