البرنامج التعليمي: تمكين صوت الروبوت الخاص بك

يمكنك استخدام Azure الذكاء الاصطناعي Speech لتمكين الصوت لروبوت الدردشة.

في هذا البرنامج التعليمي، يمكنك استخدام Microsoft Bot Framework لإنشاء روبوت يستجيب لما تقوله. يمكنك نشر الروبوت الخاص بك إلى Azure وتسجيله مع قناة Bot Framework Direct Line Speech. بعد ذلك، يمكنك تكوين نموذج تطبيق عميل لنظام التشغيل Windows يتيح لك التحدث إلى الروبوت الخاص بك وسماعه يتحدث إليك مرة أخرى.

لإكمال البرنامج التعليمي، لا تحتاج إلى خبرة واسعة أو إلمام بـ Azure أو روبوت Bot Framework أو Direct Line Speech.

يتبع روبوت الدردشة الممكّن صوتيًا الذي تقوم به في هذا البرنامج التعليمي الخطوات التالية:

  1. تم تكوين تطبيق العميل النموذجي للاتصال بقناة Direct Line Speech وروبوت الصدى.
  2. وعندما يضغط المستخدم على زر، يتدفق الصوت من الميكروفون. أو يتم تسجيل الصوت بشكل مستمر عند استخدام كلمة رئيسية مخصصة.
  3. إذا تم استخدام كلمة رئيسية مخصصة، فسيحدث اكتشاف الكلمات الرئيسية على الجهاز المحلي، مما يؤدي إلى تدفق الصوت إلى السحابة.
  4. يستخدم نموذج تطبيق العميل Speech SDK للاتصال بقناة Direct Line Speech ودفق الصوت.
  5. اختياريًا، يحدث التحقق من الكلمات الرئيسية بدقة أعلى في الخدمة.
  6. يتم تمرير الصوت إلى خدمة التعرف على الكلام وتحويله إلى نص.
  7. يتم تمرير النص الذي تم التعرف عليه إلى روبوت كنشاط Bot Framework.
  8. يتم تحويل نص الاستجابة إلى صوت بواسطة النص إلى خدمة الكلام، ويتم دفقه مرة أخرى إلى تطبيق العميل للتشغيل.

رسم تخطيطي يوضح تدفق قناة Direct Line Speech.

إشعار

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

يتناول هذا البرنامج التعليمي ما يلي:

  • قم بإنشاء موارد Azure جديدة.
  • إنشاء واختبار وتوزيع نموذج روبوت في Azure App Service.
  • قم بتسجيل الروبوت الخاص بك بقناة Direct Line Speech.
  • قم ببناء وتشغيل Windows Voice Assistant Client للتفاعل مع روبوت الصدى.
  • إضافة تنشيط الكلمات الأساسية المخصصة.
  • تعلم كيفية تغيير لغة الكلام المعترف به والمنطوق.

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

إليك ما تحتاج إليه لإكمال هذا البرنامج التعليمي:

إنشاء مجموعة موارد

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

يرشدك هذا القسم خلال عملية إنشاء مجموعة موارد في منطقة غرب الولايات المتحدة. يمكنك استخدام مجموعة الموارد هذه عند إنشاء موارد فردية ل Bot Framework وقناة Direct Line Speech وخدمة Speech.

  1. انتقل إلى صفحة مدخل Microsoft Azure لإنشاء مجموعة موارد.
  2. قدم المعلومات التالية:
    • قم بتعيين الاشتراك إلى إصدار تجريبي مجاني. (يمكنك أيضًا استخدام اشتراك موجود.)
    • أدخل اسمًا لمجموعة الموارد. نوصي باستخدام SpeechEchoBotTutorial-ResourceGroup.
    • من القائمة المنسدلة المنطقة، حدد غرب الولايات المتحدة.
  3. حدد مراجعة وإنشاء. يجب أن تشاهد لافتة تقول اجتياز التحقق من الصحة.
  4. حدد إنشاء. قد يستغرق إنشاء مجموعة الموارد بضع دقائق.
  5. كما هو الحال مع الموارد التي تقوم بإنشائها لاحقا في هذا البرنامج التعليمي، من الجيد تثبيت مجموعة الموارد هذه في لوحة المعلومات الخاصة بك للوصول السهل. إذا كنت تريد تثبيت مجموعة الموارد هذه، فحدد رمز الدبوس بجوار الاسم.

اختر منطقة Azure

