Interfejs ML Kit GenAI Speech Translation API umożliwia tłumaczenie w czasie rzeczywistym na urządzeniu tekstu mówionego w różnych językach. Interfejs Speech Translation API wykorzystuje modele mowy generatywnej AI od Google, aby zapewniać tłumaczenie z zamianą mowy na tekst o niskim opóźnieniu, wysokiej jakości i z naciskiem na prywatność, bez konieczności przetwarzania dźwięku działającego w chmurze.
Najważniejsze funkcje
- Zarządzaj całym procesem za pomocą jednego interfejsu API – od sprawdzania, czy model jest gotowy, przez inicjowanie pobierania, po wykonywanie tłumaczenia. Szczegółowe informacje o implementacji znajdziesz w artykule Integracja interfejsu Speech Translation API.
- Przetwarzaj dźwięk na żywo z mikrofonu lub plików i otrzymuj zarówno pośrednie, jak i końcowe wyniki tekstowe za pomocą Kotlin Flow, aby otrzymywać aktualizacje w czasie rzeczywistym.
- Wszystkie zadania związane z analizą i tłumaczeniem dźwięku powinny być wykonywane na urządzeniu, aby chronić prywatność użytkownika i zapewnić pełną funkcjonalność offline.
Przykładowe wyniki
| Dźwięk wejściowy | Język źródłowy | Język docelowy | Tekst wyjściowy |
|---|---|---|---|
| Tekst mówiony: „Dzień dobry, co słychać?”. | angielski (en-US) | Spanish (es-ES) | „Hola, ¿cómo estás hoy?” |
| Tekst mówiony: „こんにちは、はじめまして” | japoński (ja-JP), | angielski (en-US) | „Cześć, miło Cię poznać” |
Wymagania wstępne
Aby korzystać z interfejsu Speech Translation API, musisz spełniać te wymagania:
- Musisz mieć obsługiwane urządzenie.
- Na urządzeniu musi być zainstalowana najnowsza wersja beta (
versionCode 210665810lub nowsza) aplikacji Rozpoznawanie i synteza mowy (com.google.android.tts) od Google. - Aby pobrać Gemini Nano V4, musisz mieć na urządzeniu co najmniej 4,0 GB wolnego miejsca.
Rozpocznij
Aby rozpocząć, dodaj zależność ML Kit Speech Translation do pliku build.gradle.kts (lub build.gradle) na poziomie modułu:
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")
}
Zakręcony
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'
}
Integracja interfejsu Speech Translation API
Aby zintegrować pakiet SDK do tłumaczenia mowy z aplikacją, wykonaj te czynności:
- Zainicjuj klienta
SpeechTranslator, tworząc obiekt konfiguracjiSpeechTranslatorOptions. - Użyj interfejsu Kotlin Flow API, aby sprawdzić dostępność funkcji i zarządzać pobieraniem modeli.
- Utwórz obiekt
SpeechTranslatorRequest, aby przesyłać strumieniowo pakiety danychTranslationAudioi obserwować wyniki tłumaczenia w czasie rzeczywistym. Wejściowy plik audio musi być w formacie 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()
Obsługiwane urządzenia
Aby korzystać z interfejsu Speech Translation API, urządzenie musi mieć w chipsecie zintegrowany wysokowydajny akcelerator neuronowy (TPU/NPU). W tabeli poniżej znajdziesz niektóre z najpopularniejszych obsługiwanych modeli telefonów. Pamiętaj jednak, że aby sprawdzić, czy urządzenie jest obsługiwane, musisz sprawdzić jego chipset.
| Rodzina chipsetów | Identyfikatory chipsetów | Przykładowe urządzenia | Minimalna wersja systemu operacyjnego |
|---|---|---|---|
| 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 |
Typowe problemy z konfiguracją
Interfejsy ML Kit GenAI API korzystają z aplikacji Android AICore, aby uzyskać dostęp do Gemini Nano. Gdy urządzenie jest dopiero konfigurowane (w tym resetowane) lub aplikacja AICore jest dopiero resetowana (np. wyczyszczone dane, odinstalowana i ponownie zainstalowana), aplikacja AICore może nie mieć wystarczająco dużo czasu na zakończenie inicjowania (w tym pobranie najnowszych konfiguracji z serwera). W związku z tym interfejsy ML Kit GenAI API mogą nie działać zgodnie z oczekiwaniami. Oto typowe komunikaty o błędach konfiguracji, które mogą się pojawić, oraz sposoby ich rozwiązywania:
| Przykładowy komunikat o błędzie | Jak odpowiedzieć |
| Wystąpił błąd AICore typu 4-CONNECTION_ERROR z kodem błędu 601-BINDING_FAILURE: nie udało się powiązać usługi AICore. | Może się tak zdarzyć, gdy zainstalujesz aplikację za pomocą interfejsów API ML Kit GenAI natychmiast po skonfigurowaniu urządzenia lub gdy AICore zostanie odinstalowany po zainstalowaniu aplikacji. Problem powinien zostać rozwiązany po zaktualizowaniu aplikacji AICore i ponownym zainstalowaniu aplikacji. |
| AICore: błąd typu 3-PREPARATION_ERROR i kod błędu 606-FEATURE_NOT_FOUND: funkcja … jest niedostępna. |
Może się tak zdarzyć, gdy AICore nie zakończy pobierania najnowszych konfiguracji. Gdy urządzenie jest połączone z internetem, aktualizacja trwa zwykle od kilku minut do kilku godzin. Ponowne uruchomienie urządzenia może przyspieszyć aktualizację.
Pamiętaj, że jeśli program rozruchowy urządzenia jest odblokowany, również zobaczysz ten błąd – ten interfejs API nie obsługuje urządzeń z odblokowanymi programami rozruchowymi. |
| Błąd AICore typu 1-DOWNLOAD_ERROR i kod błędu 0-UNKNOWN: funkcja … nie powiodła się ze stanem błędu 0 i błędem esz: UNAVAILABLE: nie można rozpoznać hosta … | Utrzymaj połączenie sieciowe, poczekaj kilka minut i spróbuj ponownie. |