Raspberry Pi کے ساتھ DIY AI اسسٹنٹ کیسے بنایا جائے۔

Raspberry Pi کے ساتھ DIY AI اسسٹنٹ کیسے بنایا جائے۔

ایک چھوٹا صوتی اسسٹنٹ چاہتے ہیں جو درحقیقت آپ کی قیادت کی پیروی کرے، آپ کے اپنے ہارڈ ویئر پر چلتا ہو، اور غلطی سے بارہ انناس کا آرڈر نہ دے کیونکہ اس نے آپ کو غلط سنا؟ایک Raspberry Pi کے ساتھ حیرت انگیز طور پر قابل حصول، تفریحی اور لچکدار ہے۔ آپ ایک ویک ورڈ، اسپیچ ریکگنیشن (ASR = خودکار اسپیچ ریکگنیشن)، فطری زبان کے لیے دماغ (قواعد یا LLM)، اور ٹیکسٹ ٹو اسپیچ (TTS) کو وائر اپ کریں گے۔ کچھ اسکرپٹس، ایک یا دو سروسز، اور کچھ محتاط آڈیو ٹویکس شامل کریں، اور آپ کو ایک جیب کے قابل سمارٹ اسپیکر مل گیا ہے جو آپ کے قواعد کی پابندی کرتا ہے۔

آئیے آپ کو معمول کے بال کھینچے بغیر صفر سے بات کرنے سے آپ کے پائی تک پہنچائیں۔ ہم پرزے، سیٹ اپ، کوڈ، موازنے، گٹچز... پورے burrito کا احاطہ کریں گے۔ 🌯

اس کے بعد آپ جو مضامین پڑھنا پسند کر سکتے ہیں:

🔗 مؤثر طریقے سے AI کا مطالعہ کیسے کریں۔
اسٹڈی روڈ میپ بنائیں، پروجیکٹس پر عمل کریں، اور پیشرفت کو ٹریک کریں۔

🔗 AI کمپنی کیسے شروع کی جائے۔
مسئلہ کی توثیق کریں، MVP بنائیں، ٹیم کو جمع کریں، ابتدائی گاہکوں کو محفوظ کریں۔

🔗 زیادہ پیداواری ہونے کے لیے AI کا استعمال کیسے کریں۔
معمول کے کاموں کو خودکار بنائیں، ورک فلو کو ہموار کریں، اور تخلیقی پیداوار میں اضافہ کریں۔

🔗 اپنے کاروبار میں AI کو کیسے شامل کریں۔
زیادہ اثر انداز ہونے والے عمل کی شناخت کریں، پائلٹس کو لاگو کریں، ROI کی پیمائش کریں، پیمانے۔


Raspberry Pi ✅ کے ساتھ ایک اچھا DIY AI اسسٹنٹ کیا بناتا ہے۔

  • پہلے سے طے شدہ طور پر نجی - جہاں ممکن ہو آڈیو کو مقامی رکھیں۔ آپ فیصلہ کرتے ہیں کہ ڈیوائس سے کیا نکلتا ہے۔

  • ماڈیولر - تبدیل کرنے والے اجزاء جیسے لیگو: ویک ورڈ انجن، اے ایس آر، ایل ایل ایم، ٹی ٹی ایس۔

  • سستی - زیادہ تر اوپن سورس، کموڈٹی مائکس، اسپیکر، اور ایک Pi۔

  • ہیک ایبل - ہوم آٹومیشن، ڈیش بورڈز، روٹینز، اپنی مرضی کی مہارتیں چاہتے ہیں؟ آسان

  • قابل اعتماد - سروس کے زیر انتظام، بوٹ اور خود بخود سننا شروع کر دیتا ہے۔

  • تفریح ​​- آپ آڈیو، عمل، اور ایونٹ پر مبنی ڈیزائن کے بارے میں بہت کچھ سیکھیں گے۔

چھوٹی ٹپ: اگر آپ Raspberry Pi 5 استعمال کرتے ہیں اور بھاری مقامی ماڈلز چلانے کا ارادہ رکھتے ہیں، تو ایک کلپ آن کولر مسلسل بوجھ میں مدد کرتا ہے۔ (جب شک ہو تو، Pi 5 کے لیے ڈیزائن کیا گیا آفیشل ایکٹو کولر چنیں۔) [1]