تأكد من استخدام منطقة Azure المدعومة. تستخدم قناة Direct Line Speech خدمة تحويل النص إلى كلام، والتي تحتوي على أصوات عصبية وقياسية. تُستخدم الأصوات العصبية في مناطق Azure هذه، وتُستخدم الأصوات القياسية (تقاعد) في مناطق Azure هذه.

لمزيد من المعلومات حول المناطق، راجع مواقع Azure.

إنشاء الموارد

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

إنشاء مورد Speech service

  1. انتقل إلى صفحة مدخل Microsoft Azure ليمكنك إنشاء مورد خدمة الكلام.
  2. قدم المعلومات التالية:
    • بالنسبة للاسم، نوصي باستخدام SpeechEchoBotTutorial-Speech كاسم لموردك.
    • بالنسبة للاشتراك، تأكد من تحديد الإصدار التجريبي المجاني.
    • بالنسبة للمواقع، حدد غرب الولايات المتحدة.
    • بالنسبة لمستوى الأسعار، حدد F0. هذا هو المستوى التجريبي المجاني.
    • بالنسبة لمجموعة الموارد، حدد SpeechEchoBotTutorial-ResourceGroup.
  3. بعد إدخال جميع المعلومات المطلوبة، حدد إنشاء. قد يستغرق إنشاء المورد بضع دقائق.
  4. في وقت لاحق في هذا البرنامج التعليمي، تحتاج إلى مفاتيح الاشتراك لهذه الخدمة. يمكنك الوصول إلى هذه المفاتيح في أي وقت من منطقة نظرة عامة على المورد الخاص بك (ضمن إدارة المفاتيح) أو منطقة المفاتيح.

في هذه المرحلة، تحقق من أن مجموعة الموارد الخاصة بك (SpeechEchoBotTutorial-ResourceGroup) لديها مورد خدمة الكلام:

Name نوع الموقع
SpeechEchoBotTutorial-Speech الكلام غرب الولايات المتحدة

إنشاء خطة خدمة تطبيق Azure

تحدد خطة «خدمة التطبيقات» مجموعة من موارد الحساب لتطبيق ويب لتشغيله.

  1. انتقل إلى صفحة مدخل Microsoft Azure لإنشاء خطة خدمة Azure App Service.
  2. قدم المعلومات التالية:
    • قم بتعيين الاشتراك إلى إصدار تجريبي مجاني. (يمكنك أيضًا استخدام اشتراك موجود.)
    • بالنسبة لمجموعة الموارد، حدد SpeechEchoBotTutorial-ResourceGroup.
    • بالنسبة للاسم، نوصي SpeechEchoBotTutorial-AppServicePlan كاسم لخطتك.
    • بالنسبة لنظام التشغيل، حدد Windows.
    • بالنسبة للمنطقة ، حدد غرب الولايات المتحدة.
    • بالنسبة لمستوى الأسعار، تأكد من تحديد المعيار S1. يجب أن تكون قيمة افتراضية. إذا لم يكن كذلك، فقم بتعيين نظام التشغيل إلى Windows.
  3. حدد مراجعة وإنشاء. يجب أن تشاهد لافتة تقول اجتياز التحقق من الصحة.
  4. حدد إنشاء. قد يستغرق إنشاء المورد بضع دقائق.

في هذه المرحلة، تحقق من أن مجموعة الموارد الخاصة بك (SpeechEchoBotTutorial-ResourceGroup) لديها مصدرين:

Name نوع الموقع
SpeechEchoBotTutorial-AppServicePlan خطة App Service غرب الولايات المتحدة
SpeechEchoBotTutorial-Speech خدمات الذكاء الاصطناعي في Azure غرب الولايات المتحدة

إنشاء روبوت الدردشة

الآن بعد أن قمت بإنشاء الموارد، ابدأ بنموذج روبوت echo، والذي يردد النص الذي أدخلته كاستجابة له. تم تكوين نموذج التعليمات البرمجية بالفعل للعمل مع قناة Direct Line Speech، والتي تقوم بتوصيلها بعد نشر الروبوت إلى Azure.

إشعار

تتوفر الإرشادات التالية، بالإضافة إلى مزيد من المعلومات حول برنامج روبوت الدردشة، في عينة README على GitHub.

قم بتشغيل عينة الروبوت على جهازك

  1. نسخ مستودع العينات:

    git clone https://github.com/Microsoft/botbuilder-samples.git
    
  2. افتح Visual Studio.

  3. من شريط الأدوات، حدد ملف>فتح>مشروع/ حل. بعد ذلك، افتح حل المشروع:

    samples\csharp_dotnetcore\02.echo-bot\EchoBot.sln
    
  4. وبعد تحميل المشروع، حدد المفتاح F5 لإنشاء المشروع وتشغيله.

    في المستعرض الذي يفتح، سترى شاشة مشابهة لهذا:

    لقطة شاشة تعرض صفحة EchoBot مع رسالة مفادها أن الروبوت الخاص بك جاهز.

