Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Android SDK
Code

إنشاء تطبيق ذكي مع جوجل سحابة الكلام واللغة الطبيعية واجهات برمجة التطبيقات

by
Difficulty:IntermediateLength:LongLanguages:

Arabic (العربية/عربي) translation by Kaso Toluppa (you can also view the original English article)

تطبيق الذي يفهم لغة طبيعية حقاً هو شيء هواة الخيال العلمي والمبرمجين والباحثين منظمة العفو الدولية قد يحلم منذ عقود. اليوم، بفضل التقدم الكبير في تكنولوجيات التعلم آلة، هذا الحلم أقرب من أي وقت مضى إلى أن تصبح حقيقة واقعة. ما هو أكثر من ذلك، جعلت الخدمات المستندة إلى مجموعة النظراء، مثل "جوجل سحابة آلة التعلم" تلك التكنولوجيات متاحة بحرية للجميع لاستخدامه.

ستتعرف في هذا البرنامج التعليمي على كيفية استخدام اثنين من واجهات برمجة التطبيقات (APIs) اللتان تعتمدان على اللغة الطبيعية والتي توفرها  و Cloud Natural Language API . من خلال استخدامها معًا ، منصة Google Cloud Machine Learning: Cloud Speech APIيمكنك إنشاء تطبيقات يمكنها التعامل مع الكلام في مجموعة متنوعة من اللغات المحكية على نطاق واسع.

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

للمتابعة ، ستحتاج إلى:

  • استوديو الروبوت 2.2 أو أعلى
  • حساب Google Cloud Platform
  • جهاز يعمل بنظام التشغيل Android 4.4 أو إصدار أحدث

1-لماذا استخدام واجهات برمجة التطبيقات هذه؟

يجب أن يحتوي التطبيق الذي يمكنه معالجة الكلام على الإمكانيات التالية:

  • يجب أن يكون قادراً على استخراج الكلمات الفردية من البيانات الأولية للصوت.
  • يجب أن تكون قادرة على جعل المتعلمين التخمينات حول العلاقات النحوية بين الكلمات فقد انتزعت.

تمكّنك واجهات برمجة تطبيقات Cloud Speech و Cloud Natural Language من إضافة الإمكانيات المذكورة أعلاه إلى تطبيق Android في غضون دقائق.

تُستخدم واجهة برمجة تطبيقات Cloud Speech كأداة التعرف على الكلام الأكثر حداثة والتي يمكن أن تنقل بدقة الكلام بأكثر من 80 لغة. ويمكنه أيضًا التعامل بقوة مع اللهجات الإقليمية والظروف الصاخبة.

على مذكرة مماثلة، هو API اللغة الطبيعية سحابة معالجة النظام التي يمكن، بالقرب من الإنسان مستوى الدقة، تحديد اللعب الكلمات الأدوار في الجمل نظراً لأنها لغة. وهو يدعم حاليا عشر لغات، وكما يوفر تحليل الكيان والمشاعر.

2. تمكين واجهات برمجة التطبيقات

.قبل استخدام واجهات برمجة تطبيقات الكلام واللغة الطبيعية ، يجب عليك تمكينها في وحدة تحكم Google Cloud. لذا قم بتسجيل الدخول إلى وحدة التحكم وانتقل إلى API Manager> Library .

Cloud console library

تمكين واجهة برمجة تطبيقات Speech ، انقر على رابط Speech API في قسم Google Cloud Machine Learning . في الصفحة التي تفتح بعد ذلك ، اضغط على الزر Enable (تمكين) .

Enabling Cloud Speech API

اضغط على زر الخلف في المستعرض للعودة إلى الصفحة السابقة.

في هذه المرة ، قم بتمكين واجهة برمجة تطبيقات اللغة الطبيعية من خلال النقر على رابط واجهة برمجة التطبيقات للغة الطبيعية والضغط على الزتمكين في الصفحة التالية.

Enabling Cloud Natural Language API

ستحتاج إلى مفتاح واجهة برمجة التطبيقات أثناء التفاعل مع واجهات برمجة التطبيقات. إذا لم يكن لديك واحد بالفعل ، فافتح علامة التبويب بيانات الاعتماد ، واضغط على الزر إنشاء بيانات اعتماد ، واختر مفتاح واجهة برمجة التطبيقات .

الآن سترى إطار منبثق عرض مفتاح API الخاص بك. علما بأنه انخفاض حتى يمكن استخدامه في وقت لاحق.

API key generated

3-تكوين المشروع الخاص بك

