مقدمة: لماذا بناء مساعد منزل مشرف على الصوت؟

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

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

اختيار المتحكم الصغير المناسب

المتحكم بالميكروير هو دماغ مساعدك يجب أن يتعامل مع الإمساك الصوتي و الإتصال بالشبكة و التحكم بالأجهزة ثلاث خيارات شعبية هي "إي إس بي 32" و "أردينو أونو" مع درع "واي فاي" و "راسبيري بيكو و دبليو"

ESP32

ويعتبر برنامج ESP32 الخيار الأكثر توصية لأنه قد بني في وي - فاي وبلوتوث، ووفر محفوظات (520 كيلوبايت)، ومجهز مزدوج يمكن أن يعالج عمليات البث الصوتي والاستمارة في الوقت الحقيقي في آن واحد، كما يدعم برنامج آردوينو IDE وبرنامج مايكرو بايتون، ويجعل البرمجة مباشرة، وتكلفة منخفضة (حوالي 5 - 10 دولارات) والدعم المجتمعي الواسع يجعله مثاليا لهذا المشروع.

Arduino Uno with Wi-Fi Shield

(أرادينو أونو) مقترنة بدرع (إي إس بي 826 و وي في) بديل قابل للاستمرار إذا كنت تملكين بالفعل وحدة، لكن محدودية حركة RAM (كي بي) وبطء سرعة الساعة تجعل من الصعب إدارة العوازل الصوتية، ومن المرجح أن تحتاج إلى إزالة التجهيز الثقيل إلى السحابة، مما قد يؤدي إلى التحلي بالراحة.

Raspberry Pi Pico W

Announced in 2022, the Raspberry Pi Pico W includes Wi-Fi and runs at 133 MHz with 264 KB SRAM and it is less powerful than the ESP32 but works well for simpler command sets. Its MicroPython support is excellent for rapid prototyping.

For this guide, we assume you are using an ESP32. You can find official documentation and datasheets at the Espressif ESP32 Reference].

ميكروفونات ومتحدثون

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

وبالنسبة للمتكلم، يمكن أن ينتج عن مكبر الصوت البسيط البالغ 8 أمتار، وهو 0.5 متحدث متصل بمقاوم (لحد أقصى للحاضر) تعليقات جديرة بالثناء، ولزيادة الحجم والتوضيح، يستخدم مضخم مركب I2S MX98357 مع متحدث صغير، ويمكن لهذه الوحدة أن تدفع متحدثاً من ثلاث دول غربية المصدر، ومن السهل الوصل بينه وبين برنامج ESP32.

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

فهم خيارات الاعتراف بالصوت

الاعتراف بالصوت المكتوم

() خدمات مثل [(FLT:0]Google Speech-to-Text]، Amazon Transcribe، أو Azure Speech-to-Text) توفر بيانات عالية الدقة والدعم عن لغات متعددة.

الاعتراف الصوتي في دايف

For privacy and offline operation, you can use light weight Library like Porcupine (from Picovoice) or TensorFlow Lite Micro with a custom keyword spotting model. Porcupine offers pre-trained wake words (elex 100)

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

استعراض الهيكل التنظيمي

ويتألف الهيكل النموذجي من ثلاث طبقات:

  1. Input Layer: Microphone captures sound. An analog-to-digital converter (ADC) or I2S interface converts the signal to digital data.
  2. Processing Layer: يُعدل المتحكم في الميكروي الصوتي، ويكتشف كلمة إيقاظ أو زر، ثم يرسل القطيع الصوتي إلى جهاز تسجيل صوتي سحابي أو يُعمل على أساس محلي، وبعد الاعتراف، يُدرج النص القيادي ويرسمه على إجراء.
  3. Output Layer]: يقوم المتحكم في الميكروي بتحرير المصاريف، ويرسل إشارات بالأشعة تحت الحمراء، وينشر رسائل MQTT، أو يستخدمها مكتب خدمات الرقابة العالمية في أجهزة التحكم، كما يمكنه أن يقوم بتأكيد صوتي من خلال المتكلم.

ويبين الرسم البياني التالي (المفهوم) تدفق البيانات: مايكروفون ESP32 ⁇ Wi-Fi ⁇ Cloud API ⁇ JSON response ⁇ ESP32 ⁇ Relay/LED/Speaker.

دليل بناء الخطوة خطوة على الأقدام

الخطوة 1: العناصر الأخرى

