
في البداية ، كان الهدف من هذا المشروع المنزلي هو إنشاء جهاز استقبال راديو إنترنت من Raspberry Pi. كنت أرغب في العثور على أو استعادة بعض أجهزة الاستقبال الخشبية القديمة ، أو على الأقل حالة ، وضع توت العليق ، بطارية ، لعبة ورق هناك ، وأعطيه واي فاي. بسبب ضيق الوقت ، تم وضع كل هذا بأمان في درج طويل ، لكن ربما أدرك ذلك بمرور الوقت. لكنني فعلت جزء البرنامج من المشروع ، الذي أريد التحدث عنه.
إن جعل جهاز راديو قديمًا بحيث يبدو معدل البت الحديث واضحًا جدًا أمرًا غير ضروري ، في رأيي. أي ، دعهم يبدو جيدًا أيضًا ، لكن سيكون من السعادة مضاعفة بالنسبة لي من الراديو القديم أن أسمع صوتًا حقيقيًا في تلك الأوقات عندما لم تكن هناك محولات نبضات حتى الآن ، وسار وحيد القرن في الشوارع برفق. وصفة لكيفية التقدم في عمر الصوت الذي أتخيله:
- 1 ... 10 signalV إشارة مفيدة ،
- صدى 0.3 μV ، لنفس الإرسال على نفس التردد ، ولكن من مكان مختلف ،
- 0.2 μV إشارة محطة البث الأخرى على نفس التردد
- قطرة من صافرة التدخل ، لم تعد ضرورية ، لأن مزعج ،
- 0.1 noiseV الضوضاء المدخلات
- المكون السري يتلاشى ، أي تلاشي جميع الإشارات المدرجة ، باستثناء ضوضاء دوائر الإدخال ، سيقومون بعملهم مع AGC - ضبط الكسب التلقائي ، ونتيجة لذلك ستظهر إحدى إشارات الخلفية بشكل دوري ، كما هو الحال في الراديو الحقيقي ،
- حسنا ، حسب الذوق ، قطع الترددات العليا.
من المفهوم أن الراديو يعمل على موجات متوسطة ، وقت المساء ، وأن الإشارة تنتقل بعيدًا. يمكن متابعة القائمة إلى أجل غير مسمى ، ولكن موارد التوت محدودة ، لكنني أريد أن أبدأ الكثير من الخيوط والتبديل بينها. لذلك ، قصرت نفسي على ما سبق. لقد صمم كل هذا في شكل خادم يعتمد على Icecast وعدد من المرافق المفيدة الأخرى. يساعدني هذا الخادم في خلق جو احتفالي في عطلة رأس السنة. ربما تكون مفيدة لشخص آخر.
مبدأ الخادم هو هذا: يتم تحويل دفق الصوت الإدخال اثنين من الإنترنت إلى wav باستخدام ffmpeg ، هنا يتم تقليل تردد أخذ العينات من أجل إزالة الترددات العالية ، وكذلك تسهيل عمل المعالج.
تمر التدفقات بعد ذلك عبر معالج صوت مرتجل مكتوب باللغة C. أطلب من المتخصصين في برمجة النظام ألا يركلوني كثيرًا عن الأخطاء المحتملة ، وفي الحياة العادية أنا مطور ويب ، و C بالنسبة لي يشبه إصدار سريع من bash. هنا ، يتم تعيين قيمة إشارة لكل إشارة مع مراعاة الخبو ، ويتم تلخيص الإشارات مع الأخذ في الاعتبار المستويات ، ثم يتم تقسيم الإشارة الإجمالية على قيمة المستوى الكلي ، وبالتالي يتم محاكاة AGC ، وسيكون حجم الصوت المستلم ثابتًا تقريبًا.
يتم تشفير دفق الإخراج بواسطة oggenc ، وباستخدام ezstream ، يتم إرساله إلى خادم Icecast ، حيث يصبح متاحًا للاستماع.
يمكنك استنساخ المشروع من هنا ، وهناك أيضا تعليمات التثبيت. من الأفضل تثبيته أولاً وليس على Raspberry ، ولكن على Linux العادي على سطح المكتب ، حيث قد تضطر إلى العبث بتوت العليق باستخدام التجميع اليدوي لبعض المكونات. بدلاً من البرنامج النصي stream-template-1206am ، كان هناك برنامج نصي مع محطات الراديو المفضلة لحمايتهم من تأثير محتمل ، والضمير من الندم ، تم استبداله بمقابس. بدلاً من ذلك ، ضع تدفقات صوتية حسب ذوقك وقد يكون صوت الأنبوب الدافئ معك.
كل عطلات سعيدة وسعيدة!
استكمال: بناءً على نصيحة المستخدم ، أضافت Logonoff عينة من كيف يبدو هذا للمشروع.