Dalam GenAI Speech Recognition API ML Kit, Anda dapat mentranskripsikan konten audio menjadi teks. API ini mendukung mode berikut:
- Dasar: Speech Recognition API menggunakan model pengenalan ucapan di perangkat tradisional, mirip dengan SpeechRecognizer API
- Tersedia secara umum di sebagian besar perangkat Android dengan level API 31 dan yang lebih tinggi
- Tingkat Lanjut: Speech Recognition API menggunakan model GenAI, yang menghasilkan
cakupan bahasa yang lebih luas dan kualitas keseluruhan yang lebih baik
- Tersedia di perangkat Pixel 10, dengan lebih banyak perangkat dalam pengembangan
Kemampuan utama
- Merekam input streaming dari mikrofon atau file audio
- Teks yang ditranskripsikan disediakan sebagai aliran berkelanjutan, yang awalnya mungkin berupa sebagian (dan dapat berubah) sebelum menjadi konten akhir.
Hasil contoh
| Audio | Mode | Lokal | Transkripsi |
|---|---|---|---|
| audio_1 | Dasar | en-US | "Ini adalah pesan singkat" |
| audio_2 | Lanjutan | es-ES | "Este es un mensaje corto." |
Perbandingan dengan Speech Recognition API platform
Saat menggunakan mode Dasar, ML Kit Speech Recognition API menawarkan fungsi inti yang serupa dengan Speech Recognition API platform. Keunggulan utama ML Kit adalah dukungannya untuk berbagai versi platform Android, yang memerlukan API level 31 atau yang lebih tinggi, yang lebih luas daripada beberapa API platform.
Selain itu, Speech Recognition API ML Kit menggunakan model Gemini di perangkat dalam mode Lanjutan, sehingga memberikan cakupan bahasa yang lebih luas.
Mulai
Tambahkan ML Kit Speech Recognition API sebagai dependensi dalam konfigurasi build.gradle
Anda
implementation("com.google.mlkit:genai-speech-recognition:1.0.0-alpha1")
Untuk mengintegrasikan Speech Recognition API ke dalam aplikasi Anda, buat klien
SpeechRecognizer. Periksa status fitur model di perangkat yang diperlukan dan download model jika belum ada di perangkat. Setelah
menyiapkan input audio dalam SpeechRecognizerRequest, jalankan inferensi menggunakan
klien untuk menerima output streaming dari flow Kotlin. Terakhir,
jangan lupa untuk menutup klien guna melepaskan resource.
// 1. Create a SpeechRecognizer with desired options.
val options: SpeechRecognizerOptions =
speechRecognizerOptions {
locale = Locale.US
preferredMode = SpeechRecognizerOptions.Mode.MODE_ADVANCED
}
val speechRecognizer: SpeechRecognizer = SpeechRecognition.getClient(options)
// 2. Check if the recognition model is available or needs downloading.
launch {
val status: Int = speechRecognizer.checkStatus()
if (status == FeatureStatus.DOWNLOADABLE) {
// 3. If needed, download the model and monitor progress.
speechRecognizer.download.collect { downloadStatus ->
when (downloadStatus) {
is DownloadStatus.DownloadCompleted -> {
// Model is ready, start recognition.
startMyRecognition(speechRecognizer)
}
is DownloadStatus.DownloadFailed -> {
// Handle download failure (e.g., inform the user).
}
is DownloadStatus.DownloadProgress -> {
// Handle download progress (e.g., update a progress bar).
}
}
}
} else if (status == FeatureStatus.AVAILABLE) {
// Model is already ready, start recognition immediately.
startMyRecognition(speechRecognizer)
} else {
// Handle other statuses (e.g., DOWNLOADING, UNAVAILABLE).
}
}
// 4. Define your recognition logic using a suspend function.
suspend fun startMyRecognition(recognizer: SpeechRecognizer) {
// Create a request (e.g., specifying audio source).
val request: SpeechRecognizerRequest
= speechRecognizerRequest { audioSource = AudioSource.fromMic() }
// Start recognition and process the continuous stream of responses.
recognizer.startRecognition(request).collect {
// Process the SpeechRecognitionResponse data here.
}
}
// 5. Stop recognition and clean up resources when the session is complete.
launch {
recognizer.stopRecognition()
recognizer.close()
}
Bahasa dan perangkat yang didukung
| Mode | Locales |
| Dasar | en-US, fr-FR (beta), it-IT (beta), de-DE (beta), es-ES (beta), hi-IN (beta), ja-JP (beta), pt-BR (beta), tr-TR (beta), pl-PL (beta), cmn-Hans-CN (beta), ko-KR (beta), cmn-Hant-TW (beta), ru-RU (beta), vi-VN (beta) |
| Lanjutan | Lokalitas yang biasanya memiliki akurasi tinggi: en-US, ko-KR, es-ES, fr-FR, de-DE, it-IT, pt-PT, cmn-Hans-CN, cmn-Hant-TW, ja-JP, th-TH, ru-RU, nl-NL (beta), da-DK (beta), sv-SE (beta), pl-PL (beta), hi-IN (beta), vi-VN (beta), id-ID (beta), ar-SA (beta), tr-TR (beta) |
Perangkat yang didukung
| Mode | Perangkat yang Didukung |
| Dasar | Perangkat Android yang menggunakan level API 31 dan yang lebih tinggi. |
| Lanjutan | Pixel 10 |
Masalah penyiapan umum
API GenAI ML Kit mengandalkan aplikasi AICore Android 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 terikat. | 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 saat AICore belum selesai mendownload konfigurasi terbaru. Saat perangkat terhubung ke internet, biasanya diperlukan waktu beberapa menit hingga beberapa jam untuk melakukan update. 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: Feature ... failed with failure status 0 and error esz: UNAVAILABLE: Unable to resolve host ... | Pertahankan koneksi jaringan, tunggu beberapa menit, lalu coba lagi. |
Kode contoh
- Pelajari contoh kode ML Kit Speech Recognition API di GitHub