كلا واجهات برمجة التطبيقات تستند إلى JSON وبقية نقاط النهاية يمكنك التفاعل مع مباشرة باستخدام أي مكتبة شبكة الاتصال. كل من واجهات برمجة التطبيقات تعتمد على JSON ولها نقاط نهاية REST يمكنك التفاعل معها مباشرةً باستخدام أي مكتبة شبكة. ومع ذلك ، يمكنك توفير الكثير من الوقت - وكتابة المزيد من الرموز القابلة للقراءة - باستخدام مكتبات عميل واجهة برمجة تطبيقات Google المتاحة لها. لذا افتح ملفbuild.gradle لوحدة برامج app المشروع وأضف تبعيات compile التالية إليه:

بالإضافة إلى ذلك ، سنقوم بتنفيذ بعض عمليات إدخال / إخراج الملف في هذا البرنامج التعليمي. لتبسيطها ، إضافة تبعية compile لمكتبة عام IO .

وأخيرًا ، لا تنس طلب إذن INTERNET في ملف AndroidManifest.xml . وبدون ذلك ، لن يكون تطبيقك قادرًا على الاتصال بخوادم Google.

4-استخدام الكلام سحابة API

غنى عن القول أن API الكلام سحابة تتوقع البيانات الصوتية كواحدة من مدخلاته. ولذلك، ونحن سوف الآن تكون إنشاء تطبيق الروبوت التي يمكن نسخ ملفات الصوت.

للحفاظ على بساطة ، سنقوم فقط بنسخ ملفات FLAC ، الملفات التي تستخدم تنسيق ترميز Free Lossless Audio Codec. قد يكون لديك بالفعل هذه الملفات على جهازك. إذا لم تقم بذلك ، نقترح عليك تنزيل عدد قليل من ويكيميديا ​​كومنز .

الخطوة 1: إنشاء تخطيط

سيكون تخطيط Button مزودًا بموزع Button يمكن الضغط عليه لعرض منتقي الملفات ، وهي واجهة يمكن من خلالها تصفح وتحديد الملفات 

سيحتوي التخطيط أيضًا على عنصر واجهة مستخدم TextView لعرض نص ملف الصوت المحدد. وفقًا لذلك ، أضف الشفرة التالية إلى ملف XML لتنسيق نشاطك:

الخطوة 2: إنشاء من منتقي ملف

يجب أن يتم عرض واجهة منتقي الملفات عندما يقوم المستخدم بالضغط على الزر الذي OnClickListener في الخطوة السابقة ، لذا قمOnClickListener كائن OnClickListener به. قبل القيام بذلك ، تأكد من تهيئة الزر باستخدام الأسلوب findViewById() .

باستخدام Android Access Storage Framework ، والذي يتوفر على الأجهزة التي تعمل على مستوى API 19 أو أعلى ، فإن إنشاء منتقي الملفات لا يتطلب سوى القليل من الجهد. كل ما عليك فعله هو إنشاء هدف ACTION_GET_CONTENT الإجراء وتمريره إلى الأسلوبstartActivityForResult() .  بشكل اختياري ، يمكنك تقييد منتقي الملفات لعرض ملفات FLAC فقط عن طريق تمرير نوع MIME المناسب إلى أسلوب setType() لكائن Intent .

سيكون ناتج منتقي الملفات عبارة عن كائن Intent آخر يحتوي على URI للملف الذي حدده المستخدم. لتتمكن من الوصول إليه ، يجب تجاوز طريقةonActivityResult() الخاصة بفئة Activity الخاصة بك.

الخطوة 3: ترميز الملف

يتوقع Cloud Speech API أن تكون بيانات الصوت الخاصة به في شكل سلسلة Base64. لإنشاء مثل هذه السلسلة ، يمكنك قراءة محتويات الملف الذي encodeBase64String() المستخدم في صفيف byte وتمريره إلى طريقة الأداة المساعدة encodeBase64String() التي توفرها مكتبة Google API Client.

ومع ذلك، لديك حاليا فقط uri الخاص بالملف المحدد، لا على المسار المطلق. وهذا يعني أنه، ليتمكن من قراءة الملف، يجب عليك حل URI أولاً. يمكنك القيام بذلك عن طريق تمريره إلى أسلوب openInputStream () لمحلل المحتوى الخاص بنشاطك. بمجرد الوصول إلى دفق الإدخال الخاص بالملف ، يمكنك ببساطة تمريره إلى الأسلوب toByteArray () الخاص بفئة IOUtils لتحويله إلى صفيف من البايتات. يوضح لك الكود التالي:

كما يمكنك أن ترى في التعليمات البرمجية أعلاه، نحن نستخدم مؤشر ترابط جديد لتشغيل كافة عمليات الإدخال/الإخراج. من المهم القيام بذلك بغية التأكد من أن واجهة المستخدم للتطبيق لا تجمد.

الخطوة 4: تشغيل الملف