پرزے اور ٹولز جن کی آپ کو ضرورت ہو گی 🧰

  • Raspberry Pi: Pi 4 یا Pi 5 ہیڈ روم کے لیے تجویز کی جاتی ہے۔

  • مائیکرو ایس ڈی کارڈ: 32 جی بی + تجویز کردہ۔

  • USB مائیکروفون: ایک سادہ USB کانفرنس مائیک بہت اچھا ہے۔

  • اسپیکر: USB یا 3.5 ملی میٹر اسپیکر، یا ایک I2S amp HAT۔

  • نیٹ ورک: ایتھرنیٹ یا وائی فائی۔

  • اختیاری نکات: کیس، ایکٹو کولر ، پش ٹو ٹاک کے لیے پش بٹن، LED رنگ۔ [1]

OS اور بیس لائن سیٹ اپ

  1. فلیش Raspberry Pi OS Raspberry Pi Imager کے ساتھاپنے مطلوبہ پیش سیٹوں کے ساتھ بوٹ ایبل مائیکرو ایس ڈی حاصل کرنے کا یہ سیدھا سیدھا طریقہ ہے۔ [1]

  2. بوٹ کریں، نیٹ ورک سے جڑیں، پھر پیکجز کو اپ ڈیٹ کریں:

sudo apt update && sudo apt upgrade -y
  1. آڈیو کی بنیادی باتیںکے ذریعے ڈیفالٹ آؤٹ پٹ، لیولز اور ڈیوائسز سیٹ کر سکتے ہیں raspi-config۔ USB اور HDMI آڈیو تمام ماڈلز میں تعاون یافتہ ہیں۔ بلوٹوتھ آؤٹ پٹ بلوٹوتھ والے ماڈلز پر دستیاب ہے۔ [1]

  2. آلات کی تصدیق کریں:

arecord -l aplay -l

پھر ٹیسٹ کیپچر اور پلے بیک۔ اگر سطحیں عجیب لگتی ہیں تو مائیک پر الزام لگانے سے پہلے مکسر اور ڈیفالٹس چیک کریں۔

 

AI رسبری پائی

فن تعمیر ایک نظر میں 🗺️

ایک سمجھدار DIY AI اسسٹنٹ اس طرح لگتا ہے:

ویک ورڈ → لائیو آڈیو کیپچر → ASR ٹرانسکرپشن → انٹینٹ ہینڈلنگ یا LLM → رسپانس ٹیکسٹ → TTS → آڈیو پلے بیک → MQTT یا HTTP کے ذریعے اختیاری کارروائیاں۔

  • ویک ورڈ: پورکیپائن چھوٹا، درست ہے اور مقامی طور پر فی مطلوبہ الفاظ کی حساسیت کے کنٹرول کے ساتھ چلتا ہے۔ [2]

  • ASR: Whisper ایک کثیر لسانی، عام مقصد کا ASR ماڈل ہے جو ~680k گھنٹے پر تربیت یافتہ ہے۔ یہ لہجے / پس منظر کے شور کے لئے مضبوط ہے۔ ڈیوائس پر استعمال کے لیے، whisper.cpp ایک دبلی پتلی C/C++ انفرنس پاتھ فراہم کرتا ہے۔ [3][4]

  • دماغ: آپ کا انتخاب – API کے ذریعے ایک کلاؤڈ LLM، ایک رولز انجن، یا ہارس پاور پر منحصر مقامی اندازہ۔

  • TTS: پائپر مقامی طور پر قدرتی تقریر پیدا کرتا ہے، معمولی ہارڈ ویئر پر تیز ردعمل کے لیے کافی تیز۔ [5]


فوری موازنہ کی میز 🔎

