Share via


كيف تجعل كورتانا تتواصل مع تطبيقك

المساعد الشخصي " كورتانا " كان من أهم ما جاء مع تحديث ويندوز فون 8.1 قبل عدة أشهر، حيث تمنح كورتانا للمستخدم العديد من الخصائص التي تجعله حياته أسهل، و في الحقيقة لا أتصور كيف كانت حياتي قبلها :).على سبيل المثال، يمكن لـ "كورتانا" ان تساعدك في إدارة لقاءاتك واجتماعاتك، او التنبيهات " الذكية " كـ التذكير بشيء محدد في مكان معين او التذكير بشيء آخر عند الإتصال مع أحدهم.

 

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

 

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

 

علينا ان نقوم بـ تعريف كورتانا بأن التطبيق الخاص بنا يدعم الأوامر الصوتية او بالأحرى يدعم التشغيل عبر كورتانا .. كيف ذلك ؟ يكون ذلك بملف "XML"  يسمى بـ Voice Command Definition - VCD . هذا الملف يحتوي على الأوامر التي يدعمها التطبيق الخاص بك، أيضاً اسم التطبيق الذي سينطق قبل الأمر .. مثلاً : " Bingoo .. Translate Car to Arabic " :

 

 Bingoo :  هو اسم التطبيق، والذي يجب ان ينطق قبل ان تنطق الأمر .

 Translate Car to Arabic هو الأمر، الجميل بالموضوع انه بإمكانك إخبار كورتانا بصيغة او الـ Pattern الذي سيكون عليه الامر مثلاً :

Translate {word} to {lang}

باعتبار ان {word} هي PhraseTopic  و {lang} هي PhraseList باللغات المتوفرة . فلو طلب المستخدم هذا الامر من كورتانا : Translate hello I'm Muhamed كورتانا لن تقوم بتشغيل التطبيق، لان المستخدم لم يذكر لغة في آخر الجملة ! رائع، كورتانا ذكية حتى برمجياً !

 

بعد تعريف كورتانا على التطبيق، علينا ان نتعامل مع الأمر، وذلك يكون عبر حدث : OnActivated بصفحة الـ App.xaml.cs .. حيث انه سيتم التأكد من ان التطبيق تم تشغيله عبر الأوامر الصوتية ام لا، بعدها ننتقل للصفحة المطلوبة ونرسل المتغيرات او Parameters بالجملة او الكلمة المطلوب ترجمتها واللغة الهدف.

 

الخطوات العملية المفصلة لما سبق شرحه هي كالتالي :

 1-  إنشاء ملف تعريف الأوامر الصوتية VCD

 لإنشاء الملف، يمكنك الضغط باليمين على اسم المشروع => New Item ثم اختيار ملف XML Data . يمكنك الدخول لهذه الصفحة والعثور على مثال عن ملف الـ VCD ولصقه بالتطبيق الخاص بك :

https://msdn.microsoft.com/en-us/library/windows/apps/xaml/dn630430.aspx

 

 

 

 

 

مع تغيير التالي :
1- CommandPrefix  : اسم التطبيق الخاص بك ، الاسم سينطق قبل أي أمر .
2- Example : مثال عن الأوامر المتاحة، يستخدم من قبل كورتانا لتظهره بالصفحة الرئيسية .
3-  خصائص الأوامر :
-  Name : اسم الامر ، يستخدم لمعرفة أي امر بالضبط تم استدعاؤه  والانتقال للصفحة الخاصة به .
- Example  : مثال عن الامر ، يستخدم من قبل كورتانا لتعريف المستخدم بالأوامر المتاحة بتطبيقك .
- ListenFor : الاستماع ل، يستخدم لكتابة صيغة او Pattern الامر .. مثلاً : Translate {word} to {lang}  .
- Feedback : رد كورتانا ، يستخدم من قبل كورتانا للرد على المستخدم .. مثلاً : Translating now.
- Navigate : الصفحة الخاصة بالأمر، يستخدم لاحقاً للانتقال للصفحة الخاصة بكل امر .

 

2- استخدام قائمة كلمات خاصة بك 

يمكنك التعامل مع PhraseList لإنشاء قائمة كلمات مطلوبة عند ذكر الأمر .. مثلاً : Translate {word} to {lang} حيث ان lang هي PhraseList  تحتوي على 5 لغات :

 

 

 

 

 

 

  

 

 

بعد الانتهاء من ملف تعريف الأوامر الصوتية VCD ، سنبدأ بالجزء الأكثر متعة :D .. التعامل مع الأوامر .. كل أمر على حده.
وللتعامل مع الأوامر الموجودة بملف تعريف الأوامر الصوتية VCD ، علينا ان ننتقل لصفحة App.xaml.cs و للحدث OnActivated " يمكنك عمل override  للحدث " 


 
4- تأكد من ان نوع تفعيل التطبيق هو التفعيل عبر الأوامر الصوتية

 

 

 

 

بعد ذلك، سنقوم بتحويل الـ "args" لـ Voice Command Activated Args .. ليتسنى لنا معرفة اسم الأمر، نص الأمر، الصفحة .. إلخ .
 
بعد ذلك يمكنك التعامل مع الأمر عبر خيارات وطرق، مثال :

 

 

سوف يتم الانتقال للصفحة الرئيسية وإرسال معلمات - Parameters معينة، وخلال حدث OnNavigatedTo بالصفحة الرئيسية يتم استخلاص الـكلمة المراد ترجمتها و اللغة الهدف .. بعد ذلك الإتصال بـ Bing Translator Service  وطلب ترجمة الكلمة للغة.

 

 

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

 

 

 

قام بكتابة هذه المقالة الأستاذ : محمد غزاوي @MMG_RT