في رأيي ، فإن تشغيل الملف الصوتي الذي يتم نسخه ، بينما يتم نسخه ، فكرة جيدة. لا يتطلب الأمر الكثير من الجهد ، ويحسن تجربة المستخدم

يمكنك استخدام فئة MediaPlayer لتشغيل ملف الصوت. بمجرد الإشارة إلى URI الملف باستخدام أسلوب setDataSource () الخاص به ، يجب استدعاء الأسلوب prepare () الخاص به لإعداد المشغل بشكل متزامن. عندما يكون اللاعب جاهزًا ، يمكنك استدعاء طريقة start () لبدء تشغيل الملف.

بالإضافة إلى ذلك ، يجب عليك تذكر تحرير موارد اللاعب بمجرد اكتمال تشغيل الملف. للقيام بذلك ، قم بتعيين كائن OnCompletionListener إليه واستدعاء أسلوب release () الخاص به. يوضح لك الكود التالي:

الخطوة 5: شكل متزامن نسخ الملف

في هذه المرحلة ، يمكننا إرسال البيانات الصوتية المشفرة باستخدام Base64 إلى واجهة برمجة تطبيقات Cloud Speech لنسخها. ولكن أولاً ، أقترح تخزين مفتاح واجهة برمجة التطبيقات الذي أنشأته سابقًا كمتغير عضو لفئةاActivity.

لتتمكن من الاتصال بـ Cloud Speech API ، يجب إنشاء كائن Speech باستخدام مثيل Speech.Builder. كحجج ، يتوقع مُنشئه نقل HTTP ومصنع JSON بالإضافة إلى ذلك ، للتأكد من أن المفتاح API مضمن في كل طلب HTTP إلى API ، يجب إقران كائن SpeechRequestInitializer مع منشئ وتمرير المفتاح إليه.

تعمل التعليمة البرمجية التالية على إنشاء كائن Speech باستخدام فئة AndroidJsonFactory كمصنّع JSON وفئة NetHttpTransport كنقل HTTP:

يجب إخبار واجهة برمجة تطبيقات Cloud Speech بلغة الملف الصوتي. يمكنك القيام بذلك عن طريق إنشاء كائن RecognitionConfig واستدعاء أسلوب setLanguageCode () الخاص به. في ما يلي كيفية تهيئتها لنسخ اللغة الإنجليزية الأمريكية فقط:

بالإضافة إلى ذلك ، يجب أن يتم التفاف السلسلة المشفرة Base64 في كائن RecognitionAudio قبل أن يمكن استخدامه من قبل API.

بعد ذلك ، باستخدام كائنات RecognitionConfig و RecognitionAudio ، يجب عليك إنشاء كائن SyncRecognizeRequest. كما يوحي اسمها ، تسمح لك بإنشاء طلب HTTP لنقل بيانات الصوت بشكل متزامن. متى تم إنشاء الكائن، يمكنك تمرير كوسيطة إلى أسلوب syncrecognize() واستدعاء الأسلوب execute() للكائن Speech.SpeechOperations.Syncrecognize الناجمة عن ذلك الفعل بتنفيذ طلب HTTP.

قيمة الإرجاع لأسلوب execute() هو كائن SyncRecognizeResponse ، والذي قد يحتوي على عدة نسخ بديلة. في الوقت الحالي ، سنستخدم البديل الأول فقط.

وأخيراً، لعرض النسخة للمستخدم، يمكنك تمرير أنه للقطعة TextView. وبطبيعة الحال، نظراً للتغييرات في واجهة المستخدم يجب أن يحدث دائماً في مؤشر ترابط UI، تأكد من القيام بذلك بعد استدعاء الأسلوب runOnUiThread() النشاط الخاص بك.

يمكنك الآن تشغيل التطبيق الخاص بك، حدد ملف فلك يحتوي على الكلام في اللغة الإنجليزية الأمريكية، وانظر API الكلام سحابة توليد نسخة لذلك.

تجدر الإشارة إلى أن واجهة برمجة تطبيقات Cloud Speech يمكنها حاليًا معالجة ملفات صوتية أحادية القناة فقط. إذا أرسلت ملفًا يحتوي على قنوات متعددة ، فستتلقى ردًا على الخطأ.

5-استخدام اللغة الطبيعية سحابة API

الآن أن لدينا نسخة، ونحن يمكن تمرير إلى API سحابة اللغة الطبيعية تحليلها. للحفاظ على هذا البرنامج التعليمي قصيرة، أننا سوف فقط تشغيل تحليل الكيان والمشاعر على النسخة. بعبارة أخرى ، سنحدد جميع الكيانات المذكورة في النص ، مثل الأشخاص والأماكن والمهن ، ونحدد أيضًا ما إذا كانت مشاعرها السلبية سلبية أو محايدة أو إيجابية.