اختبار عينة روبوت محاكي إطار عمل الروبوت

Bot Framework Emulator هو تطبيق سطح مكتب يتيح لمطوري برامج الروبوت اختبار برامج الروبوت الخاصة بهم وتصحيحها محليًا (أو عن بُعد من خلال نفق). يقبل المحاكي النص المكتوب كإدخال (وليس صوتًا). يستجيب الروبوت أيضا بالنص.

اتبع هذه الخطوات لاستخدام Bot Framework Emulator لاختبار روبوت الذي يعمل محليًا، مع إدخال النص وإخراج النص. بعد توزيع الروبوت إلى Azure، ستختبره باستخدام الإدخال الصوتي والإخراج الصوتي.

  1. تثبيت إصدار Bot Framework Emulator 4.3.0 أو أحدث.

  2. افتح Bot Framework Emulator، ثم حدد ⁧ملف>⁩فتح روبوت⁧.

  3. أدخل عنوان URL للروبوت الخاص بك. على سبيل المثال:

    http://localhost:3978/api/messages
    
  4. حدد اتصال.

  5. يجب أن يرحب بك الروبوت برسالة "أهلاً ومرحبًا!". اكتب أي رسالة نصية وتأكد من حصولك على رد من الروبوت.

    هذا ما قد يبدو عليه تبادل الاتصال مع روبوت echo: تظهر لقطة الشاشة Bot Framework Emulator.

توزيع الروبوت الخاص بك إلى Azure App Service

تتمثل الخطوة التالية في توزيع روبوت صدى الصوت إلى Azure. هناك بعض الطرق لتوزيع روبوت، بما في ذلك Azure CLI وقوالب التوزيع. يركز هذا البرنامج التعليمي على التوزيع مباشرة من Visual Studio.

إشعار

إذا لم يظهر نشر أثناء تنفيذ الخطوات التالية، فاستخدم Visual Studio Installer لإضافة حمل عمل تطوير ASP.NET والويب.

  1. من Visual Studio، افتح برنامج روبوت الدردشة الذي تم تكوينه للاستخدام مع قناة Direct Line Speech:

    samples\csharp_dotnetcore\02.echo-bot\EchoBot.sln
    
  2. في مستكشف الحلول، انقر بزر الماوس الأيمن فوق مشروع روبوت الدردشة وحدد نشر.

  3. في نافذة نشر التي تفتح:

    1. حدد Azure>التالي.
    2. حدد Azure App Service (Windows)>التالي.
    3. حدد إنشاء خدمة تطبيقات Azure جديدة بعلامة الجمع الخضراء.
  4. عند ظهور نافذة App Service (Windows):

    • حدد إضافة حساب، وسجّل الدخول باستخدام بيانات اعتماد حساب Azure. إذا قمت بتسجيل الدخول بالفعل، فحدد حسابك من القائمة المنسدلة.

    • بالنسبة للاسم، أدخل اسمًا فريدًا عامًا لروبوتك. يُستخدم هذا الاسم لإنشاء عنوان URL فريد للروبوت.

      يظهر اسم افتراضي يتضمن التاريخ والوقت في مربع الحوار (على سبيل المثال، EchoBot20190805125647). يمكنك استخدام الاسم الافتراضي للبرنامج التعليمي هذا.

    • بالنسبة للاشتراك، حدد إصدار تجريبي مجاني.

    • وبالنسبة لمجموعة الموارد، حدد SpeechEchoBotTutorial-ResourceGroup.

    • وبالنسبة لخطة الاستضافة، حدد SpeechEchoBotTutorial-AppServicePlan.

  5. حدد إنشاء. في شاشة المعالج النهائي، اختر إنهاء.

  6. حدد نشر. يوزع Visual Studio الروبوت إلى Azure.

    من المفترض أن ترى رسالة نجاح في نافذة إخراج Visual Studio تبدو كالتالي:

    Publish Succeeded.
    Web App was published successfully https://EchoBot20190805125647.azurewebsites.net/
    

    يجب أن يفتح متصفحك الافتراضي ويعرض صفحة تقول: "الروبوت الخاص بك جاهز!"

