GenAI Speech Translation API

‫ML Kit GenAI Speech Translation API ترجمه هم‌زمان و درون‌دستگاهی صوت گفتاری را در زبان‌های مختلف امکان‌پذیر می‌کند. «میانای برنامه‌سازی کاربردی ترجمه گفتار» بااستفاده از مدل‌های گفتار هوش مصنوعی زایای Google، ترجمه گفتار به نوشتار را با تأخیر کم، کیفیت بالا، و تمرکز بر حریم خصوصی ارائه می‌دهد، بدون اینکه به پردازش صوتی مبتنی بر ابر نیاز داشته باشد.

قابلیت‌های کلیدی

  • کل فرایند را ازطریق یک میانای برنامه‌سازی کاربردی مدیریت کنید، از درستی‌سنجی اینکه آیا مدل آماده است، شروع بارگیری‌ها، تا اجرای ترجمه واقعی. برای جزئیات پیاده‌سازی، ادغام Speech Translation API را ببینید.
  • صدای زنده را از میکروفون یا فایل‌ها پردازش کنید و بااستفاده از Kotlin Flow برای به‌روزرسانی‌های هم‌زمان، هم نتایج متنی میانی و هم نهایی را دریافت کنید.
  • همه کارهای تجزیه‌وتحلیل و ترجمه صوتی را در دستگاه انجام دهید تا حریم خصوصی کاربر حفظ شود و از عملکرد کامل آفلاین پشتیبانی شود.

نتایج نمونه

صدای ورودی زبان مبدأ زبان مقصد نوشتار خروجی
صوتی گفتاری: «سلام، امروز حالتان چطور است؟» انگلیسی (en-US) اسپانیایی (اسپانیایی) "Hola, ¿cómo estás hoy?"
صوتی گفتاری: «こんにちは、はじめまして» ژاپنی (ja-JP) انگلیسی (en-US) «سلام، از آشنایی با شما خوشحالم»

پیش‌نیازها

برای استفاده از Speech Translation API، باید این شرایط را داشته باشید:

  • باید دستگاه پشتیبانی‌شده داشته باشید.
  • دستگاهتان باید جدیدترین نسخه بتا (versionCode 210665810 یا بالاتر) برنامه «ترکیب و تشخیص گفتار» (com.google.android.tts) از Google را داشته باشد.
  • دستگاهتان باید حداقل ۴ گیگابایت فضای ذخیره‌سازی آزاد داشته باشد تا بتواند Gemini Nano V4 را بارگیری کند.

شروع کنید

برای شروع، وابستگی «ترجمه گفتار» 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. با ساختن شیء پیکربندی SpeechTranslatorOptions، کارخواه SpeechTranslator را مقداردهی اولیه کنید.
  2. از Kotlin Flow API برای تأیید دردسترس بودن ویژگی و مدیریت بارگیری‌های مدل استفاده کنید.
  3. یک شیء SpeechTranslatorRequest برای جاری‌سازی بسته‌های داده TranslationAudio ایجاد کنید و نتایج ترجمه هم‌زمان را مشاهده کنید. صدای ورودی باید در قالب PCM‏ ۱۶ بیتی، ۱۶ کیلوهرتز، تک‌کاناله باشد.
// 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

مشکلات رایج راه‌اندازی

میاناهای برنامه‌سازی کاربردی ML Kit GenAI برای دسترسی به Gemini Nano به برنامه Android AICore متکی هستند. وقتی دستگاه به‌تازگی راه‌اندازی شده است (ازجمله بازنشانی)، یا برنامه AICore به‌تازگی بازنشانی شده است (برای مثال، پاک کردن داده‌ها، حذف نصب و سپس نصب مجدد)، ممکن است برنامه AICore زمان کافی برای تکمیل مقداردهی اولیه (ازجمله بارگیری جدیدترین پیکربندی‌ها از سرور) نداشته باشد. درنتیجه، میاناهای برنامه‌سازی کاربردی GenAI در ML Kit ممکن است عملکرد موردانتظار را نداشته باشند. در اینجا پیام‌های خطای رایج راه‌اندازی که ممکن است ببینید و نحوه رسیدگی به آن‌ها آورده شده است:

نمونه پیام خطا نحوه رسیدگی
‫AICore با نوع خطای 4-CONNECTION_ERROR و کد خطای 601-BINDING_FAILURE ناموفق بود: سرویس AICore متصل نشد. این اتفاق ممکن است زمانی رخ دهد که برنامه را بااستفاده از ML Kit GenAI APIs بلافاصله پس‌از راه‌اندازی دستگاه نصب کنید یا زمانی که AICore پس‌از نصب برنامه شما حذف نصب شود. به‌روزرسانی برنامه AICore و سپس بازنصب کردن برنامه شما باید مشکل را برطرف کند.
‫AICore با نوع خطای 3-PREPARATION_ERROR و کد خطای 606-FEATURE_NOT_FOUND ناموفق بود: ویژگی ... دردسترس نیست. این اتفاق زمانی می‌افتد که AICore بارگیری جدیدترین پیکربندی‌ها را تکمیل نکرده باشد. وقتی دستگاه به اینترنت متصل باشد، معمولاً چند دقیقه تا چند ساعت طول می‌کشد تا به‌روز شود. بازراه‌اندازی دستگاه می‌تواند به‌روزرسانی را تسریع کند.

توجه داشته باشید که اگر قفل bootloader دستگاه باز باشد، این خطا را نیز خواهید دید—این API از دستگاه‌هایی که قفل bootloader آن‌ها باز است پشتیبانی نمی‌کند.
‫AICore با نوع خطای 1-DOWNLOAD_ERROR و کد خطای 0-UNKNOWN ناموفق بود: ویژگی ... با وضعیت ناموفق 0 و خطای esz: UNAVAILABLE: Unable to resolve host ... ناموفق بود اتصال شبکه را حفظ کنید، چند دقیقه صبر کنید و دوباره امتحان کنید.