ٹول کے لیے بہترین قیمت یہ کیوں کام کرتا ہے۔
پورکوپائن ویک ورڈ ہمیشہ سننے والا محرک مفت درجے + کم سی پی یو، درست، آسان پابندیاں [2]
Whisper.cpp Pi پر مقامی ASR اوپن سورس اچھی درستگی، CPU کے موافق [4]
تیز سرگوشی CPU/GPU پر تیز تر ASR اوپن سورس CTranslate2 کی اصلاح
پائپر ٹی ٹی ایس مقامی تقریر کی پیداوار اوپن سورس تیز آوازیں، بہت سی زبانیں [5]
Cloud LLM API بھرپور استدلال استعمال پر مبنی بھاری کمپیوٹ آف لوڈ کرتا ہے۔
نوڈ-ریڈ آرکیسٹریٹنگ اعمال اوپن سورس بصری بہاؤ، MQTT دوستانہ

مرحلہ وار تعمیر: آپ کا پہلا وائس لوپ 🧩

ہم ویک ورڈ کے لیے پورکیپائن، ٹرانسکرپشن کے لیے وِسپر، جواب کے لیے ہلکا پھلکا "دماغ" فنکشن (اپنی پسند کے ایل ایل ایم کے ساتھ تبدیل کریں) اور تقریر کے لیے پائپر استعمال کریں گے۔ اسے کم سے کم رکھیں، پھر دہرائیں۔

1) انحصار انسٹال کریں۔

sudo apt install -y python3-pip portaudio19-dev sox ffmpeg pip3 انسٹال ساؤنڈ ڈیوائس numpy
  • پورکوپائن: اپنی زبان کے لیے SDK/بائنڈنگز حاصل کریں اور فوری آغاز کی پیروی کریں (ایکسیس کلید + مطلوبہ الفاظ کی فہرست + آڈیو فریم → .process)۔ [2]

  • سرگوشی (CPU-دوستانہ): build whisper.cpp:

git clone https://github.com/ggml-org/whisper.cpp cd whisper.cpp && cmake -B build && cmake --build build -j ./models/download-ggml-model.sh base.en ./build/bin/whisper-cli -m ./models/ggml-bad-waml -m

مذکورہ بالا منصوبے کے فوری آغاز کی عکاسی کرتا ہے۔ [4]

ازگر کو ترجیح دیں؟ تیز تر سرگوشی (CTranslate2) معمولی سی پی یوز پر ونیلا ازگر سے زیادہ تیز ہوتی ہے۔

2) پائپر ٹی ٹی ایس قائم کریں۔

git clone https://github.com/rhasspy/piper cd piper make # اپنی پسند کا صوتی ماڈل ڈاؤن لوڈ کریں، جیسے، en_US-amy echo "Hello there." | ./piper --model voices/en/en_US-amy-medium.onnx --output_file hello.wav aplay hello.wav

پائپر کو متعدد آواز/زبان کے اختیارات کے ساتھ آن ڈیوائس TTS کے لیے ڈیزائن کیا گیا ہے۔ [5]

3) ازگر میں ایک کم سے کم اسسٹنٹ لوپ

جان بوجھ کر کمپیکٹ: ایک ویک جملے (اسٹب) کا انتظار کرتا ہے، ریکارڈ کرتا ہے، whisper.cpp، جواب (پلیس ہولڈر) تیار کرتا ہے، پھر پائپر کے ذریعے بولتا ہے۔ پلیس ہولڈر کو اپنے پسندیدہ LLM یا اصول کی منطق کے ساتھ تبدیل کریں۔

