كيفية إنشاء قناة فيديو لبرنامج Amazon Alexa Show بدون YouTube

الصورة مجاملة من AlexAntropov على Pixabay

أنا مهندس برمجيات نشر أكثر من عشرين مهارات مخصصة على منصة Alexa. لقد تم الاعتراف بي كأبطال أليكسا ، وقد فزت بالعديد من الاختراقات باستخدام التكنولوجيا. يسلط الضوء على ما يلي كيفية بناء مهارة فيديو مخصصة لبرنامج Echo Show باستخدام تقنية Amazon الأصلية.

تاريخ استهلاك الفيديو

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

بدأ البث المباشر رسميًا في عام 1995 ، لكن لم يبدأ البث المباشر عبر الإنترنت حتى عام 2007 في استخدام بروتوكول HTTP القياسي. تمت إضافة الهواتف الذكية مثل iPhone بعد فترة وجيزة من استخدام أساليب اتصال مماثلة. مع الضغط على الهاتف المحمول ، بدأت الشاشات الأصغر تكتسب المزيد من وقتنا. حقق YouTube نجاحًا كبيرًا خلال هذه المرحلة ، ويقوم الآن بتشغيل 5 مليارات مقطع فيديو يوميًا.

في عام 2015 ، أطلقت Amazon أول جهاز يتم التحكم فيه فقط بواسطة صوت المستخدم. أضافت منصات الصوت مثل Alexa بسرعة جهازًا آخر إلى المنزل ، مع ما يقدر بنحو 35 مليون مستخدم بالفعل في الولايات المتحدة. في عام 2017 ، أطلقت Amazon رسميًا أول نسخة لها من Alexa مع شاشة تسمى Echo Show. تحتوي أجهزة Amazon Fire TV الجديدة أيضًا على نظام Alexa مدمج ، مما يتيح التحكم في دفق الفيديو إلى شاشة عرض مسطحة من خلال صوتك.

في البداية ، تضمن Echo Show إمكانية تشغيل مقاطع فيديو من YouTube ، ولكن في الآونة الأخيرة ، كان Google و Amazon يتصارعان حول توفرها. أثر هذا على شعبية المنتج بالنظر إلى حجم تشغيل مقاطع الفيديو المميزة.

في 2018 CES ، أعلنت العديد من شركات الإلكترونيات الاستهلاكية عن إطلاقها لجهاز متوافق مع Google Home بشاشة. هذا يجعل سوق الصوت أكثر تنافسية. أحد الحلول لتحدي توافق YouTube هو استضافة محتوى الفيديو مباشرة على Amazon. فيما يلي وصف لكيفية إنشاء مهارة مخصصة لبرنامج Echo Show يقوم بذلك.

كيفية إنشاء مهارة فيديو مخصصة على اليكسا

بناء قناة الفيديو الخاصة بك أمر سهل للغاية باستخدام Alexa وعدد قليل من خدمات AWS. فيما يلي البنية التي تتميز بمهارة مخصصة لـ Alexa والتي تحزم المحتوى لتشغيله على Echo Show. تقوم خدمة تخزين AWS (S3) بتخزين الوسائط وتدفقها على الجهاز بناءً على الإرشادات التي توفرها المهارة المخصصة.

بنية مستوى المكون لمهارة الفيديو المخصص

يشبه إنتاج المحتوى لذلك المحتوى المطلوب لقناة YouTube. يحتوي الإصدار الحالي من Echo Show (وكذلك Echo Spot) على مواصفات حول نوع الوسائط المراد متابعتها. على سبيل المثال ، يجب أن يستخدم الفيديو امتداد mp4 وتنسيق ضغط قياسي H.264. يجب ألا يزيد حجم جودة الفيديو عن 1280 × 720 في حجم البكسل. توفر هذه القيود دفق فيديو عالي الجودة على شاشة العرض مقاس 7 بوصات في العرض والتي تشبه شاشة مشغل الفيديو عالي الدقة.

بناء مهارة الفيديو المخصص

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

هناك ثلاث ميزات مطلوبة لإنشاء قناة فيديو.

