當用戶有跨語種交流或音頻內容翻譯的需求時,應用需要能自動檢測語音內容再輸出為用戶需要的語言文字。 HMS Core機器學習服務提供同聲傳譯能力,同聲傳譯實現將實時輸入的長語音實時翻譯為不同語種的文本以及語音,並實時輸出原語音文本、翻譯後的文本以及翻譯文本的語音播報。 在直播類,會議類的應用中,同聲傳 ...
當用戶有跨語種交流或音頻內容翻譯的需求時,應用需要能自動檢測語音內容再輸出為用戶需要的語言文字。
HMS Core機器學習服務提供同聲傳譯能力,同聲傳譯實現將實時輸入的長語音實時翻譯為不同語種的文本以及語音,並實時輸出原語音文本、翻譯後的文本以及翻譯文本的語音播報。
在直播類,會議類的應用中,同聲傳譯顯得尤為重要。比如,在會議類應用中,可以將正在進行的會議發言人的發言內容實時輸出為目標語言文字,便於不同語言的人實時理解會議內容,提高會議效率。在直播類應用中,可以將主播的說話內容實時輸出為用戶需要的語言文字,再進行實時播報,提高了用戶的觀看體驗。
HMS Core機器學習服務同聲傳譯能力不僅支持連續5小時的實時長語音輸入轉換為文本,還支持中英文互譯和多種音色語音播報,滿足不同類型應用中不同場景的需要。
DEMO示例
開發步驟
在進行開發之前,您需要完成必要的開發準備工作,同時請確保您的工程中已經配置HMS Core SDK的Maven倉地址,並且完成了本服務的SDK集成。
SDK示例代碼如下:
dependencies{
// 引入同聲傳譯服務SDK
implementation 'com.huawei.hms:ml-computer-si-sdk:3.5.0.312'
}
-
請參見雲端鑒權信息使用須知,設置您應用的鑒權信息。
-
創建同傳識別器,並設置配置。
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();
- 創建語音識別結果監聽器回調。
// 回調實現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) {
// 通知應用狀態發生改變。
}
}
- 綁定同傳識別器。
mlSimultaneousInterpretationRecognizer.setMLSimultaneousInterpretationListener(new SIRecognitionListener());
- 調用startRecognizing啟動語音識別。
// 開始識別。
mlSimultaneousInterpretationRecognizer.startRecognizing(config);
- 識別完成後,結束識別並釋放資源。
if (mlSimultaneousInterpretationRecognizer!= null) {
mlSimultaneousInterpretationRecognizer.destroy();
}
瞭解更多詳情>>
訪問華為開發者聯盟官網
獲取開髮指導文檔
華為移動服務開源倉庫地址:GitHub、Gitee
關註我們,第一時間瞭解 HMS Core 最新技術資訊~