امپورٹ او ایس، سب پروسیس، ویو امپورٹ ساؤنڈ ڈیوائس بطور ایس ڈی WAKE_WORD = "Hey computer" # swap for porcupine in production [2] RECORD_SECONDS = 6 SAMPLE_RATE = 16000 CHANNELS = 1 WORKDIR = "/home/pi/assistant =" ASR "/home/pi/whisper.cpp/build/bin/whisper-cli" # [4] ASR_MODEL = "/home/pi/whisper.cpp/models/ggml-base.en.bin" PIPER_BIN = "/home/pi/piper/build/piper" # [5] PIPER_ "/home/pi/piper/voices/en/en_US-amy-medium.onnx" os.makedirs(WORKDIR, exist_ok=True) def record_wav(path, seconds=RECORD_SECONDS): audio = sd.rec(int(secends* SAMPLE_RATE, SAMPLE_RATE=CHALNATE), سیمپل_سیٹ = چینل dtype='int16') sd.wait() with wave.open(path, 'wb') بطور w: w.setnchannels(CHANNELS)؛ w.setsampwidth(2); w.setframerate(SAMPLE_RATE) w.writeframes(audio.tobytes()) def transcribe(path): cmd = [ASR_BIN, "-m", ASR_MODEL, "-f", path, "-otxt"] subprocess.run(cmd, check=True, cwd=WORK)"، open(workpath") کے ساتھ۔ ".txt"), "r", encoding="utf-8") بطور f: واپس f.read().strip() def generate_reply(prompt): if "weather" in prompt.lower(): واپس کریں "میں بادلوں کو نہیں دیکھ سکتا، لیکن یہ ٹھیک ہو سکتا ہے۔ اس صورت میں ایک جیکٹ لے آئیں۔" واپس کریں "آپ نے کہا:" + prompt def speak(text): proc = subprocess.Popen([PIPER_BIN, "--model", PIPER_VOICE, "--output_file", f"{WORKDIR}/reply.wav"], stdin=subprocess.PIPE) proc.stdin.write(text))8; proc.stdin.close(); proc.wait() subprocess.run(["aplay", f"{WORKDIR}/reply.wav"], check=True) پرنٹ ("اسسٹنٹ تیار۔ ٹیسٹ کرنے کے لیے ویک کا جملہ ٹائپ کریں۔") جبکہ True: typed = input("> ").strip().lower() اگر ٹائپ کیا جاتا ہے == WAKE_WORD: f"{WORKDIR}/input.wav" record_wav(wav_path) text = نقل (wav_path) جواب = generate_reply(text) print("User:", text); پرنٹ ("اسسٹنٹ:"، جواب) بولیں (جواب) اور: پرنٹ کریں ("لوپ کو جانچنے کے لیے ویک کا جملہ ٹائپ کریں۔")

حقیقی ویک ورڈ کا پتہ لگانے کے لیے، پورکیپائن کے اسٹریمنگ ڈیٹیکٹر (کم CPU، فی مطلوبہ الفاظ کی حساسیت) کو مربوط کریں۔ [2]


آڈیو ٹیوننگ جو اصل میں اہمیت رکھتی ہے 🎚️

چند چھوٹی اصلاحات آپ کے اسسٹنٹ کو 10× زیادہ بہتر محسوس کرتی ہیں:

  • مائک کا فاصلہ: 30-60 سینٹی میٹر بہت سے USB مائکس کے لیے ایک پیاری جگہ ہے۔

  • سطحیں: ان پٹ پر تراشنے سے گریز کریں اور پلے بیک کو سمجھدار رکھیں۔ کوڈ بھوتوں کا پیچھا کرنے سے پہلے روٹنگ کو ٹھیک کریں۔ Raspberry Pi OS پر، آپ سسٹم ٹولز یا raspi-config۔ [1]

  • کمرے کی صوتی: سخت دیواریں بازگشت کا سبب بنتی ہیں۔ مائیک کے نیچے ایک نرم چٹائی مدد کرتی ہے۔

  • ویک ورڈ تھریشولڈ: بہت حساس → گھوسٹ ٹرگرز؛ بہت سخت → آپ پلاسٹک پر چیخ رہے ہوں گے۔ پورکوپائن آپ کو فی مطلوبہ لفظ کی حساسیت کو بہتر کرنے دیتا ہے۔ [2]

  • تھرملز: پائی 5 پر لمبی ٹرانسکرپشنز مستقل کارکردگی کے لیے آفیشل ایکٹو کولر سے فائدہ اٹھاتی ہیں۔ [1]


کھلونا سے آلات تک جانا: سروسز، آٹو اسٹارٹ، ہیلتھ چیکس 🧯

انسان سکرپٹ چلانا بھول جاتے ہیں۔ کمپیوٹر اچھا ہونا بھول جاتے ہیں۔ اپنے لوپ کو منظم سروس میں تبدیل کریں:

  1. سسٹمڈ یونٹ بنائیں:

