المحتوى
- بناء واجهة مستخدم الكلام إلى النص
- إضافة التعرف على الكلام إلى تطبيق Android الخاص بك
- 1. بدء RecognizerIntent
- 2. تلقي استجابة الكلام
- اختبار المشروع الخاص بك
- تغليف
تستخدم العديد من التطبيقات والخدمات والأدوات المنزلية التعرف على الكلام لتوفير تجربة مستخدم أفضل وتحسين إمكانية الوصول. هناك عدد لا يحصى من تطبيقات Android التي تستخدم التعرف على الكلام - وأبرزها هو Google Assistant - فلماذا لا تحذو حذوها وتضيف هذه الميزة إلى تطبيقات Android الخاصة بك؟
في هذه المقالة ، سأشارك طريقة سريعة وسهلة للبدء في استخدام ميزة "تحويل النص إلى نص" من Android ، والتي يمكن أن تكون مفيدة في مجموعة واسعة من التطبيقات. على سبيل المثال ، يمكنك استخدام التعرّف على الكلام لأتمتة إدخال البيانات اليدوي المملة ، وإنشاء الترجمات تلقائيًا ، أو حتى كأساس لتطبيق الترجمة الذي "يستمع" إلى إدخال صوتي ، ويحوله إلى نص ، ثم يترجم هذا النص ويعرض النتائج على المستخدم.
بغض النظر عن نوع التطبيق الذي تقوم بإنشائه ، يمكن التعرف على الكلام تحسين إمكانية الوصول من خلال تزويد المستخدمين بطريقة بديلة للتفاعل مع التطبيق الخاص بك. على سبيل المثال ، قد يجد الأشخاص الذين يعانون من مشكلات في التنقل أو البراعة أو الرؤية سهولة في التنقل بين تطبيقات الأجهزة المحمولة باستخدام الأوامر الصوتية بدلاً من شاشة اللمس أو لوحة المفاتيح. بالإضافة إلى ذلك ، وفقًا لمنظمة الصحة العالمية (WHO) ، يعاني أكثر من مليار شخص من أشكال الإعاقة ، التي تعادل حوالي 15٪ من سكان العالم. يمكن أن تؤدي إضافة ميزات إمكانية الوصول إلى تطبيقاتك إلى زيادة جمهورك المحتمل بدرجة كبيرة.
بحلول نهاية هذه المقالة ، ستكون قد أنشأت تطبيقًا بسيطًا لتحويل الكلام إلى نص يسجل صوتك ، ويقوم بتحويله إلى نص ، ثم يعرض هذا النص على الشاشة.
بناء واجهة مستخدم الكلام إلى النص
للبدء ، قم بإنشاء مشروع Android جديد باستخدام قالب "نشاط فارغ".
سننشئ تطبيقًا بسيطًا يتكون من زر يقوم ، عند النقر عليه ، بتشغيل "هدف تحويل النص إلى نص" من Android ويعرض مربع حوار يشير إلى أن التطبيق الخاص بك مستعد لقبول إدخال الكلام. بمجرد انتهاء المستخدم من التحدث ، سيتم تحويل مدخلاته إلى نص ، ثم يتم عرضها كجزء من TextView.
لنبدأ بإنشاء التصميم الخاص بنا:
هذا يعطينا التصميم التالي:
إضافة التعرف على الكلام إلى تطبيق Android الخاص بك
نحن التقاط ومعالجة إدخال الكلام في خطوتين:
1. بدء RecognizerIntent
أسهل طريقة لتنفيذ تحويل الكلام إلى نص هي استخدام RecognizerIntent.ACTION_RECOGNIZE_SPEECH. يطالب هذا الهدف المستخدم بإدخال صوتي عن طريق تشغيل مربع حوار الميكروفون المألوف في Android.
بمجرد توقف المستخدم عن التحدث ، سيتم إغلاق مربع الحوار تلقائيًا وسيرسل ACTION_RECOGNIZE_SPEECH الصوت المسجل من خلال أداة التعرف على الكلام.
نبدأ RecognizerIntent.ACTION_RECOGNIZE_SPEECH باستخدام startActivityForResult () مع إضافات مجمعة. لاحظ أنه ما لم ينص على خلاف ذلك ، فإن أداة التعرف تستخدم لغة الجهاز الافتراضية.
باطلة عامة onClick (عرض v) {// شغّل the RecognizerIntent intent // Intent intent = new Intent (RecognizerIntent.ACTION_RECOGNIZE_SPEECH)؛ جرب {startActivityForResult (هدف ، REQUEST_CODE) ؛ } catch (ActivityNotFoundException a) {}}
2. تلقي استجابة الكلام
بمجرد اكتمال عملية التعرف على الكلام ، سترسل ACTION_RECOGNIZE_SPEECH النتائج مرة أخرى إلى نشاط الاستدعاء كمجموعة من السلاسل.
نظرًا لأننا قمنا بتشغيل RecognizerIntent عبر startActivityForResult () ، فإننا نتعامل مع بيانات النتائج عن طريق تجاوز onActivityResult (int requestCode ، و int resultCode ، و Intent data) في النشاط الذي بدأ استدعاء التعرف على الكلام.
يتم إرجاع النتائج بترتيب تنازلي لثقة أداة التعرف على الكلام. لذلك ، للتأكد من أننا نعرض النص الأكثر دقة ، نحتاج إلى اتخاذ موضع الصفر من قائمة ArrayList التي تم إرجاعها ، ثم عرضها في TextView لدينا.
Override // تعريف طريقة OnActivityResult في نشاط المتصل المتصل لدينا // النشاط المحمي void onActivityResult (الباحث: intCode ، و int resultCode ، و Intent data) {super.onActivityResult (requestCode ، resultCode ، data)؛ رمز التبديل (requestCode) {case REQUEST_CODE: {// إذا تم إرجاع RESULT_OK ... // if (resultCode == RESULT_OK && null! = data) {//...then استرداد ArrayList // ArrayList لاحظ أن "تحويل النص إلى نص" لا يتطلب اتصال إنترنت نشطًا ، لذلك سيعمل بشكل صحيح حتى عندما يكون المستخدم في وضع عدم الاتصال. بعد الانتهاء من جميع الخطوات المذكورة أعلاه ، يجب أن يبدو نشاطك الرئيسي على النحو التالي: استيراد android.content.ActivityNotFoundException؛ استيراد androidx.appcompat.app.AppCompatActivity ؛ استيراد android.os.Bundle ؛ استيراد android.content.Intent ؛ استيراد android.speech.RecognizerIntent؛ استيراد android.widget.TextView؛ استيراد android.view.View ؛ استيراد java.util.ArrayList؛ تم توسيع MainActivity من الفئة العامة AppCompatActivity {private static final int REQUEST_CODE = 100؛ TextView النص الخاص الإخراج ؛ Override محمية void onCreate (Bundle saveInstanceState) {super.onCreate (saveInstanceState)؛ setContentView (R.layout.activity_main)؛ textOutput = (TextView) findViewById (R.id.textOutput) ؛ } // يتم استدعاء هذه الطريقة مع الضغط على الزر // public void onClick (عرض v) // إنشاء نية باستخدام إجراء "RecognizerIntent.ACTION_RECOGNIZE_SPEECH" // {Intent intent = new Intent (RecognizerIntent.ACTION_RECOGNIZE_SPEECH) ؛ حاول {// بدء النشاط وانتظر الاستجابة // startActivityForResult (intent، REQUEST_CODE)؛ } catch (ActivityNotFoundException a) {}}Override // تعامل مع النتائج // محمية خالية من onActivityResult (int requestCode ، int resultCode ، بيانات Intent) {super.onActivityResult (requestCode ، resultCode ، data)؛ التبديل (requestCode) {case REQUEST_CODE: {if (resultCode == RESULT_OK && null! = data) {ArrayList يمكنك تنزيل المشروع المكتمل من جيثب. لوضع طلبك في الاختبار: في هذه المقالة ، رأينا كيف يمكنك إضافة التعرف على الكلام بسرعة وسهولة إلى تطبيقات Android ، باستخدام ميزة الكلام إلى النص. هل واجهت أي تطبيقات Android تستخدم التعرف على الكلام بطرق مفاجئة أو مبتكرة؟ التالى: أنشئ تطبيق Android للواقع المعزز باستخدام Google ARCoreاختبار المشروع الخاص بك
تغليف