وفي هذه المرحلة، تحقق من مجموعة الموارد الخاصة بك (SpeechEchoBotTutorial-ResourceGroup) في مدخل Microsoft Azure. تأكد من أنه يحتوي على الموارد الثلاثة:

Name نوع الموقع
EchoBot20190805125647 خدمة التطبيق غرب الولايات المتحدة
SpeechEchoBotTutorial-AppServicePlan خطة App Service غرب الولايات المتحدة
SpeechEchoBotTutorial-Speech خدمات الذكاء الاصطناعي في Azure غرب الولايات المتحدة

تمكين مأخذ توصيل الويب

تحتاج إلى إجراء تغيير بسيط في التكوين حتى يتمكن الروبوت الخاص بك من الاتصال بقناة Direct Line Speech باستخدام مأخذ توصيل الويب. اتبع هذه الخطوات لتمكين مأخذ توصيل الويب:

  1. انتقل إلى مدخل Microsoft Azure، وحدد مورد خدمة App Service. يجب أن يكون اسم المورد مشابهًا إلى EchoBot20190805125647 (اسم التطبيق الفريد).
  2. في الجزء الأيسر، ضمن الإعدادات، حدد التكوين.
  3. حدد علامة التبويب إعدادات عامة.
  4. ابحث عن زر التبديل لمآخذ توصيل الويب وقم بتعيينه إلى تشغيل.
  5. حدد حفظ.

تلميح

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

إنشاء تسجيل القناة

بعد إنشاء مورد Azure App Service لاستضافة الروبوت الخاص بك، فإن الخطوة التالية هي إنشاء تسجيل قناة. يعد إنشاء تسجيل قناة شرطًا أساسيًا لتسجيل الروبوت الخاص بك مع قنوات Bot Framework، بما في ذلك قناة Direct Line Speech. إذا كنت تريد معرفة المزيد حول كيفية استخدام الروبوتات للقنوات، فراجع توصيل الروبوت بالقنوات.

  1. انتقل إلى صفحة مدخل Microsoft Azure لإنشاء روبوت Azure.
  2. قدم المعلومات التالية:
    • بالنسبة لمؤشر الروبوت، أدخل SpeechEchoBotTutorial-BotRegistration-####. استبدل #### بالعديد من الخيارات التي تختارها.

      إشعار

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

    • بالنسبة للاشتراك، حدد إصدار تجريبي مجاني.

    • بالنسبة لمجموعة الموارد، حدد SpeechEchoBotTutorial-ResourceGroup.

    • بالنسبة للمواقع، حدد غرب الولايات المتحدة.

    • بالنسبة لمستوى الأسعار، حدد F0.

    • تجاهل إنشاء معرف التطبيق وكلمة المرور تلقائيًا.

  3. في الجزء السفلي من جزء Azure Bot، حدد إنشاء.
  4. وبعد إنشاء المورد، افتح مورد SpeechEchoBotTutorial-BotRegistration-#### في مدخل Microsoft Azure.
  5. ومن منطقة الإعدادات، حدد تكوين.
  6. بالنسبة لنقطة نهاية المراسلة، أدخل عنوان URL لتطبيق الويب الخاص بك مع إلحاق مسار /api/messages. على سبيل المثال، إذا كان اسم تطبيقك الفريد عامًا هو EchoBot20190805125647، فستكون نقطة نهاية المراسلة الخاصة بكhttps://EchoBot20190805125647.azurewebsites.net/api/messages/.

وفي هذه المرحلة، تحقق من مجموعة الموارد الخاصة بك (SpeechEchoBotTutorial-ResourceGroup) في مدخل Microsoft Azure. يجب ظهور الآن أربعة موارد على الأقل:

Name نوع الموقع
EchoBot20190805125647 خدمة التطبيق غرب الولايات المتحدة
SpeechEchoBotTutorial-AppServicePlan خطة App Service غرب الولايات المتحدة
SpeechEchoBotTutorial-BotRegistration-8726 خدمة روبوت عمومي
SpeechEchoBotTutorial-Speech خدمات الذكاء الاصطناعي في Azure غرب الولايات المتحدة

هام

يعرض مورد Azure الذكاء الاصطناعي Bot Service المنطقة العمومية، على الرغم من أنك حددت غرب الولايات المتحدة. وهذا الأمر متوقع.

اختياري: اختبر دردشة الويب

