GenAI Speech Translation API

ML Kit GenAI Speech Translation API を使用すると、さまざまな言語の音声のリアルタイムのオンデバイス翻訳が可能になります。Google の生成 AI 音声モデルを使用する Speech Translation API は、クラウドベースの音声処理を必要とせずに、低レイテンシ、高品質、プライバシー重視の音声文字変換翻訳を実現します。

主な機能

  • モデルの準備状況の確認、ダウンロードの開始、実際の翻訳の実行まで、プロセス全体を単一の API で管理します。実装の詳細については、Speech Translation API を統合するをご覧ください。
  • マイクまたはファイルからのライブ音声を処理し、Kotlin Flow を使用して中間テキスト結果と最終テキスト結果の両方を受信して、リアルタイムで更新します。
  • すべての音声分析と翻訳タスクをデバイス上で行い、ユーザーのプライバシーを保護し、完全なオフライン機能をサポートします。

検索結果の例

入力音声 原文の言語 翻訳する言語 出力テキスト
音声: 「こんにちは、今日の調子はどうですか?」 英語(en-US) スペイン語(es-ES) 「Hola, ¿cómo estás hoy?」
音声: 「こんにちは、はじめまして」 日本語(ja-JP) 英語(en-US) 「こんにちは、はじめまして」

前提条件

Speech Translation API を使用するには、次の要件を満たす必要があります。

始める

まず、ML Kit Speech Translation の依存関係をモジュール レベルの build.gradle.kts(または build.gradle)ファイルに追加します。

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'
}

Speech Translation API を統合する

Speech Translation SDK をアプリに統合する手順は次のとおりです。

  1. SpeechTranslatorOptions 構成オブジェクトをビルドして、SpeechTranslator クライアントを初期化します。
  2. Kotlin Flow API を使用して、機能の可用性を確認し、モデルのダウンロードを管理します。
  3. SpeechTranslatorRequest オブジェクトを作成して TranslationAudio データパケットをストリーミングし、リアルタイムの翻訳結果を観察します。入力音声は、PCM 16 ビット、16 kHz、モノラル形式にする必要があります。
// 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()

サポートされているデバイス

Speech Translation API を使用するには、デバイスのチップセットに高性能なニューラル アクセラレータ(TPU / NPU)が統合されている必要があります。次の表に、サポートされている主なスマートフォン モデルを示します。ただし、サポートを確認するには、デバイスのチップセットを確認する必要があります。

チップセット ファミリー チップセット ID 携帯端末の例 OS の最小限のバージョン
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

セットアップに関する一般的な問題

ML Kit GenAI API は、Android AICore アプリを使用して Gemini Nano にアクセスします。デバイスをセットアップ(リセットを含む)した直後や、AICore アプリをリセット(データの消去、アンインストール後の再インストールなど)した直後は、AICore アプリの初期化(サーバーからの最新の設定のダウンロードを含む)が完了するまでに十分な時間が経過していない可能性があります。そのため、ML Kit GenAI API が想定どおりに機能しない可能性があります。一般的な設定エラー メッセージとその対処方法は次のとおりです。

エラー メッセージの例 対応方法
AICore がエラータイプ 4-CONNECTION_ERROR、エラーコード 601-BINDING_FAILURE で失敗しました。AICore サービスをバインドできませんでした。 これは、デバイスのセットアップ直後に ML Kit GenAI API を使用してアプリをインストールした場合や、アプリのインストール後に AICore がアンインストールされた場合に発生する可能性があります。AICore アプリを更新してからアプリを再インストールすると、問題が解決します。
AICore がエラータイプ 3-PREPARATION_ERROR、エラーコード 606-FEATURE_NOT_FOUND で失敗しました。機能 ... は利用できません。 これは、AICore が最新の構成のダウンロードを完了していない場合に発生することがあります。デバイスがインターネットに接続されている場合、通常は数分から数時間で更新されます。デバイスを再起動すると、更新が速くなることがあります。

デバイスのブートローダーがロック解除されている場合も、このエラーが表示されます。この API は、ブートローダーがロック解除されているデバイスをサポートしていません。
AICore がエラータイプ 1-DOWNLOAD_ERROR、エラーコード 0-UNKNOWN で失敗しました。機能 ... が失敗ステータス 0、エラー esz: UNAVAILABLE: ホスト ... を解決できません、で失敗しました。 ネットワーク接続を維持し、数分待ってから再試行してください。