Mit der GenAI Speech Recognition API von ML Kit können Sie Audioinhalte in Text transkribieren. Diese API unterstützt die folgenden Modi:
- Einfach: Die Speech Recognition API verwendet das herkömmliche Spracherkennungsmodell auf dem Gerät, ähnlich der SpeechRecognizer API
- Im Allgemeinen auf den meisten Android-Geräten mit API-Level 31 und höher verfügbar
- Erweitert: Die Speech Recognition API verwendet das GenAI-Modell, das eine
breitere Sprachabdeckung und eine bessere Gesamtqualität
- bietet.
- Verfügbar auf Pixel 10- und Pixel 11-Geräten. Weitere Geräte sind in der Entwicklung.
Hauptmerkmale
- Erfasst Streamingeingaben vom Mikrofon oder aus einer Audiodatei
- Transkribierter Text wird als kontinuierlicher Stream bereitgestellt, der anfangs möglicherweise unvollständig ist (und sich ändern kann), bevor er zum endgültigen Inhalt wird.
Beispielergebnisse
| Audio | Modus | Sprache | Transkription |
|---|---|---|---|
| audio_1 | Einfach | en-US | „This is a short message“ |
| audio_2 | Erweitert | es-ES | „Este es un mensaje corto.“ |
Vergleich mit der Speech Recognition API der Plattform
Im einfachen Modus bietet die ML Kit Speech Recognition API ähnliche Kernfunktionen wie die Speech Recognition API der Plattform. Ein wichtiger Vorteil von ML Kit ist die Unterstützung einer größeren Auswahl an Android-Plattformversionen, für die API-Level 31 oder höher erforderlich ist. Das ist mehr als bei einigen Plattform-APIs.
Außerdem verwendet die ML Kit Speech Recognition API im erweiterten Modus das Gemini-Modell auf dem Gerät, das eine breitere Sprachabdeckung bietet.
Jetzt starten
Fügen Sie die ML Kit Speech Recognition API als Abhängigkeit in Ihrer build.gradle-Konfiguration hinzu.
implementation("com.google.mlkit:genai-speech-recognition:1.0.0-alpha1")
Wenn Sie die Speech Recognition API in Ihre App einbinden möchten, erstellen Sie einen SpeechRecognizer-Client. Prüfen Sie den Status der erforderlichen Modellfunktionen auf dem Gerät und laden Sie das Modell herunter, falls es noch nicht auf dem Gerät vorhanden ist. Nachdem
Sie Ihre Audioeingabe in einer SpeechRecognizerRequestvorbereitet haben, führen Sie mit
dem Client eine Inferenz aus, um Streamingausgaben aus dem Kotlin-Flow zu erhalten. Denken Sie daran, den Client zu schließen, um Ressourcen freizugeben.
// 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()
}
Anforderungen an die Audioeingabe
Die GenAI Speech Recognition API unterstützt Eingaben vom Mikrofon oder aus einer benutzerdefinierten Quelle über einen Dateideskriptor.
Wenn Sie AudioSource.fromPfd(parcelFileDescriptor) verwenden, muss die Audioeingabe die folgenden strengen Anforderungen erfüllen:
- Format: Roh-PCM ohne Header mit 16 Bit.
- Kanäle: Mono (einzelner Kanal).
- Abtastrate: 16 kHz.
Für die meisten Anwendungsfälle wird AudioSource.fromMic() empfohlen, da diese Einschränkungen automatisch berücksichtigt werden.
Unterstützte Sprachen und Geräte
| Modus | Sprachen |
| Einfach | 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) |
| Erweitert | Sprachen mit in der Regel hoher Genauigkeit: 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) |
Unterstützte Geräte
| Modus | Unterstützte Geräte |
| Einfach | Android-Geräte mit API-Level 31 und höher. |
| Erweitert | Pixel 10, Pixel 11 |
Häufig auftretende Probleme bei der Einrichtung
ML Kit GenAI APIs greifen über die Android AICore App auf Gemini Nano zu. Wenn ein Gerät gerade eingerichtet (einschließlich Zurücksetzen) oder die AICore App gerade zurückgesetzt wurde (z.B. Daten gelöscht, deinstalliert und dann neu installiert), hat die AICore App möglicherweise nicht genug Zeit, die Initialisierung abzuschließen (einschließlich des Herunterladens der neuesten Konfigurationen vom Server). Daher funktionieren die ML Kit GenAI APIs möglicherweise nicht wie erwartet. Hier sind die häufigsten Fehlermeldungen bei der Einrichtung und wie Sie damit umgehen können:
| Beispiel für Fehlermeldung | Vorgehensweise |
| AICore ist mit dem Fehlertyp 4-CONNECTION_ERROR und dem Fehlercode 601-BINDING_FAILURE fehlgeschlagen: Der AICore-Dienst konnte nicht gebunden werden. | Das kann passieren, wenn Sie die App mit ML Kit GenAI APIs sofort nach der Einrichtung des Geräts installieren oder wenn AICore deinstalliert wird, nachdem Ihre App installiert wurde. Wenn Sie die AICore App aktualisieren und dann Ihre App neu installieren, sollte das Problem behoben sein. |
| AICore ist mit dem Fehlertyp 3-PREPARATION_ERROR und dem Fehlercode 606-FEATURE_NOT_FOUND fehlgeschlagen: Die Funktion ... ist nicht verfügbar. |
Das kann passieren, wenn AICore das Herunterladen der neuesten Konfigurationen noch nicht abgeschlossen hat. Wenn das Gerät mit dem Internet verbunden ist, dauert die Aktualisierung in der Regel einige Minuten bis einige Stunden. Ein Neustart des Geräts kann die Aktualisierung beschleunigen.
Wenn der Bootloader des Geräts entsperrt ist, wird dieser Fehler ebenfalls angezeigt. Diese API unterstützt keine Geräte mit entsperrten Bootloadern. |
| AICore ist mit dem Fehlertyp 1-DOWNLOAD_ERROR und dem Fehlercode 0-UNKNOWN fehlgeschlagen: Die Funktion ... ist mit dem Fehlerstatus 0 und dem Fehler esz: UNAVAILABLE: Unable to resolve host ... fehlgeschlagen. | Behalten Sie die Netzwerkverbindung bei, warten Sie einige Minuten und versuchen Sie es noch einmal. |
Beispielcode
- Codebeispiel für die ML Kit Spracherkennung API auf GitHub ansehen