تحتوي صفحة Azure Bot على خيار اختبار في دردشة الويب ضمن إعدادات. لا يعمل بشكل افتراضي مع الروبوت الخاص بك لأن دردشة الويب تحتاج إلى المصادقة مقابل الروبوت الخاص بك.

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

  1. في مدخل Microsoft Azure، ابحث عن مورد EchoBotTutorial-BotRegistration-#### وقم بفتحه.

  2. ومن منطقة الإعدادات، حدد تكوين. انسخ القيمة ضمن معرّف تطبيق Microsoft.

  3. فتح حل EchoBot Visual Studio. في مستكشف الحلول، ابحث عن appsettings.json وحددها نقرا مزدوجا.

  4. استبدل السلسلة الفارغة بجوار MicrosoftAppId في ملف JSON بقيمة المعرّف المنسوخة.

  5. ارجع إلى مدخل Azure. في منطقة الإعدادات، حدد تكوين. ثم حدد إدارة بجوار معرّف تطبيق Microsoft.

  6. حدد سر عميل جديد. أضف وصفًا (على سبيل المثال، دردشة الويب) وحدد إضافة. قم بنسخ البيانات السرية الجديدة.

  7. استبدل السلسلة الفارغة الموجودة بجوار MicrosoftAppPassword في ملف JSON بقيمة البيانات السرية المنسوخة.

  8. حفظ ملف JSON. يجب أن يبدو مثل تعليمة برمجية:

    {
      "MicrosoftAppId": "YourAppId",
      "MicrosoftAppPassword": "YourAppPassword"
    }
    
  9. إعادة توزيع التطبيق: انقر بزر الماوس الأيمن فوق مشروع EchoBot في مستكشف الحلول Visual Studio، وحدد نشر، ثم حدد الزر نشر.

قم بتسجيل قناة Direct Line Speech

حان الوقت الآن لتسجيل الروبوت الخاص بك في قناة Direct Line Speech. تنشئ هذه القناة اتصالاً بين برنامج الروبوت الخاص بك وتطبيق عميل تم تجميعه باستخدام Speech SDK.

  1. في مدخل Microsoft Azure، ابحث عن مورد SpeechEchoBotTutorial-BotRegistration-#### وقم بفتحه.

  2. من منطقة الإعدادات، حدد القنوات ثم اتبع الخطوات التالية:

    1. وضمن المزيد من القنوات، حدد Direct Line Speech.
    2. راجع النص الموجود في صفحة تكوين Direct line Speech، ثم قم بتوسيع القائمة المنسدلة لحساب الخدمة المعرفية.
    3. حدد مورد خدمة الكلام الذي قمت بإنشائه مسبقًا (على سبيل المثال، SpeechEchoBotTutorial-Speech) من القائمة لربط الروبوت الخاص بك بمفتاح الاشتراك الخاص بك.
    4. تجاهل باقي الحقول الاختيارية.
    5. حدد حفظ.
  3. من منطقة الإعدادات، حدد التكوين ثم اتبع الخطوات التالية:

    1. حدد مربع الاختيار تمكين نقطة نهاية البث. هذه الخطوة ضرورية لإنشاء بروتوكول اتصال مبني على مآخذ الويب بين الروبوت الخاص بك وقناة Direct line Speech.
    2. حدد حفظ.

إذا كنت تريد معرفة المزيد، فراجع توصيل Direct line Speech.

قم بتشغيل عميل Windows Voice Assistant

عميل Windows Voice Assistant هو تطبيق Windows Presentation Foundation (WPF) في C# يستخدم Speech SDK لإدارة الاتصال مع الروبوت الخاص بك من خلال قناة Direct Line Speech. استخدمه للتفاعل مع الروبوت الخاص بك واختباره قبل كتابة تطبيق عميل مخصص. إنه مفتوح المصدر، لذا يمكنك إما تنزيل الملف القابل للتنفيذ وتشغيله، أو إنشائه بنفسك.

يحتوي Windows Voice Assistant Client على واجهة مستخدم بسيطة تسمح لك بتكوين الاتصال بالروبوت الخاص بك، وعرض المحادثة النصية، وعرض أنشطة Bot Framework بتنسيق JSON، وعرض البطاقات التكيفية. كما يدعم استخدام الكلمات الرئيسية المخصصة. يمكنك استخدام هذا العميل للتحدث مع الروبوت الخاص بك وتلقي استجابة صوتية.

إشعار

