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 整合至應用程式,請完成下列步驟:
- 建構
SpeechTranslatorOptions設定物件,初始化SpeechTranslator用戶端。 - 使用 Kotlin Flow API 驗證功能可用性,並管理模型下載作業。
- 建立
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+ |
|
Android 14 |
| Qualcomm Snapdragon | SM8650、SM8750、SM8850、SM8845、SM8975、SM8950、SM8735 |
|
Android 15 |
| MediaTek | Dimensity 9300、9400+ |
|
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:無法解析主機 ... | 請保持網路連線,稍候幾分鐘再重試。 |