[یونٹ] تفصیل=DIY وائس اسسٹنٹ کے بعد=network.target sound.target [Service] User=pi WorkingDirectory=/home/pi/assistant ExecStart=/usr/bin/python3 /home/pi/assistant/assistant.py Restart=always RestartSec=3 [install.
  1. اسے فعال کریں:

sudo cp Assistant.service /etc/systemd/system/ sudo systemctl daemon-reload sudo systemctl enable --now assistant.service
  1. لاگ ٹیل:

journalctl -u اسسٹنٹ -f

اب یہ بوٹ پر شروع ہوتا ہے، حادثے پر دوبارہ شروع ہوتا ہے، اور عام طور پر ایک آلات کی طرح برتاؤ کرتا ہے۔ تھوڑا سا بورنگ، بہت بہتر۔


ہنر کا نظام: اسے گھر پر ہی کارآمد بنائیں 🏠✨

ایک بار وائس ان اور وائس آؤٹ ٹھوس ہونے کے بعد، اعمال شامل کریں:

  • انٹنٹ راؤٹر: عام کاموں کے لیے سادہ مطلوبہ الفاظ کے راستے۔

  • اسمارٹ ہوم: واقعات کو MQTT پر شائع کریں یا ہوم اسسٹنٹ کے HTTP اینڈ پوائنٹس کو کال کریں۔

  • پلگ انز: فوری ازگر کے افعال جیسے set_timer, what_is_the_time, play_radio, run_scene.

یہاں تک کہ لوپ میں کلاؤڈ LLM کے ساتھ، رفتار اور وشوسنییتا کے لیے پہلے واضح مقامی کمانڈز کو روٹ کریں۔


صرف مقامی بمقابلہ کلاؤڈ اسسٹ: ٹریڈ آف آپ کو محسوس ہوگا 🌓

صرف مقامی
پیشہ: نجی، آف لائن، متوقع اخراجات۔
نقصانات: چھوٹے بورڈز پر بھاری ماڈل سست ہوسکتے ہیں۔ اگر آپ اسے ڈیوائس پر یا قریبی سرور پر رکھتے ہیں تو Whisper کی کثیر لسانی تربیت مضبوطی میں مدد دیتی ہے۔ [3]

کلاؤڈ معاون
پیشہ: طاقتور استدلال، بڑے سیاق و سباق کی ونڈوز۔
نقصانات: ڈیٹا آلہ چھوڑ دیتا ہے، نیٹ ورک کا انحصار، متغیر اخراجات۔

ایک ہائبرڈ اکثر جیت جاتا ہے: ویک ورڈ + ASR لوکل → استدلال کے لیے API کو کال کریں → TTS لوکل۔ [2][3][5]


ٹربل شوٹنگ: عجیب گریملینز اور فوری اصلاحات 👾

  • لفظ جھوٹے محرکات کو جگائیں: حساسیت کم کریں یا کوئی مختلف مائیک آزمائیں۔ [2]

  • ASR lag: ایک چھوٹا Whisper ماڈل استعمال کریں یا whisper.cpp کو ریلیز جھنڈوں کے ساتھ بنائیں (-j --config ریلیز)۔ [4]

  • Choppy TTS: پہلے سے عام جملے تیار کریں۔ اپنے آڈیو ڈیوائس اور نمونے کی شرح کی تصدیق کریں۔

  • کوئی مائیک نہیں ملا: arecord -l اور مکسر چیک کریں۔

  • تھرمل تھروٹلنگ: پائیدار کارکردگی کے لیے Pi 5 پر آفیشل ایکٹو کولر استعمال کریں۔ [1]


سیکیورٹی اور پرائیویسی نوٹس جو آپ کو درحقیقت پڑھنا چاہیے 🔒

  • APT کے ساتھ اپنے Pi کو اپ ڈیٹ رکھیں۔

  • اگر آپ کوئی کلاؤڈ API استعمال کرتے ہیں تو جو کچھ آپ بھیجتے ہیں اسے لاگ ان کریں اور پہلے ذاتی بٹس کو مقامی طور پر تبدیل کرنے پر غور کریں۔

  • کم سے کم استحقاق کے ساتھ خدمات چلائیں؛سے بچیں sudo ExecStart میں

  • فراہم کریں صرف مقامی موڈ مہمانوں یا پرسکون اوقات کے لیے


مختلف قسمیں بنائیں: سینڈوچ کی طرح مکس اور میچ کریں 🥪

  • انتہائی مقامی: پورکوپائن + whisper.cpp + پائپر + آسان اصول۔ نجی اور مضبوط۔ [2][4][5]

  • سپیڈی کلاؤڈ اسسٹ: پورکوپائن + (چھوٹا لوکل وِسپر یا کلاؤڈ ASR) + TTS لوکل + کلاؤڈ LLM۔

  • ہوم آٹومیشن سنٹرل: معمولات، مناظر اور سینسر کے لیے نوڈ-ریڈ یا ہوم اسسٹنٹ فلو شامل کریں۔


مہارت کی مثال: MQTT کے ذریعے لائٹس آن 💡

درآمد paho.mqtt.client بطور mqtt MQTT_HOST = "192.168.1.10" TOPIC = "home/livingroom/light/set" def set_light(state: str): client = mqtt.Client() client.connect(MQTT_HOST, 1883, = "60) اگر ادائیگی کریں" state.lower().startswith("on") else "OFF" client.publish(TOPIC, payload, qos=1, retain=False) client. disconnect() # اگر متن میں "لائٹس آن کریں": set_light("on")

ایک صوتی لائن شامل کریں جیسے: "رہنے والے کمرے کا لیمپ آن کریں" اور آپ ایک جادوگر کی طرح محسوس کریں گے۔


یہ اسٹیک عملی طور پر کیوں کام کرتا ہے 🧪

  • پورکیپائن چھوٹے بورڈز پر ویک ورڈ کا پتہ لگانے میں موثر اور درست ہے، جو ہمیشہ سننے کو ممکن بناتا ہے۔ [2]

  • وسپر کی بڑی، کثیر لسانی تربیت اسے متنوع ماحول اور لہجے میں مضبوط بناتی ہے۔ [3]

  • whisper.cpp اس پاور کو صرف CPU آلات جیسے Pi پر قابل استعمال رکھتا ہے۔ [4]

  • پائپر کلاؤڈ TTS پر آڈیو بھیجے بغیر جوابات کو تیز رکھتا ہے۔ [5]


بہت لمبا، نہیں پڑھا۔

ایک ماڈیولر، پرائیویٹ DIY AI اسسٹنٹ Raspberry Pi کے ساتھ ویک ورڈ کے لیے Porcupine، ASR کے لیے Whisper ( Whisper.cpp)، جوابات کے لیے آپ کے دماغ کا انتخاب، اور مقامی TTS کے لیے پائپر کو ملا کر بنائیں۔ اسے سسٹمڈ سروس کے طور پر لپیٹیں، آڈیو ٹیون کریں، اور MQTT یا HTTP ایکشنز میں وائر کریں۔ یہ آپ کے خیال سے سستا ہے، اور اس کے ساتھ رہنا عجیب طور پر خوشگوار ہے۔ [1][2][3][4][5]


حوالہ جات

  1. Raspberry Pi Software & Cooling – Raspberry Pi Imager (ڈاؤن لوڈ اور استعمال) اور Pi 5 ایکٹو کولر پروڈکٹ کی معلومات

  2. پورکوپائن ویک ورڈ - SDK اور فوری آغاز (مطلوبہ الفاظ، حساسیت، مقامی اندازہ)

  3. وسپر (ASR ماڈل) - کثیر لسانی، مضبوط ASR ~680k گھنٹے پر تربیت یافتہ

    • Radford et al.، بڑے پیمانے پر کمزور نگرانی کے ذریعے مضبوط تقریر کی شناخت (سرگوشی): مزید پڑھیں

  4. whisper.cpp - CLI اور تعمیراتی اقدامات کے ساتھ CPU-دوستانہ Whisper کا اندازہ

  5. پائپر ٹی ٹی ایس - ایک سے زیادہ آوازوں/زبانوں کے ساتھ تیز، مقامی نیورل TTS

آفیشل AI اسسٹنٹ اسٹور پر تازہ ترین AI تلاش کریں۔

ہمارے بارے میں


واپس بلاگ پر