في هذه المرحلة، تأكد من تمكين الميكروفون ومكبرات الصوت وتشغيلها.

  1. انتقل إلى مستودع GitHub لعميل مساعد الصوت لنظام Windows.

  2. اتبع التعليمات المقدمة لأي من:

    • قم بتنزيل ملف قابل للتنفيذ تم إنشاؤه مسبقًا في حزمة .zip للتشغيل
    • قم ببناء الملف القابل للتنفيذ بنفسك، عن طريق استنساخ المستودع وبناء المشروع
  3. افتح تطبيق العميل VoiceAssistantClient.exe وقم بتكوينه للاتصال بالروبوت الخاص بك، باتباع الإرشادات الموجودة في مستودع GitHub.

  4. حدد إعادة الاتصال وتأكد من رؤية الرسالة "بدأت محادثة جديدة - اكتب أو اضغط على زر الميكروفون."

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

    يمكنك أيضًا استخدام النص للتواصل مع الروبوت. اكتب النص في الشريط السفلي فحسب.

استكشاف الأخطاء وإصلاحها في عميل Windows Voice Assistant

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

رسالة ما الذي يجب عليك فعله؟
خطأ (فشل المصادقة): فشلت ترقية WebSocket بسبب خطأ المصادقة (401). التحقق من وجود مفتاح المورد الصحيح (أو رمز التخويل المميز) واسم المنطقة في صفحة الإعدادات في التطبيق، تأكد من إدخال المفتاح ومنطقته بشكل صحيح.
خطأ (ConnectionFailure): تم إغلاق الاتصال من قبل المضيف البعيد. رمز الخطأ: 1011. تفاصيل الخطأ: تعذر علينا الاتصال بالروبوت قبل إرسال رسالة تأكد من أنك حددت خانة الاختيار تمكين نقطة نهاية البث و/أو تشغيل مآخذ الويب.
تأكد من تشغيل خدمة Azure App Service. إذا كان الأمر كذلك، فحاول إعادة التشغيل.
خطأ (ConnectionFailure): تم إغلاق الاتصال من قبل المضيف البعيد. رمز الخطأ: 1002. تفاصيل الخطأ: أرجع الخادم رمز الحالة "503" عندما كان من المتوقع أن يكون رمز الحالة "101" تأكد من تحديد مربع الاختيار تمكين نقطة نهاية دفق البيانات و/ أو تشغيل مآخذ الويب.
تأكد من تشغيل خدمة Azure App Service. إذا كان الأمر كذلك، فحاول إعادة التشغيل.
خطأ (ConnectionFailure): تم إغلاق الاتصال من قبل المضيف البعيد. رمز الخطأ: 1011. تفاصيل الخطأ: رمز حالة الاستجابة لا يشير إلى النجاح: 500 (InternalServerError) حدد الروبوت الخاص بك صوتا عصبيا في مجال التحدث لنشاط الإخراج الخاص به، ولكن منطقة Azure المرتبطة بمفتاح المورد الخاص بك لا تدعم الأصوات العصبية. راجع الأصوات العصبية والأصوات القياسية.

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

ملاحظة بشأن مهلة الاتصال

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

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

عرض أنشطة روبوت الدردشة

كل روبوت يرسل ويستقبل رسائل النشاط. في نافذة سجل النشاط في عميل Windows Voice Assistant، تُظهر السجلات ذات الطابع الزمني كل نشاط استلمه العميل من الروبوت. يمكنك أيضًا مشاهدة الأنشطة التي أرسلها العميل إلى الروبوت باستخدام طريقة DialogServiceConnector.SendActivityAsync. عند تحديد عنصر سجل، فإنه يعرض تفاصيل النشاط المرتبط بتنسيق JSON.

في ما يلي نموذج JSON لنشاط استلمه العميل:

{
    "attachments":[],
    "channelData":{
        "conversationalAiData":{
             "requestInfo":{
                 "interactionId":"8d5cb416-73c3-476b-95fd-9358cbfaebfa",
                 "version":"0.2"
             }
         }
    },
    "channelId":"directlinespeech",
    "conversation":{
        "id":"129ebffe-772b-47f0-9812-7c5bfd4aca79",
        "isGroup":false
    },
    "entities":[],
    "from":{
        "id":"SpeechEchoBotTutorial-BotRegistration-8726"
    },
    "id":"89841b4d-46ce-42de-9960-4fe4070c70cc",
    "inputHint":"acceptingInput",
    "recipient":{
        "id":"129ebffe-772b-47f0-9812-7c5bfd4aca79|0000"
    },
    "replyToId":"67c823b4-4c7a-4828-9d6e-0b84fd052869",
    "serviceUrl":"urn:botframework:websocket:directlinespeech",
    "speak":"<speak version='1.0' xmlns='https://www.w3.org/2001/10/synthesis' xml:lang='en-US'><voice name='en-US-JennyNeural'>Echo: Hello and welcome.</voice></speak>",
    "text":"Echo: Hello and welcome.",
    "timestamp":"2019-07-19T20:03:51.1939097Z",
    "type":"message"
}

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

