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

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

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

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

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

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

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