ستحتاج إلى:

  • ESP32 Development Board (e.g., NodeMCU-32S)
  • MAX4466 أو وحدة مايكروفون IMP441
  • MAX98357 I2S amplifier + speakers (3W, 4-8 ohm)
  • لوح الشاشة و الأسلاك القفزية
  • وحدة تأخير (لمكافحة أجهزة AC)
  • اختياري: LED، مقاوم، زر ضغط، عرض مأخوذ من قبل منظمة شريان الحياة
  • إمداد قوة الـ (V, 2A)

الخطوة 2:

ربط وحدة الميكروفون:

  • MAX4466]: VCC to 3.3V, GND to GND, OUT to GPIO34 (ADC).
  • INMP441 (I2S) ]: VCC to 3.3V, GND to GND, L/R to GND (left channel), DOUT to GPIO25, BCLK to GPIO26, WS to GPIO27.

اتصل بالمكبر:

  • ]MAX98357: VIN to 5V (or USB power), GND to GND, BCLK to GPIO26, LRC to GPIO27, DIN to GPIO25. (Note: BCLK and WS fats can be shared with I2S microphone conflicts if properly configured, but it)
  • وأبد المتكلم إيجابية لزيادة الناتج الإيجابي، مما يُعد سلبياً على الناتج.

ربط وحدة إعادة الشحن:

  • VCC to 5V, GND to GND, IN to GPIO32 (or any digital fat).
  • إرسال الاتصالات إلى جهازك (يستخدم دائرة مستقلة ذات نفوذ عالي - اتخاذ الاحتياطات الآمنة).

الخطوة 3: النفقات في إطار البرامج

Install the Arduino IDE] and add the ESP32 board package. Use the Boards Manager to install "esp32" by Espressif Systems. then install Library:

  • WiFi.h] (built-in)
  • HTTPClient.h]
  • ArduinoJson.h] (لإجراء ردود على البروتوكول الاختياري الأول المتعلق بالبروتوكول الاختياري الأول)
  • driver/i2s.h] (بالنسبة للصوت I2S)
  • WebServer.h] (للتشكيل المحلي إذا لزم الأمر)

For cloud recognition, you will also need the Google Speech-to-Text API client library (or use direct REST calls). For on-device wake word, install ]Porcupine library from Picovoice.

الخطوة 4: برمجة المتحكم في الميكروفلور

أكتب الرمز الذي يؤدي الحلقة التالية:

  1. Initialize]: Set up Wi-Fi, I2S microphone, speakers, and GPIO.
  2. Listen for wake word]: Continuously sample audio and feed to Porcupine. When a wake word is detected, set a flag and play a beep.
  3. Record command]: Capture 3-5 seconds of audio (or until silence detection) Save to a buffer.
  4. Send to cloud]: Convert audio to required format (WAV PCM 16bit, 16 kHz mono). POST to Google Speech-to-Text endpoint. Receive JSON with transcript.
  5. Parse command ]: Use string matching or a simple intent parser. For example, if transcript contains "turn on the light", set GPIO32 HIGH.
  6. Respond]: شغل نبرة تأكيد أو التحدث عن النتيجة عن طريق TTS (optional).
  7. العودة إلى ولاية الاستماع.

وفيما يلي بيان مبسط (لا يُقصد به أن يكون حرفيا محررا بنسخ) يوضح الهيكل:

#include <WiFi.h>
#include <HTTPClient.h>
#include <ArduinoJson.h>
#include <driver/i2s.h>

const char* ssid = "YOUR_SSID";
const char* password = "YOUR_PASS";

void setup() {
 Serial.begin(115200);
 WiFi.begin(ssid, password);
 while (WiFi.status() != WL_CONNECTED) delay(500);
 // Initialize I2S, GPIO etc.
}

void loop() {
 // Check wake word – omitted for brevity
 if (wake_word_detected) {
 record_audio();
 String transcript = send_to_google(audio_buffer);
 if (transcript.indexOf("light") != -1) {
 digitalWrite(RELAY_PIN, HIGH);
 play_beep();
 }
 delay(1000); // debounce
 }
}

تنفيذ معالجة الخطأ في فصل الشبكة، والتوقيتات، والقيادات غير الصحيحة، واستخدام درجة ويفلينت Secure ] لطلبات شركة HTTPS.

إختبار و تقدير مساعدك

اختبار كل عنصر من العناصر المنعزلة أولا:

  • Microphone]: رفع رسم بياني يقرأ ADC أو I2S والطباعات كمينة للمتآمر المتسلسل، والتحدث في الميكروفون والتحقق من التغييرات الموجية.
  • Speaker : استخدام وظيفة اللغم أو لاعب I2S لإنتاج ميلودي بسيط.
  • Wi-Fi]: Ping google.com from the sequence monitor.
  • Relay]: Toggle the manually and listen for the call.