عرض رمز مصدر العميل للاستدعاءات إلى Speech SDK

يستخدم عميل مساعد الصوت لنظام Windows حزمة NuGet Microsoft.CognitiveServices.Speech، والتي تحتوي على Speech SDK. مكان جيد لبدء مراجعة نموذج التعليمات البرمجية هو الأسلوب InitSpeechConnector() في ملف VoiceAssistantClient\MainWindow.xaml.cs، والذي ينشئ هذين العنصرين Speech SDK:

  • DialogServiceConfig: لإعدادات التكوين مثل مفتاح المورد ومنطقته.
  • DialogServiceConnector: إدارة اتصال القناة وأحداث اشتراك العميل لمعالجة استجابات الكلام والروبوت المعترف بها.

إضافة تنشيط الكلمات الأساسية المخصصة

يدعم Speech SDK تنشيط الكلمات الرئيسية المخصصة. وعلى غرار "Hey Cortana" لمساعد Microsoft، يمكنك كتابة تطبيق يستمع باستمرار إلى كلمة رئيسية من اختيارك. ضع في اعتبارك أن الكلمة الرئيسية يمكن أن تكون كلمة واحدة أو عبارة متعددة الكلمات.

إشعار

يتم غالبًا استخدام مصطلح الكلمة الرئيسية بالتبادل مع مصطلح كلمة التنبيه. قد ترى كلاهما مستخدم في وثائق Microsoft.

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

اتبع هذه الخطوات لإنشاء نموذج كلمة رئيسية، وتكوين عميل Windows Voice Assistant لاستخدام هذا النموذج، واختباره مع الروبوت الخاص بك:

  1. إنشاء كلمة رئيسية مخصصة باستخدام خدمة الكلام.
  2. قم بفك ضغط ملف النموذج الذي قمت بتنزيله في الخطوة السابقة. يجب أن يكون اسمه لكلمتك الرئيسية. ابحث عن ملف يسمى kws.table.
  3. في عميل Windows Voice Assistant Client، ابحث عن قائمة الإعدادات (رمز الترس في أعلى اليمين). وبالنسبة لمسار ملف النموذج، أدخل اسم المسار الكامل لملف kws.table من الخطوة 2.
  4. حدد مربع الاختيار ممكّن. يجب أن تشاهد هذه الرسالة إلى جانب خانة الاختيار: "سوف تستمع إلى الكلمة الأساسية عند الاتصال التالي." إذا قمت بتوفير ملف خاطئ أو مسار غير صالح، يجب أن تشاهد رسالة خطأ.
  5. أدخل قيم مفتاح الاشتراك ومنطقة مفتاح الاشتراك، ثم حدد موافق لإغلاق قائمة الإعدادات.
  6. وحدد إعادة الاتصال. يجب أن ترى رسالة نصها: "بدأت محادثة جديدة - اكتب أو اضغط على زر الميكروفون أو قل الكلمة الأساسية." التطبيق الآن يستمع باستمرار.
  7. انطق أي عبارة تبدأ بكلمتك الرئيسية. على سبيل المثال: "{your keyword} ما الوقت الآن؟" لست بحاجة إلى التوقف مؤقتًا بعد نطق الكلمة الرئيسية. عند الانتهاء، يحدث أمران:
    • ترى كتابة الحديث لما قلته.
    • ستسمع رد الروبوت.
  8. استمر في تجربة أنواع الإدخال الثلاثة التي يدعمها الروبوت الخاص بك:
    • إدخال نص في الشريط السفلي
    • الضغط على رمز الميكروفون والتحدث
    • انطق أي عبارة تبدأ بالكلمة الرئيسية

اعرض تعليمة برمجية للمصدر تتيح الكشف عن الكلمات الرئيسية

في التعليمات البرمجية المصدر الخاصة بـ Windows Voice Assistant Client، استخدم هذه الملفات لمراجعة التعليمات البرمجية التي تمكّن اكتشاف الكلمات الأساسية:

اختياري: قم بتغيير اللغة وصوت الروبوت

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

في هذا القسم، ستتعلم كيفية تغيير اللغة التي يستمع إليها الروبوت الخاص بك والاستجابة لها. ستتعلم أيضا كيفية تحديد صوت مختلف لتلك اللغة.

تغيير اللغة

