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 לקובץ 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. מאתחלים לקוח SpeechTranslator על ידי יצירת אובייקט הגדרה SpeechTranslatorOptions.
  2. משתמשים ב-Kotlin Flow API כדי לוודא שהתכונה זמינה ולנהל את הורדות המודלים.
  3. יוצרים אובייקט SpeechTranslatorRequest כדי להעביר בסטרימינג חבילות נתונים של TranslationAudio ולראות את תוצאות התרגום בזמן אמת. קובץ האודיו צריך להיות בפורמט PCM‏ 16-bit‏, 16kHz, מונו.
// 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) בעל ביצועים גבוהים. בטבלה הבאה מפורטים כמה דגמי טלפונים נפוצים שנתמכים, אבל כדי לוודא שהמכשיר נתמך, צריך לבדוק את ערכת השבבים שלו.

משפחת ערכות שבבים מזהי ערכות שבבים מכשירים לדוגמה הגרסה המינימלית של מערכת ההפעלה
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

בעיות נפוצות בהגדרה

ממשקי ה-API של ML Kit GenAI מסתמכים על אפליקציית Android AICore כדי לגשת ל-Gemini Nano. כשמגדירים מכשיר חדש (כולל איפוס) או מאפסים את אפליקציית AICore (למשל, מנקים את הנתונים, מסירים את האפליקציה ומתקינים אותה מחדש), יכול להיות שלאפליקציית AICore לא יהיה מספיק זמן לסיים את תהליך ההפעלה (כולל הורדת ההגדרות העדכניות מהשרת). כתוצאה מכך, יכול להיות שממשקי ה-API של ML Kit GenAI לא יפעלו כמו שצריך. ריכזנו כאן את הודעות השגיאה הנפוצות שמופיעות במהלך ההגדרה, והסברנו איך לטפל בהן:

הודעת שגיאה לדוגמה איך לטפל בבעיה
‫AICore נכשל עם סוג השגיאה ‎4-CONNECTION_ERROR וקוד השגיאה ‎601-BINDING_FAILURE: שירות AICore נכשל בקישור. זה יכול לקרות כשמתקינים את האפליקציה באמצעות ממשקי ה-API של ML Kit GenAI מיד אחרי הגדרת המכשיר, או כשמסירים את AICore אחרי שהאפליקציה מותקנת. כדי לפתור את הבעיה, צריך לעדכן את אפליקציית AICore ואז להתקין מחדש את האפליקציה.
‫AICore נכשל עם סוג השגיאה ‎3-PREPARATION_ERROR וקוד השגיאה ‎606-FEATURE_NOT_FOUND: התכונה ... לא זמינה. זה יכול לקרות אם AICore לא סיים להוריד את ההגדרות העדכניות. כשהמכשיר מחובר לאינטרנט, בדרך כלל לוקח כמה דקות עד כמה שעות לעדכן אותו. הפעלה מחדש של המכשיר יכולה לזרז את העדכון.

חשוב לדעת שאם תוכנת האתחול של המכשיר לא נעולה, גם תופיע השגיאה הזו – ה-API הזה לא תומך במכשירים עם תוכנות אתחול לא נעולות.
‫AICore נכשל עם סוג השגיאה ‎1-DOWNLOAD_ERROR וקוד השגיאה ‎0-UNKNOWN: התכונה ... נכשלה עם סטטוס הכישלון 0 והשגיאה esz: UNAVAILABLE: לא ניתן לפתור את המארח ... צריך להמתין כמה דקות כשהמכשיר מחובר לרשת ואז לנסות שוב.