ضمن واجهة برمجة التطبيقات GenAI Speech Recognition API في ML Kit، يمكنك تحويل المحتوى الصوتي إلى نص. تتيح واجهة برمجة التطبيقات هذه الأوضاع التالية:
- التذكرة الأساسية: تستخدم واجهة برمجة التطبيقات Speech Recognition API نموذج التعرّف على الكلام التقليدي على الجهاز فقط، على غرار واجهة برمجة التطبيقات SpeechRecognizer API
- تتوفّر هذه الواجهة بشكل عام على معظم أجهزة Android التي تعمل بالمستوى 31 من واجهة برمجة التطبيقات والإصدارات الأحدث
- إعدادات متقدمة: تستخدم واجهة برمجة التطبيقات Speech Recognition API نموذج الذكاء الاصطناعي التوليدي، الذي يوفّر
تغطية لغوية أوسع وجودة أفضل بشكل عام
- تتوفّر هذه الواجهة على أجهزة Pixel 10، ويجري تطويرها لتتوفّر على المزيد من الأجهزة
الإمكانات الأساسية
- التقاط البيانات الواردة من الميكروفون أو ملف صوتي
- يتم توفير النص المحوّل من الصوت إلى نص كبيان متواصل، وقد يكون جزئيًا في البداية (وقد يتغيّر) قبل أن يصبح المحتوى النهائي.
أمثلة النتائج
| الصوت | الوضع | اللغة | تحويل الصوت إلى نص |
|---|---|---|---|
| audio_1 | التذكرة الأساسية | en-US | "This is a short message" |
| audio_2 | إعدادات متقدمة | es-ES | "Este es un mensaje corto." |
مقارنة مع واجهة برمجة التطبيقات Speech Recognition API على النظام الأساسي
عند استخدام "الوضع الأساسي"، توفّر واجهة برمجة التطبيقات Speech Recognition API في حزمة تعلّم الآلة وظائف أساسية مشابهة لواجهة برمجة التطبيقات Speech Recognition API على النظام الأساسي. تتمثّل إحدى المزايا الرئيسية لـ حزمة تعلّم الآلة في إتاحة مجموعة أوسع من إصدارات نظام Android الأساسي، ما يتطلّب المستوى 31 من واجهة برمجة التطبيقات أو إصدارًا أحدث، وهو نطاق أوسع من بعض واجهات برمجة التطبيقات على النظام الأساسي.
بالإضافة إلى ذلك، تستخدم واجهة برمجة التطبيقات Speech Recognition API في ML Kit نموذج Gemini على الجهاز في "الوضع المتقدّم"، ما يوفّر تغطية لغوية أوسع.
البدء
أضِف واجهة برمجة التطبيقات ML Kit Speech Recognition API كإحدى التبعيات في إعدادات build.gradle.
implementation("com.google.mlkit:genai-speech-recognition:1.0.0-alpha1")
لدمج واجهة برمجة التطبيقات Speech Recognition API في تطبيقك، أنشِئ عميلاً SpeechRecognizer. تحقَّق من حالة ميزات النموذج الضرورية على الجهاز فقط ونزِّل النموذج إذا لم يكن موجودًا على الجهاز. بعد
إعداد الإدخال الصوتي في SpeechRecognizerRequest، شغِّل الاستنتاج باستخدام
العميل لتلقّي بيانات البث من تدفق Kotlin. وأخيرًا، لا تنسَ إغلاق العميل لتحرير الموارد.
// 1. Create a SpeechRecognizer with desired options.
val options: SpeechRecognizerOptions =
speechRecognizerOptions {
locale = Locale.US
preferredMode = SpeechRecognizerOptions.Mode.MODE_ADVANCED
}
val speechRecognizer: SpeechRecognizer = SpeechRecognition.getClient(options)
// 2. Check if the recognition model is available or needs downloading.
launch {
val status: Int = speechRecognizer.checkStatus()
if (status == FeatureStatus.DOWNLOADABLE) {
// 3. If needed, download the model and monitor progress.
speechRecognizer.download.collect { downloadStatus ->
when (downloadStatus) {
is DownloadStatus.DownloadCompleted -> {
// Model is ready, start recognition.
startMyRecognition(speechRecognizer)
}
is DownloadStatus.DownloadFailed -> {
// Handle download failure (e.g., inform the user).
}
is DownloadStatus.DownloadProgress -> {
// Handle download progress (e.g., update a progress bar).
}
}
}
} else if (status == FeatureStatus.AVAILABLE) {
// Model is already ready, start recognition immediately.
startMyRecognition(speechRecognizer)
} else {
// Handle other statuses (e.g., DOWNLOADING, UNAVAILABLE).
}
}
// 4. Define your recognition logic using a suspend function.
suspend fun startMyRecognition(recognizer: SpeechRecognizer) {
// Create a request (e.g., specifying audio source).
val request: SpeechRecognizerRequest
= speechRecognizerRequest { audioSource = AudioSource.fromMic() }
// Start recognition and process the continuous stream of responses.
recognizer.startRecognition(request).collect {
// Process the SpeechRecognitionResponse data here.
}
}
// 5. Stop recognition and clean up resources when the session is complete.
launch {
recognizer.stopRecognition()
recognizer.close()
}
متطلّبات الإدخال الصوتي
تتيح واجهة برمجة التطبيقات GenAI Speech Recognition API إدخال البيانات من الميكروفون أو من مصدر مخصّص من خلال واصف ملف.
إذا كنت تستخدم AudioSource.fromPfd(parcelFileDescriptor)، يجب أن يستوفي الصوت المُدخَل المتطلّبات الصارمة التالية:
- التنسيق: تنسيق PCM غير مضغوط بدون رأس بمعدّل 16 بت.
- القنوات: أحادية (قناة واحدة).
- معدّل البيانات في الملف الصوتي: 16 كيلوهرتز
بالنسبة إلى معظم حالات الاستخدام، يُنصح باستخدام AudioSource.fromMic() لأنّه يتعامل مع هذه القيود تلقائيًا.
اللغات والأجهزة المتوافقة
| الوضع | اللغات |
| التذكرة الأساسية | en-US وfr-FR (إصدار تجريبي) وit-IT (إصدار تجريبي) وde-DE (إصدار تجريبي) وes-ES (إصدار تجريبي) و hi-IN (إصدار تجريبي) وja-JP (إصدار تجريبي) وpt-BR (إصدار تجريبي) وtr-TR (إصدار تجريبي) وpl-PL (إصدار تجريبي) و cmn-Hans-CN (إصدار تجريبي) وko-KR (إصدار تجريبي) وcmn-Hant-TW (إصدار تجريبي) وru-RU (إصدار تجريبي) و vi-VN (إصدار تجريبي) |
| إعدادات متقدمة | اللغات التي عادةً ما تكون دقتها عالية: en-US وko-KR وes-ES و fr-FR وde-DE وit-IT وpt-PT وcmn-Hans-CN وcmn-Hant-TW وja-JP وth-TH و ru-RU وnl-NL (إصدار تجريبي) وda-DK (إصدار تجريبي) وsv-SE (إصدار تجريبي) وpl-PL (إصدار تجريبي) و hi-IN (إصدار تجريبي) وvi-VN (إصدار تجريبي) وid-ID (إصدار تجريبي) وar-SA (إصدار تجريبي) و tr-TR (إصدار تجريبي) |
الأجهزة المعتمدة
| الوضع | الأجهزة المعتمدة |
| التذكرة الأساسية | أجهزة Android التي تعمل بالمستوى 31 من واجهة برمجة التطبيقات والإصدارات الأحدث |
| إعدادات متقدمة | Pixel 10 |
المشاكل الشائعة في الإعداد
تعتمد واجهات برمجة التطبيقات GenAI في حزمة تعلّم الآلة على تطبيق Android AICore للوصول إلى Gemini Nano. عند إعداد جهاز جديد (بما في ذلك إعادة ضبطه)، أو عند إعادة ضبط تطبيق AICore (على سبيل المثال، محو البيانات أو إلغاء تثبيته ثم إعادة تثبيته)، قد لا يكون لدى تطبيق AICore وقت كافٍ لإنهاء عملية التهيئة (بما في ذلك تنزيل أحدث الإعدادات من الخادم). نتيجةً لذلك، قد لا تعمل واجهات برمجة التطبيقات GenAI في حزمة تعلّم الآلة على النحو المتوقّع. في ما يلي رسائل الخطأ الشائعة في الإعداد التي قد تظهر وكيفية التعامل معها:
| مثال على رسالة خطأ | كيفية التعامل مع الخطأ |
| تعذّر تشغيل AICore بسبب نوع الخطأ 4-CONNECTION_ERROR ورمز الخطأ 601-BINDING_FAILURE: تعذّر ربط خدمة AICore. | قد يحدث ذلك عند تثبيت التطبيق باستخدام واجهات برمجة التطبيقات GenAI في حزمة تعلّم الآلة مباشرةً بعد إعداد الجهاز أو عند إلغاء تثبيت AICore بعد تثبيت تطبيقك. يجب أن يؤدي تحديث تطبيق AICore ثم إعادة تثبيت تطبيقك إلى حلّ المشكلة. |
| تعذّر تشغيل AICore بسبب نوع الخطأ 3-PREPARATION_ERROR ورمز الخطأ 606-FEATURE_NOT_FOUND: الميزة ... غير متاحة. |
قد يحدث ذلك عندما لم ينتهِ تطبيق AICore من تنزيل أحدث الإعدادات. عندما يكون الجهاز متصلاً بالإنترنت، يستغرق التحديث عادةً بضع دقائق إلى بضع ساعات. يمكن أن تؤدي إعادة تشغيل الجهاز إلى تسريع عملية التحديث.
يُرجى العِلم أنّه إذا كانت أداة تحميل برامج الجهاز غير مقفلة، سيظهر لك هذا الخطأ أيضًا، لأنّ واجهة برمجة التطبيقات هذه لا تتيح استخدام الأجهزة التي تحتوي على أداة تحميل برامج غير مقفلة. |
| تعذّر تشغيل AICore بسبب نوع الخطأ 1-DOWNLOAD_ERROR ورمز الخطأ 0-UNKNOWN: تعذّر تشغيل الميزة ... بسبب حالة الخطأ 0 والخطأ esz: UNAVAILABLE: Unable to resolve host ... | يُرجى الحفاظ على الاتصال بالشبكة والانتظار بضع دقائق ثم إعادة المحاولة. |
نموذج الرموز البرمجية
- استكشِف عينة الرموز البرمجية لواجهة برمجة التطبيقات ML Kit Speech Recognition API على GitHub