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, אתם צריכים לעמוד בדרישות הבאות:
- אתם צריכים מכשיר נתמך.
- במכשיר צריכה להיות מותקנת גרסת הבטא האחרונה (
versionCode 210665810או גרסה חדשה יותר) של אפליקציית שירותי Google לזיהוי דיבור והמרת טקסט לדיבור (com.google.android.tts). - כדי להוריד את Gemini Nano V4, צריך שיהיה במכשיר נפח אחסון פנוי של 4.0GB לפחות.
שנתחיל?
כדי להתחיל, מוסיפים את יחסי התלות של תרגום הדיבור של 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 באפליקציה:
- מאתחלים לקוח
SpeechTranslatorעל ידי יצירת אובייקט הגדרהSpeechTranslatorOptions. - משתמשים ב-Kotlin Flow API כדי לוודא שהתכונה זמינה ולנהל את הורדות המודלים.
- יוצרים אובייקט
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+ |
|
Android 14 |
| Qualcomm Snapdragon | SM8650, SM8750, SM8850, SM8845, SM8975, SM8950, SM8735 |
|
Android 15 |
| MediaTek | Dimensity 9300, 9400+ |
|
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: לא ניתן לפתור את המארח ... | צריך להמתין כמה דקות כשהמכשיר מחובר לרשת ואז לנסות שוב. |