1 - تقديم صورة خلفية عندما يتم إطلاق المهارة في البداية. هذا يؤسس العلامة التجارية للقناة.
2 - إنشاء عناصر التحكم في التنقل لتصفح واختيار أي الفيديو لتشغيله. يتضمن ذلك التعامل مع إيماءات اللمس على شاشة Echo Show.
3 - تفويض التحكم إلى الجهاز لتشغيل الفيديو بمجرد تحديد المحتوى.

1 - العلامة التجارية مع صورة الخلفية

لتسهيل بناء مهارات الفيديو المخصصة ، توفر Alexa سلسلة من القوالب. يمكنني استخدام قالب "BodyTemplate1" لتقديم صورة الخلفية عند استدعاء المهارة لأول مرة. عند إنشاء بيانات التعريف داخل Alexa Developer Console ، تحقق من المربعات الثانية والثالثة على شاشة الحقول العالمية (Video App & Render Template).

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

  • AMAZON.NavigateSettingsIntent
  • AMAZON.NextIntent
  • AMAZON.PageDownIntent
  • AMAZON.PageUpIntent
  • AMAZON.PreviousIntent
  • AMAZON.ScrollDownIntent
  • AMAZON.ScrollLeftIntent
  • AMAZON.ScrollRightIntent
  • AMAZON.ScrollUpIntent

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

يتطلب تقديم صورة خلفية طريقتين للأدوات المساعدة يتم توزيعهما بالفعل في Alexa SDK القياسي. تخلق المهارة اثنين من المعرفات لتوضيح كيفية استخدامها.

أساليب الأداة المساعدة لإنشاء كائنات صورة و TextField
const makePlainText = Alexa.utils.TextUtils.makePlainText؛
const makeImage = Alexa.utils.ImageUtils.makeImage؛

بعد ذلك ، أقوم بإضافة معرف لموقع ملف jpg / png الذي يعمل كصورة خلفية. يجب أن يكون هذا الكائن متاحًا للعامة. حجم البكسل هو 1024 × 600 بناءً على أبعاد Echo Show. لا تحتاج إلى تقديم صورة منفصلة لموقع Echo Spot الأصغر. تنشئ Alexa الصورة الأصغر استنادًا إلى الملف الأصلي بحجم العرض.

/ / هذه نقطة نهاية عامة - أسهل طريقة هي استضافة S3
// يجب تمكين SSL (ما يفعله S3 لك)
const backgroundImage = ‘https://s3.amazonaws.com/.../image.jpg '؛

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

'LaunchRequest': function () {
  const builder = جديد Alexa.templateBuilders.BodyTemplate1Builder ()؛
  قالب const = builder.setTitle ("معلمك الشخصي")
      .setBackgroundImage (makeImage (backgroundImage))
      .setTextContent (makePlainText ('Piano Teacher'))
      . البناء ()؛
  // تحقق مما إذا كان الجهاز يحتوي على شاشة فيديو
  if (this.event.context.System.device.supportedInterfaces.Display) {
    this.response.speak (welcomeMessage)
        .listen (repeatWelcomeMessage) .renderTemplate (قالب)؛
    this.emit ( ': responseReady')؛
  } آخر {
    / / خطأ في معالجة عدم وجود شاشة فيديو للعب
    this.emit (‘: tell’، nonVideoMessage)؛
  }
}،

2 - الملاحة المحتوى

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

فيما يلي الخيارات المختلفة التي قد يطلبها المستخدم إما باستخدام صوته أو لمس الشاشة.

يعد تقديم قائمة بالمحتوى المتاح أمرًا أساسيًا لتجربة المستخدم. يمكنني استخدام "ListTemplate1" من Alexa SDK لعرض قائمة مقاطع الفيديو. يمكن إجراء التمرير لأعلى ولأسفل إما من خلال الصوت أو اللمس ، ويتم معالجته بواسطة الجهاز دون الحاجة إلى تشفير.

يحتوي كائن الاستجابة الذي يتم إرساله لسرد المحتوى على صفيف يسرد ما هو متاح على القناة. في مهارتي ، تتم قراءة هذه القائمة بصوت Alexa ، ويتم عرضها بصريًا على الشاشة. هنا مثال على ما يبدو.

