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 を使用するには、次の要件を満たす必要があります。
- サポートされているデバイスを使用していること。
- デバイスに、Google の音声認識と音声合成サービス アプリ(
com.google.android.tts)の最新のベータ版(versionCode 210665810以降)がインストールされている必要があります。 - Gemini Nano V4 をダウンロードするには、デバイスに 4.0 GB 以上の空き容量が必要です。
始める
まず、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 をアプリに統合する手順は次のとおりです。
SpeechTranslatorOptions構成オブジェクトをビルドして、SpeechTranslatorクライアントを初期化します。- Kotlin Flow API を使用して、機能の可用性を確認し、モデルのダウンロードを管理します。
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+ |
|
Android 14 |
| Qualcomm Snapdragon | SM8650、SM8750、SM8850、SM8845、SM8975、SM8950、SM8735 |
|
Android 15 |
| MediaTek | Dimensity 9300、9400+ |
|
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: ホスト ... を解決できません、で失敗しました。 | ネットワーク接続を維持し、数分待ってから再試行してください。 |