API Terjemahan Ucapan GenAI ML Kit memungkinkan terjemahan audio lisan secara real-time dan di perangkat dalam berbagai bahasa. Dengan menggunakan model ucapan AI generatif Google, Speech Translation API memberikan penerjemahan speech-to-text yang berfokus pada privasi, berkualitas tinggi, dan berlatensi rendah tanpa memerlukan pemrosesan audio berbasis cloud.
Kemampuan utama
- Kelola seluruh proses melalui satu API, mulai dari memverifikasi apakah model sudah siap, memulai download, hingga menjalankan terjemahan yang sebenarnya. Lihat Mengintegrasikan Speech Translation API untuk mengetahui detail implementasi.
- Proses audio live dari mikrofon atau file, dan terima hasil teks sementara dan akhir menggunakan Kotlin Flow untuk update real-time.
- Lakukan semua tugas analisis dan terjemahan audio di perangkat untuk menjaga privasi pengguna dan mendukung fungsionalitas offline penuh.
Hasil contoh
| Audio input | Bahasa sumber | Bahasa target | Teks output |
|---|---|---|---|
| Audio lisan: "Halo, bagaimana kabar Anda hari ini?" | Inggris (en-US) | Spanyol (es-ES) | "Hola, ¿cómo estás hoy?" |
| thought Audio lisan: "こんにちは、はじめまして" | Jepang (ja-JP) | Inggris (en-US) | "Halo, senang bertemu dengan Anda" |
Prasyarat
Untuk menggunakan Speech Translation API, Anda harus memenuhi persyaratan berikut:
- Anda harus memiliki perangkat yang didukung.
- Perangkat Anda harus memiliki versi beta terbaru (
versionCode 210665810atau yang lebih tinggi) dari aplikasi Pengenalan dan Sintesis Ucapan (com.google.android.tts) dari Google. - Perangkat Anda harus memiliki penyimpanan kosong minimal 4,0 GB untuk mendownload Gemini Nano V4.
Mulai
Untuk memulai, tambahkan dependensi Terjemahan Ucapan ML Kit ke file build.gradle.kts (atau build.gradle) level modul Anda:
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'
}
Mengintegrasikan Speech Translation API
Untuk mengintegrasikan Speech Translation SDK ke dalam aplikasi Anda, selesaikan langkah-langkah berikut:
- Lakukan inisialisasi klien
SpeechTranslatordengan membuat objek konfigurasiSpeechTranslatorOptions. - Gunakan Kotlin Flow API untuk memverifikasi ketersediaan fitur dan mengelola download model.
- Buat objek
SpeechTranslatorRequestuntuk menstreaming paket dataTranslationAudiodan amati hasil terjemahan real-time. Audio input harus dalam format PCM 16-bit, 16 kHz, mono.
// 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()
Perangkat yang didukung
Untuk menggunakan Speech Translation API, perangkat Anda harus memiliki akselerator neural (TPU/NPU) berperforma tinggi yang terintegrasi dalam chipset-nya. Tabel berikut mencantumkan beberapa model ponsel utama yang didukung, tetapi perlu diingat bahwa untuk memverifikasi dukungan, Anda harus memeriksa chipset perangkat Anda.
| Kelompok chipset | ID Chipset | Perangkat contoh | Versi OS minimum |
|---|---|---|---|
| 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 |
Masalah penyiapan umum
API GenAI ML Kit mengandalkan aplikasi Android AICore untuk mengakses Gemini Nano. Saat perangkat baru disiapkan (termasuk direset), atau aplikasi AICore baru direset (misalnya, hapus data, di-uninstal, lalu diinstal ulang), aplikasi AICore mungkin tidak memiliki cukup waktu untuk menyelesaikan inisialisasi (termasuk mendownload konfigurasi terbaru dari server). Akibatnya, API GenAI ML Kit mungkin tidak berfungsi seperti yang diharapkan. Berikut adalah pesan error penyiapan umum yang mungkin Anda lihat dan cara menanganinya:
| Contoh pesan error | Cara menangani |
| AICore gagal dengan jenis error 4-CONNECTION_ERROR dan kode error 601-BINDING_FAILURE: Layanan AICore gagal mengikat. | Hal ini dapat terjadi saat Anda menginstal aplikasi menggunakan ML Kit GenAI API segera setelah penyiapan perangkat atau saat AICore di-uninstal setelah aplikasi Anda diinstal. Mengupdate aplikasi AICore, lalu menginstal ulang aplikasi Anda akan memperbaiki masalah ini. |
| AICore gagal dengan jenis error 3-PREPARATION_ERROR dan kode error 606-FEATURE_NOT_FOUND: Fitur ... tidak tersedia. |
Hal ini dapat terjadi jika AICore belum selesai mendownload konfigurasi terbaru. Saat perangkat terhubung ke internet, biasanya perlu waktu beberapa menit hingga beberapa jam untuk mengupdate. Memulai ulang perangkat dapat mempercepat update.
Perhatikan bahwa jika bootloader perangkat tidak terkunci, Anda juga akan melihat error ini—API ini tidak mendukung perangkat dengan bootloader yang tidak terkunci. |
| AICore gagal dengan jenis error 1-DOWNLOAD_ERROR dan kode error 0-UNKNOWN: Fitur ... gagal dengan status kegagalan 0 dan error esz: UNAVAILABLE: Tidak dapat me-resolve host ... | Pertahankan koneksi jaringan, tunggu beberapa menit, lalu coba lagi. |