GenAI Speech Translation API

تتيح واجهة ML Kit GenAI Speech Translation API ترجمة المحتوى الكلامي الصوتي في الوقت الفعلي على الجهاز فقط بمختلف اللغات. باستخدام نماذج الكلام المستندة إلى الذكاء الاصطناعي التوليدي من Google، توفّر واجهة Speech Translation API ترجمة الكلام إلى نص بلغة أخرى بزمن انتقال منخفض وجودة عالية مع التركيز على الخصوصية، بدون الحاجة إلى معالجة الصوت المستندة إلى السحابة الإلكترونية.

الإمكانات الأساسية

  • يمكنك إدارة العملية بأكملها من خلال واجهة برمجة تطبيقات واحدة، بدءًا من التحقّق من جاهزية النموذج وبدء عمليات التنزيل، وصولاً إلى تنفيذ الترجمة الفعلية. يمكنك الاطّلاع على دمج Speech Translation API لمعرفة تفاصيل التنفيذ.
  • يمكنك معالجة الصوت المباشر من الميكروفون أو الملفات، والحصول على نتائج نصية متوسطة ونهائية باستخدام Kotlin Flow للحصول على تحديثات في الوقت الفعلي.
  • تنفيذ جميع مهام تحليل الصوت والترجمة على الجهاز فقط للحفاظ على خصوصية المستخدم وإتاحة الوظائف الكاملة بلا إنترنت

أمثلة النتائج

إدخال الصوت اللغة المصدر اللغة الهدف النتائج المعروضة
محتوى كلامي صوتي: "مرحبًا، كيف حالك اليوم؟" الإنجليزية (en-US) الإسبانية (es-ES) "مرحبًا، كيف حالك اليوم؟"
المحتوى الكلامي الصوتي: "こんにちは、はじめまして" اليابانية (ja-JP) العربية (ar-AE) "مرحبًا، سعدتُ بلقائك"

المتطلبات الأساسية

لاستخدام Speech Translation API، يجب استيفاء المتطلبات التالية:

  • يجب أن يكون لديك جهاز متوافق.
  • يجب أن يتوفّر على جهازك أحدث إصدار تجريبي (versionCode 210665810 أو إصدار أحدث) من تطبيق "التعرّف على الكلام وتركيبه" (com.google.android.tts) من Google.
  • يجب أن تتوفّر في جهازك مساحة تخزين تبلغ 4.0 غيغابايت على الأقل لتنزيل Gemini Nano V4.

البدء

للبدء، أضِف تبعية "ترجمة الكلام" في حزمة تعلّم الآلة إلى ملف 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

لدمج حزمة تطوير البرامج (SDK) لترجمة الكلام في تطبيقك، أكمِل الخطوات التالية:

  1. ابدأ عملية إعداد عميل SpeechTranslator من خلال إنشاء عنصر ضبط SpeechTranslatorOptions.
  2. استخدِم واجهة Kotlin Flow API للتحقّق من توفّر الميزة وإدارة عمليات تنزيل النماذج.
  3. أنشئ كائن SpeechTranslatorRequest لبث حزم بيانات TranslationAudio ومراقبة نتائج الترجمة في الوقت الفعلي. يجب أن يكون الصوت المُدخَل بتنسيق PCM ‏16 بت، 16 كيلوهرتز، أحادي.
// 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 وPixel 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

المشاكل الشائعة في الإعداد

تعتمد واجهات برمجة التطبيقات للذكاء الاصطناعي التوليدي في "حزمة تعلّم الآلة" على تطبيق Android AICore للوصول إلى Gemini Nano. عند إعداد جهاز للتو (بما في ذلك إعادة الضبط)، أو إعادة ضبط تطبيق AICore للتو (مثل محو البيانات وإلغاء التثبيت ثم إعادة التثبيت)، قد لا يتوفّر لتطبيق AICore الوقت الكافي لإنهاء عملية الإعداد (بما في ذلك تنزيل أحدث الإعدادات من الخادم). نتيجةً لذلك، قد لا تعمل واجهات برمجة التطبيقات GenAI في حزمة تعلّم الآلة على النحو المتوقّع. في ما يلي رسائل الخطأ الشائعة في الإعداد التي قد تظهر لك وكيفية التعامل معها:

مثال على رسالة خطأ طريقة التعامل
تعذَّر تشغيل AICore وظهر نوع الخطأ 4-CONNECTION_ERROR ورمز الخطأ 601-BINDING_FAILURE: تعذَّر ربط خدمة AICore. قد يحدث ذلك عند تثبيت التطبيق باستخدام واجهات برمجة تطبيقات الذكاء الاصطناعي التوليدي في "حزمة تعلّم الآلة" فورًا بعد إعداد الجهاز أو عند إلغاء تثبيت AICore بعد تثبيت تطبيقك. من المفترض أن يؤدي تحديث تطبيق AICore ثم إعادة تثبيت تطبيقك إلى حلّ المشكلة.
تعذّر تشغيل AICore وظهر نوع الخطأ ‎3-PREPARATION_ERROR ورمز الخطأ ‎606-FEATURE_NOT_FOUND: الميزة ... غير متاحة. قد يحدث ذلك عندما لا ينتهي AICore من تنزيل أحدث الإعدادات. عندما يكون الجهاز متصلاً بالإنترنت، يستغرق عادةً التحديث من بضع دقائق إلى بضع ساعات. يمكن أن تؤدي إعادة تشغيل الجهاز إلى تسريع عملية التحديث.

يُرجى العِلم أنّه إذا كان برنامج الإقلاع في الجهاز غير مقفل، سيظهر لك هذا الخطأ أيضًا، لأنّ واجهة برمجة التطبيقات هذه لا تتوافق مع الأجهزة التي تتضمّن برامج إقلاع غير مقفلة.
تعذّر تشغيل AICore وظهر نوع الخطأ 1-DOWNLOAD_ERROR ورمز الخطأ 0-UNKNOWN: تعذّر تشغيل الميزة ... وظهرت حالة التعذّر 0 والخطأ esz: UNAVAILABLE: Unable to resolve host ... يُرجى إبقاء الاتصال بالشبكة والانتظار لبضع دقائق ثم إعادة المحاولة.