GenAI Speech Translation API

ML Kit 生成式 AI 語音翻譯 API 可在裝置端即時翻譯多種語言的語音音訊。Speech Translation API 採用 Google 的生成式 AI 語音模型,可提供低延遲、高品質且注重隱私的語音轉文字翻譯,不需雲端式音訊處理。

主要功能

  • 透過單一 API 管理整個程序,包括確認模型是否就緒、啟動下載,以及執行實際翻譯。如需實作詳情,請參閱「整合 Speech Translation API」。
  • 處理來自麥克風或檔案的即時音訊,並使用 Kotlin Flow 接收中間和最終文字結果,即時更新。
  • 在裝置端執行所有音訊分析和翻譯工作,維護使用者隱私,並支援完整的離線功能。

搜尋結果範例

輸入音訊 原文語言 譯文語言 輸出文字
語音音訊:「嗨,今天過得好嗎?」 英文 (en-US) 西班牙文 (es-ES) "Hola, ¿cómo estás hoy?"
語音音訊:「こんにちは、はじめまして」 日文 (ja-JP) 英文 (en-US) 「你好,很高興認識你」

必要條件

如要使用 Speech Translation API,必須符合下列條件:

  • 必須使用支援的裝置。
  • 裝置必須安裝最新 Beta 版 (versionCode 210665810 以上) 的 Google 語音辨識及合成應用程式 (com.google.android.tts)。
  • 裝置必須至少有 4.0 GB 的可用儲存空間,才能下載 Gemini Nano V4。

開始使用

首先,請將 ML Kit 語音翻譯依附元件新增至模組層級的 build.gradle.kts (或 build.gradle) 檔案:

Kotlin

dependencies {
    // ML Kit Base Infrastructure
    implementation("com.google.mlkit:common:18.10.0")
    // ML Kit GenAI Speech Translation SDK
    implementation("com.google.mlkit:genai-speech-translation:1.0.0-alpha1")
}

Groovy

dependencies {
    // ML Kit Base Infrastructure
    implementation 'com.google.mlkit:common:18.10.0'
    // ML Kit GenAI Speech Translation SDK
    implementation 'com.google.mlkit:genai-speech-translation:1.0.0-alpha1'
}

整合 Speech Translation API

如要將 Speech Translation SDK 整合至應用程式,請完成下列步驟:

  1. 建構 SpeechTranslatorOptions 設定物件,初始化 SpeechTranslator 用戶端。
  2. 使用 Kotlin Flow API 驗證功能可用性,並管理模型下載作業。
  3. 建立 SpeechTranslatorRequest 物件來串流 TranslationAudio 資料封包,並查看即時翻譯結果。輸入音訊必須採用 PCM 16 位元、16kHz、單聲道格式。
// Initialize the client.
val options = SpeechTranslatorOptions.Builder(Locale.US, Locale.CHINESE).build()
val client = SpeechTranslation.getClient(options)

// Check and download the on-device model.
if (client.checkStatus() == FeatureStatus.DOWNLOADABLE) {
    client.download().collect { status ->
        println("Download progress: $status")
    }
}

// Construct a streaming request with raw audio (PCM 16-bit, 16kHz, mono).
val audioFlow = flow {
    emit(TranslationAudio(Locale.US, rawAudioBytes))
}
val request = SpeechTranslatorRequest.Builder(audioFlow).build()

// Start a session and collect translated responses.
client.startTranslation(request).collect { response ->
    when (response) {
        is SpeechTranslatorResponse.Text -> {
            println("Translation (${response.locale}): ${response.translatedText}")
        }
        is SpeechTranslatorResponse.ErrorResponse -> {
            println("Translation failed: ${response.e.message}")
        }
        is SpeechTranslatorResponse.CompletedResponse -> {
            println("Session closed.")
        }
    }
}

// Close the client when done.
client.close()

支援的裝置

如要使用 Speech Translation API,裝置的晶片組必須整合高效能神經加速器 (TPU/NPU)。下表列出支援的部分主要手機型號,但請務必檢查裝置的晶片組,確認是否支援。

晶片組系列 晶片組 ID 裝置範例 最低 OS 版本
Google Tensor Google Tensor G5、G6+
  • Google Pixel 10、11
Android 14
Qualcomm Snapdragon SM8650、SM8750、SM8850、SM8845、SM8975、SM8950、SM8735
  • Samsung Galaxy S25、S25+、S25 Ultra
  • Samsung Galaxy S26、S26+、S26 Ultra
  • Samsung Galaxy Z Fold7
  • Xiaomi 15
  • OnePlus 13
  • Motorola Razr 60 Ultra
Android 15
MediaTek Dimensity 9300、9400+
  • OPPO Find X10、X10 Pro
  • Samsung Galaxy Tab S12
Android 15

常見設定問題

ML Kit GenAI API 仰賴 Android AICore 應用程式存取 Gemini Nano。裝置剛設定完成 (包括重設),或 AICore 應用程式剛重設 (例如清除資料、解除安裝後重新安裝),AICore 應用程式可能沒有足夠時間完成初始化 (包括從伺服器下載最新設定)。因此,ML Kit GenAI API 可能無法正常運作。以下是常見的設定錯誤訊息和處理方式:

錯誤訊息範例 應對方式
AICore 失敗,錯誤類型為 4-CONNECTION_ERROR,錯誤代碼為 601-BINDING_FAILURE:AICore 服務繫結失敗。 舉例來說,在裝置設定完成後,立即安裝使用 ML Kit GenAI API 的應用程式,或是在安裝應用程式後解除安裝 AICore,都可能發生這種情況。更新 AICore 應用程式,然後重新安裝應用程式,應該就能解決問題。
AICore 失敗,錯誤類型為 3-PREPARATION_ERROR,錯誤代碼為 606-FEATURE_NOT_FOUND:無法使用「...」功能。 如果 AICore 尚未下載完最新設定,就可能發生這種情況。裝置連上網際網路後,通常需要幾分鐘到幾小時才能完成更新。重新啟動裝置可加快更新速度。

請注意,如果裝置的系統啟動載入程式已解鎖,您也會看到這則錯誤訊息,因為這個 API 不支援系統啟動載入程式已解鎖的裝置。
AICore 失敗,錯誤類型 1-DOWNLOAD_ERROR,錯誤代碼 0-UNKNOWN:功能 ... 失敗,失敗狀態 0,錯誤 esz:UNAVAILABLE:無法解析主機 ... 請保持網路連線,稍候幾分鐘再重試。