لقطة شاشة لمهارة معلم البيانو على عرض أليكسا

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

[
  {"requestName": "Silent Night" ،
    "listSong": صحيح،
    "رمز": "song001"
    "صعوبة": "معتدل"،
    "videoObject": "SilentNight.mp4" ،
    "audioObject": "SilentNight.mp3"
  }،
  {"requestName": "Mary Had a Little Lamb" ،
    "listSong": صحيح،
    "رمز": "song002"
    "صعوبة": "سهل"،
    "videoObject": "MaryHadLittleLamb.mp4" ،
    "audioObject": "MaryHadLittleLamb.mp3"
  }،
...
]

إليك الكود الذي يحول المصفوفة إلى الاستجابة التي يحتاجها Alexa. تم تضمين تضمين الرمز المميز لكل عنصر في الصفيف.

/ / هذه هي الأغاني التي تم تسجيلها بها
var songs = require ("data / songs.json")؛
// إنشاء قائمة
const itemImage = لاغ؛
const listItemBuilder = new Alexa.templateBuilders.ListItemBuilder ()؛
const listTemplateBuilder = new Alexa.templateBuilders.ListTemplate1Builder ()؛
/ / بناء مجموعة من جميع الأغاني المتاحة
من أجل (i = 0 ؛ أنا 
/ / الآن قم بإنشاء كائن الاستجابة باستخدام SDK
const listItems = listItemBuilder.build ()؛
const imageLoc = pianoStrings؛
const listTemplate = listTemplateBuilder.setToken (‘listToken’)
  .setTitle ("قائمة الأغاني المتاحة"). setListItems (listItems)
  .setBackgroundImage (makeImage (imageLoc))
  . البناء ()؛ this.response.speak (الرسالة) .listen (noSongRepeatMessage) .renderTemplate (قالب القائمة)؛
this.emit ( ': responseReady')؛

تتعامل وظيفة Lambda مع الحدث "ElementSelected" الذي تم استدعاؤه بواسطة Echo Show. يحتوي كائن الطلب الذي تم إرساله بواسطة الجهاز إلى المهارة المخصصة على الرمز المميز المستخدم لترجمة ما تم تحديده بواسطة المستخدم.

// يتم استدعاء هذه الوظيفة من الحدث "ElementSelected"
'ScreenSongSelected': function () {
  console.log ("العنصر المحدد:" + this.event.request.token) ؛
  var videoName = "" ؛
  // تطابق الرمز المميز لاسم الأغنية وابحث عن عنصر الفيديو المراد تشغيله
  من أجل (i = 0 ؛ أنا 

تستخدم وظيفة Lambda الرمز الذي تتلقاه وتجد ملف الوسائط المطابق للمعرف الفريد. ثم يتم نقل التحكم إلى الجهاز مع الفيديو المناسب.

3 - تفويض التحكم إلى مشغل الفيديو

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

أولاً ، حدد مجلدًا في مجموعة S3 حيث سيتم تخزين ملفات الفيديو.

/ / هذه هي المجلدات التي توجد بها ملفات mp4
const videoLoc = ‘https://s3.amazonaws.com/…/media/ '؛

ثم حدد الملف الدقيق بناءً على ما تم تحديده بواسطة المستخدم. تتم إضافة بيانات التعريف التي تحتوي على مزيد من المعلومات حول الفيديو.

if (this.event.context.System.device.supportedInterfaces.VideoApp) {
  const videoClip = videoLoc + videoObject؛ // نقطة نهاية الملف
  // سيتم تقديمه عندما يحدد المستخدم عناصر التحكم في الفيديو
  بيانات تعريف const = {
    "العنوان": slots.SongName.value
  }؛
  this.response.playVideo (videoClip ، بيانات التعريف) ؛
  this.emit ( ': responseReady')؛
} آخر {
  / / خطأ في التعامل - وأغلق الجلسة
  this.emit (‘: tell’، nonVideoMessage)؛
}

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

لقطة شاشة لمهارة معلم البيانو على عرض أليكسا

عند اكتمال تشغيل الفيديو على الجهاز ، يمكن استخدام المهارة مرة أخرى لتحديد المزيد من المحتوى.

ملخص

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