الخطوة 1: تحديث التخطيط

للسماح للمستخدم ببدء التحليل ، يجب أن يحتوي تخطيطنا على عنصر Button آخر. لذلك ، أضف الشفرة التالية إلى ملف XML لتنسيق نشاطك:

الخطوة 2: إضافة تعليق توضيحي نسخة

تقدم واجهة برمجة تطبيقات Cloud Natural Language REST خيارًا ملائمًا يُسمى annotateText يسمح لك بتشغيل كل من تحليل المشاعر والكيان في مستند واحد فقط بطلب HTTP. سنستخدمه لتحليل النسخة الخاصة بنا.

ظرًا لأنه يجب أن يبدأ التحليل عندما يضغط المستخدم على الزر الذي أنشأناه في الخطوة السابقة ، أضف OnClickListener إليه.

للتفاعل مع واجهة برمجة التطبيقات باستخدام مكتبة عميل واجهة برمجة تطبيقات Google ، يجب إنشاء كائن CloudNaturalLanguage باستخدام الفئة CloudNaturalLanguage.Builder. يتوقع مُنشئه أيضًا نقل HTTP ومصنع JSON.

علاوة على ذلك ، عن طريق تعيين مثيل CloudNaturalLanguageRequestInitializer إليه ، يمكنك إجباره على تضمين مفتاح API الخاص بك في جميع طلباته.

يجب وضع كل النص الذي تريد تحليله باستخدام واجهة برمجة التطبيقات داخل كائن Document. جب أن يحتوي كائن Document أيضًا على معلومات التكوين ، مثل لغة النص وما إذا كان قد تمت تهيئته كنص عادي أو HTML. وفقا لذلك ، قم بإضافة التعليمة البرمجية التالية:

بعد ذلك ، يجب إنشاء عنصر Featuresيحدد الميزات التي تهتم بتحليلها. يوضح لك التعليمة البرمجية التالية كيفية إنشاء كائن Features التي تقول أنك تريد استخراج الكيانات وتشغيل تحليل المشاعر فقط.

مكنك الآن استخدام كائنات Document Features لإنشاء كائن AnnotateTextRequest ، والتي يمكن تمريرها إلى الأسلوب annotateText () لإنشاء كائن AnnotateTextResponse.

علما أننا يتم توليد الاستجابة في مؤشر ترابط جديد لأنه لا يسمح لعمليات الشبكة في مؤشر ترابط UI.

يمكنك استخراج قائمة كيانات من كائن AnnotateTextResponse عن طريق استدعاء الأسلوب getEntities () الخاص به. وبالمثل ، يمكنك استخراج الشعور الكلي للنسخة عن طريق استدعاء الأسلوب getDocumentSentiment (). حصول على الدرجة الفعلية من الشعور ، ومع ذلك ، يجب عليك أيضا استدعاء طريقة getScore () ، والتي ترجع float.

كما قد تتوقع، نقاط يساوي صفر يعني الشعور بمشاعر محايدة، على درجة أكبر من الصفر يعني المشاعر الإيجابية، وعلى درجة أقل من الصفر يعني المشاعر السلبية.

ما تفعله بقائمة الكيانات ونقطة الشعور هو بالطبع متروك لك. الآن ، دعنا فقط نعرضهما باستخدام مثيل AlertDialog.

مع التعليمات البرمجية أعلاه، سيتم عرض النتيجة المشاعر في عنوان مربع الحوار، وسيتم عرض قائمة بالكيانات في الهيئة.

إذا قمت بتشغيل التطبيق الآن، يجب أن تكون قادرة على تحليل محتوى الملفات الصوتية، فضلا عن تدوين لهم.

استنتاج

تعرف الآن كيفية استخدام الكلام سحابة وسحابة اللغة الطبيعية واجهات برمجة التطبيقات معا لإنشاء تطبيق الروبوت التي يمكن نسخ ملف صوتي بل أيضا بتشغيل تحليل الكيان والمشاعر على ذلك. في هذا البرنامج التعليمي، تعلمت أيضا كيفية العمل مع "إطار Access تخزين" الروبوت ومكتبات جوجل عميل API.

تعمل Google بشكل منتظم على إضافة ميزات جديدة ومثيرة للاهتمام - إلى جانب الدعم لمزيد من اللغات - إلى واجهات برمجة التطبيقات. وللاطلاع على أحدث المعلومات عنها ، يرجى الرجوع إلى official documentation.

وفي حين كنت هنا، تحقق بعض لدينا الوظائف الأخرى في التطبيق المحمول سحابة الخدمات وآله التعلم!

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.