ثمّ يُدمجُ الإعتراف الصوتي، ابدأوا بإتّصال بسيط مُشدّد (مثلاً، اضغطوا زرّاً لإرسال ملفّ صوتيّ اختباريّ) لضمان عمل المكالمات، وتحركوا تدريجياً نحو مُدخلات ميكروفون حية، واستخدموا سجلات متسلسلة لرؤية المُدوّن وتوقيت.

المسائل المشتركة:

  • No audio detected]: check I2S fatring, sample rate, bit depth mismatch. On ESP32, ADC channels 0-7 are not all available; use GPIO34-39 for ADC1.
  • API returns "empty"]: Ensure audio is in the correct format (16-bit PCM, 16kHz, mono). Google expects base64-encoded WAV or raw bytes with a matching sample rate.
  • Slow response]: لا يمكن تجنب تساهل الشبكة، واستخدام وحدة إسبولية للشبكة إن أمكن، أو خفض المدة السمعية.

توسيع نطاق الأداء

بمجرد أن يعمل مساعدك الأساسي، فكر في إضافة هذه الملامح:

مراقبة الأجهزة المتعددة

استخدموا سمسار (ملاك تي) (ممثل (موسكيتو) لنشر الأوامر إلى أيّ من الندوات حول المنزل

التغذية من النص إلى الكلام

وبدلاً من الصافرة البسيطة، استخدمي غوغل كلود من النص إلى النص السريع ] أو مكتبة خارج الخط مثل ) (المرسلة إلى ESP32) للتعبير عن رسائل تأكيد، مما يجعل المساعد أكثر تفاعلاً.

الكلمات العُلمية

استخدمي (بيكو فواتير كونسول) لتدريب كلمة إيقاظ (مثل (جارفيس و نشرها على برنامج (إي إس بي 32 المكتبة خالية من الاستخدام غير التجاري

مراقبة الصوت لوسائط الإعلام

Integrate with Spotify API or ]Kodi (via JSON-RPC) so you can say "Play jazz" and start streaming music.

إدماج أجهزة الاستشعار

اخترق جهاز استشعار درجة الحرارة/الدرجة 22 عندما يسأل المستخدم "ما درجة الحرارة؟" وقرأ جهاز الاستشعار وستجيب بالقيمة

محلية

إذا كانت (واي فاي) قد سقطت، تراجعوا إلى مجموعة محدودة من الأوامر الخارجية (مثلاً، ضحكة مُتَبَعَة على أساس كلمة مفتاح بسيطة مثل "على" أو "مُتَكَب" تم اكتشافها عن طريق مطابقة كلمة (بورسوبين) الرئيسية.

اعتبارات الأمن والخصوصية

بناء مساعد صوتي يستمع باستمرار يثير مخاوف صحيحة، واتخاذ هذه الخطوات لحماية نفسك:

  • Use HTTPS] for all API calls. The ESP32’s WiFiClientSecure supports TLS, but you must include the CA certificate fingerprint or a trust root certificate.
  • Minimize cloud dependency]: Use on-device wake word to avoid sending all audio to the internet. Only short command audio is sent.
  • Local processing]: بالنسبة للمهام الحساسة، إبقاء خط أنابيب الخطاب بأكمله خارج الخط، ويمكن أن تعترف نماذج الواجهة مثل ] TensorFlow Lite Micro] بمجموعة من الأوامر دون أي اتصال على الإنترنت.
  • Physical mute shift]: Wire a toggle shift between the microphone power and VCC. When off, the mic is completely disabled.
  • Network segmentation]: Place IoT devices on a separate VLAN or guest network to limit exposure if compromised.

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

خاتمة

بناء مساعد منزل متحكم به الصوت مع المتحكمين بالمايكروولتر هو مشروع مكافئ يدمج المعدات والبرامجيات وتجهيز اللغات الطبيعية، وببدء برنامج ESP32، وميكروفون من طراز MEMS، وجهاز تسجيل الدخول السحابي، يمكنك إنشاء مساعد وظيفي في عطلة نهاية الأسبوع، والخبرة التي تكتسبها في مجال الاتصالات السمعية والسمعية، والتواصل الشبكي بين شبكة الإنترنت والشبكة، وتكامل نظام المعلومات الإدارية المتكامل سوف يخدمك جيدا في عدد لا يحصى من المشاريع الأخرى.

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

For further reading, check the ESP IoT Solution] repository for ready-made voice Assistant examples, and the Porcupine wake word motor documentation] to add custom triggers. happy building!