GenAI Speech Translation API

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:

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:

  1. Zainicjuj klienta SpeechTranslator, tworząc obiekt konfiguracji SpeechTranslatorOptions.
  2. Użyj interfejsu Kotlin Flow API, aby sprawdzić dostępność funkcji i zarządzać pobieraniem modeli.
  3. Utwórz obiekt SpeechTranslatorRequest, aby przesyłać strumieniowo pakiety danych TranslationAudio i 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+
  • Google Pixel 10, 11
Android 14
Qualcomm Snapdragon SM8650, SM8750, SM8850, SM8845, SM8975, SM8950, SM8735
  • Samsung Galaxy S25, S25+, S25 Ultra
  • Samsung Galaxy S26, S26+, S26 Ultra
  • Samsung Galaxy Z Fold7
  • Xiaomi 15
  • OnePlus 13
  • Motorola Razr 60 Ultra
Android 15
MediaTek Dimensity 9300, 9400+
  • OPPO Find X10, X10 Pro
  • Samsung Galaxy Tab S12
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.