كيف ألهمت مشكلة عدم الحصانة في Yandex.Stations بالمشروع: نقل بيانات الموسيقى

في الأسبوع الماضي ، تحدثت عن كيفية تنشيط محطات Yandex عبر الصوت. اتضح أن كلمة مرور WiFi تنتقل بنص واضح. تساءلت لماذا كان من الضروري القيام بالتنشيط بهذه الطريقة ، وليس بطريقة ما تصحيحه.

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



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

ملخص المقال السابق


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



يتم إرسال سلسلة سداسية عشرية ، حيث يوجد لكل حرف 0 - F تردد 1 كيلو هرتز - 4.6 كيلو هرتز مع خطوة 240 هرتز. تساءلت لماذا كان من الضروري القيام بالتنشيط بهذه الطريقة ، وليس عن طريق البلوتوث ، كما هو الحال مع المكانس الكهربائية الصينية الروبوتية ، وتوصلت إلى استنتاج مفاده أن الكفاءة في هذه الحالة أهم من السلامة أو السرعة.

إلهام


حقا! بعد كل شيء ، بروتوكول الاتصال هو دائما حل وسط بين المدى والسرعة والموثوقية. ولكن ماذا لو تلاشت كل هذه الخصائص في الخلفية ، والعامل الحاسم هو عامل الانطباع للمستخدم؟

أعجبتني الفكرة البسيطة ، مثل المطرقة ، لمطوري Yandex - باختيار 16 ترددًا: واحد لكل رمز سداسي عشرية. وكان لديّ أيضًا مستقبل إشارة من دراسة سابقة ، لذلك قررت تطوير هذه الفكرة ، وليس الخروج بكل شيء من نقطة الصفر.

اثنين من التحسينات


إزالة كسر المرحلة


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



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



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



ربما لم تكن النقرات خطأً ، لكنها ميزات وأعطت صوتًا أكثر "مستقبلية" ، لكني أحببته بشكل أفضل بدونها :)

أضف موسيقى


ننقل البيانات من خلال الصوت. لماذا لا تستخدم ترددات الملاحظة لهذا؟ جربت خيارات مختلفة ، وفي النهاية اخترت 16 ملاحظة ، بدءًا من قبل أول أوكتاف.



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

اتضح نوعا من تعديل التردد الموسيقية. دعنا نسميها "تعديل المجموعة" :)

نطلق


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

أغتنم هذه الفرصة لأقول مرحبا:


يمكنني استخدام utf-8 ، مما يعني أنه يمكن أيضًا نقل الأحرف السيريلية وحتى الرموز التعبيرية. تعد الطرود معهم أطول ، حيث أن لكل شخصية أكثر من بايت واحد.


يبدو أقل متعة من اللاتينية ، حيث أن كل حرف سيريلي يحتوي على نفس بايت العنوان. ولكن لا تزال مثيرة للاهتمام :)

يمكنك تجربة أي عبارات هنا . (مكررة في نهاية المقال)

ولكن ماذا عن المتلقي؟


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

لقد قدمت نموذجًا أوليًا لجهاز استقبال بيثون كدليل على الفكرة. إليك كيف تعمل:


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

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

لتلخيص


لقد كان مشروعًا مثيرًا للاهتمام لعدة أمسيات كانت النتيجة مذهلة إلى حد ما. يمكن استخدام نقل البيانات هذا ، على سبيل المثال ، "رمز QR صوتي" - لمشاركة حساب من هاتف إلى موقع ويب ، إلخ.

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

جميع التطورات الحالية متوفرة على جيثب - يمكنك محاولة تطوير المشروع بنفسك.

تكرار الرابط إلى العرض التوضيحي الذي يعمل في المتصفح.

شكرا للقراءة! آمل أن تكونوا مهتمين.

حظا سعيدا

Source: https://habr.com/ru/post/ar470293/


All Articles