مشروع Talking Head ، أو تاريخ تطوير برنامج لروبوت التواجد عن بعد

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



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

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

في موازاة ذلك ، كان من الضروري أن نفهم كيف يمكن إنشاء نظام الترجمة ، والأهم من ذلك ، ما هي جودة هذه الترجمة ، هل ستكون مقبولة لدى العميل؟ لذلك ، بالتزامن مع المراسلات مع مطوري الروبوت ، قررت إجراء مكالمة مع العميل والتواصل معه من خلال المترجم. Translator هو تطبيق محمول من Microsoft يمكنه الترجمة والترجمة الصوتية بلغات مختلفة. التطبيق مجاني ومثبت على Android أو iOS ويستخدم الخدمة المناسبة من Microsoft. أثناء المكالمة ، كان علينا معرفة ما إذا كان من الممكن إجراء محادثة بهذه الطريقة. من أجل نقاء التجربة ، تحدثت بالروسية ، والعميل باللغة الألمانية ، على حد سواء ، لم يعرفوا اللغة الثانية على الإطلاق ، تم استدعاؤهم عبر مكالمة جماعية وتحدثوا أولاً لغتهم الأم في المترجم ،ثم أحضر الهاتف المحمول إلى هاتف المؤتمر. 

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

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

 

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

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

يستخدم WebRTC الآن على نطاق واسع لإجراء مكالمات الفيديو ، وهو مدعوم حاليًا من قبل معظم متصفحات الويب. ومع ذلك ، نظرًا لمحدودية الموارد ، لم نجرؤ على الكتابة على WebRTC العارية واخترنا موفرًا يوفر الخدمة في أعلى WebRTC. اعتبرنا خدمتين - TokBox و Voxeet. نتيجة لذلك ، اختاروا TokBox. من الضروري أن نأخذ في الاعتبار أن هذه الخدمات مدفوعة ، لذلك ، إلى جانب وصف بنية التطبيق ، قمنا بإجراء حسابات التكلفة لمدة دقيقة واحدة من مكالمة فيديو مع الترجمة.



نظرنا أيضًا في عدة خدمات للترجمة: TranslateYourWorld.com (يوفر واجهة برمجة تطبيقات واحدة توحد العديد من موفري الترجمة في وقت واحد ، بما في ذلك Google و Microsoft ، لكن الشركة صغيرة جدًا وغير موثوقة ، ولم يتم فتح موقعهم في وقت كتابة هذا التقرير) ، Google Cloud translation ، Microsoft Speech. ونتيجة لذلك ، توقفنا عند خدمة MS Speech ، نظرًا لأنه يحتوي على واجهة برمجة تطبيقات أكثر ملاءمة ، يمكننا بث دفق الصوت إلى الخدمة عبر websocket وتلقي التسجيلات الصوتية فورًا مع الترجمة ، بالإضافة إلى جودة ترجمة جيدة. بالإضافة إلى ذلك ، تعد Microsoft شريكًا لشركتنا ، مما يسهل التعاون معها.

انضم إليّ أحد المطورين الموهوبين ذوي الخبرة والموهوبين (Misha، hello!) ، وفي أوائل أكتوبر ، نجح فريقنا الصغير في إغلاق المرحلة التالية بنجاح وأظهر تطبيق ويب بسيطًا ، باستخدام خدمات TokBox و MS Speech ، جعل من الممكن ترتيب مكالمات الفيديو مع الترجمة إلى عدة لغات بما في ذلك الروسية والألمانية.

تم تصميم المرحلة التالية لمدة 3 أشهر وكان هدفها MVP مع روبوت. في هذه المرحلة ، انضم إلينا المطور الثالث والأخير. تم اختيار حزمة التكنولوجيا التالية للمشروع: الواجهة الخلفية - NodeJS + MongoDB ، واجهة الويب على ReactJS و Swift لتطبيق iOS الذي يتفاعل مع الروبوت. قصة تستحق قصة منفصلة عن كيفية قيادتي لرجل آلي من ألمانيا إلى سان بطرسبرج وشرحت لأول مرة إلى الألمانية ، ثم إلى ضباط الجمارك لدينا ، ما هو نوع الجهاز الموجود في الصندوق.





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

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



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

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

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


All Articles