يمكنك الاختيار من بين أي من اللغات المذكورة في جدول الكلام إلى النص . المثال التالي يغير اللغة إلى الألمانية.

  1. افتح تطبيق عميل مساعد الصوت لنظام Windows، وحدد زر الإعدادات (أيقونة الترس العلوي الأيمن)، وأدخل de-de في حقل اللغة. هذه هي قيمة اللغة المذكورة في جدول الكلام إلى النص .

    تحدد هذه الخطوة اللغة المنطوقة ليتم التعرف عليها، وتتجاوز en-us الافتراضي. كما يوجه قناة Direct Line Speech لاستخدام صوت ألماني افتراضي لرد الروبوت.

  2. أغلق صفحة الإعدادات، ثم حدد زر إعادة الاتصال لإنشاء اتصال جديد بروبوت الخاص بك.

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

تغيير الصوت الافتراضي للروبوت

يمكنك تحديد النص إلى صوت الكلام والتحكم في النطق إذا كان الروبوت يحدد الرد في شكل لغة ترميز تجميع الكلام (SSML) بدلا من نص بسيط. لا يستخدم برنامج روبوت SSML، ولكن يمكنك بسهولة تعديل التعليمة البرمجية للقيام بذلك.

يضيف المثال التالي SSML إلى رد روبوت echo بحيث يتم استخدام الصوت de-DE-RalfNeural الألماني (صوت ذكر) بدلا من الصوت الأنثوي الافتراضي. راجع قائمة الأصوات القياسية وقائمة الأصوات العصبية المدعومة للغتك.

  1. Open samples\csharp_dotnetcore\02.echo-bot\echo-bot.cs.

  2. ابحث عن تلك الأسطر:

    var replyText = $"Echo: {turnContext.Activity.Text}";
    await turnContext.SendActivityAsync(MessageFactory.Text(replyText, replyText), cancellationToken);
    

    واستبدلها بهذه التعليمة البرمجية:

    var replyText = $"Echo: {turnContext.Activity.Text}";
    var replySpeak = @"<speak version='1.0' xmlns='https://www.w3.org/2001/10/synthesis' xml:lang='de-DE'>
                    <voice name='de-DE-RalfNeural'>" +
                    $"{replyText}" + "</voice></speak>";
    await turnContext.SendActivityAsync(MessageFactory.Text(replyText, replySpeak), cancellationToken);
    
  3. قم ببناء الحل الخاص بك في Visual Studio وإصلاح أي أخطاء في البناء.

تقوم الوسيطة الثانية في الأسلوب MessageFactory.Text بتعيين حقل نطق النشاط في رد روبوت الدردشة. مع التغيير السابق، يتم استبداله من نص بسيط إلى SSML من أجل تحديد صوت ألماني غير افتراضي.

أعد توزيع روبوتك

الآن بعد إجراء التغيير الضروري على الروبوت، فإن الخطوة التالية هي إعادة نشره إلى Azure App Service وتجربته:

  1. في نافذة مستكشف الحلول، انقر بزر الماوس الأيمن فوق مشروع روبوت الدردشة وحدد نشر.

  2. تم بالفعل تحميل تكوين التوزيع السابق الخاص بك كإعداد افتراضي. حدد نشر بجوار EchoBot20190805125647 - توزيع الويب.

    تظهر رسالة تم النشر بنجاح في نافذة إخراج Visual Studio، وتفتح صفحة ويب مع الرسالة "الروبوت الخاص بك جاهز!"

  3. افتح تطبيق Windows Voice Assistant Client. حدد الزر إعدادات (أيقونة الترس العلوي الأيمن)، وتأكد من أنه لا يزال لديك de-de في حقل اللغة.

  4. اتبع الإرشادات الواردة في تشغيل عميل مساعد الصوت لنظام Windows لإعادة الاتصال بالروبوت الموزع حديثًا، والتحدث باللغة الجديدة، وسماع رد الروبوت بهذه اللغة بالصوت الجديد.

تنظيف الموارد

إذا كنت لن تستمر في استخدام برنامج روبوت الدردشة الذي تم توزيعه في هذا البرنامج التعليمي، يمكنك إزالته وجميع موارد Azure المرتبطة به عن طريق حذف مجموعة موارد Azure:

  1. في مدخل Microsoft Azure، حدد مجموعة الموارد ضمن خدمات Azure.
  2. اعثر على مجموعة الموارد SpeechEchoBotTutorial-ResourceGroup. اختر النقاط الثلاث (...).
  3. حدد Delete resource group.

استكشف الوثائق

الخطوات التالية