एक असा छोटा व्हॉइस असिस्टंट हवा आहे का, जो खरोखर तुमच्या सूचनांचे पालन करेल, तुमच्या स्वतःच्या हार्डवेअरवर चालेल आणि तुमचे बोलणे चुकीचे ऐकून चुकून बारा अननसांची ऑर्डर देणार नाही? रास्पबेरी पाय वापरून स्वतः तयार केलेला (DIY) एआय असिस्टंट आश्चर्यकारकपणे साध्य करण्यायोग्य, मजेदार आणि लवचिक आहे. तुम्ही एक वेक वर्ड, स्पीच रेकग्निशन (ASR = ऑटोमॅटिक स्पीच रेकग्निशन), नैसर्गिक भाषेसाठी एक ब्रेन (नियम किंवा एलएलएम), आणि टेक्स्ट-टू-स्पीच (TTS) जोडाल. त्यात काही स्क्रिप्ट्स, एक किंवा दोन सर्व्हिसेस आणि ऑडिओमध्ये काही काळजीपूर्वक केलेले बदल जोडा, आणि तुमच्याकडे तुमच्या नियमांचे पालन करणारा एक खिशात मावणारा स्मार्ट स्पीकर तयार होईल.
चला तुम्हाला नेहमीच्या त्रासाशिवाय शून्यापासून तुमच्या पायशी बोलण्यापर्यंत घेऊन जाऊया. आम्ही भाग, सेटअप, कोड, तुलना, गोचेस... संपूर्ण बुरिटो कव्हर करू. 🌯
या लेखानंतर तुम्हाला वाचायला आवडतील असे लेख:
🔗 एआयचा प्रभावीपणे अभ्यास कसा करायचा
अभ्यासाचा रोडमॅप तयार करा, प्रकल्पांचा सराव करा आणि प्रगतीचा मागोवा घ्या.
🔗 एआय कंपनी कशी सुरू करावी
समस्या सत्यापित करा, MVP तयार करा, टीम एकत्र करा, सुरुवातीचे ग्राहक सुरक्षित करा.
🔗 अधिक उत्पादक होण्यासाठी एआयचा वापर कसा करावा
नियमित कामे स्वयंचलित करा, कार्यप्रवाह सुलभ करा आणि सर्जनशील उत्पादन वाढवा.
🔗 तुमच्या व्यवसायात एआय कसे समाविष्ट करावे
उच्च-प्रभाव प्रक्रिया ओळखा, पायलट योजना राबवा, ROI मोजा, स्केल करा.
रास्पबेरी पाई सह एक चांगला DIY AI असिस्टंट कसा बनवायचा ✅
-
डिफॉल्टनुसार खाजगी – शक्य असेल तिथे ऑडिओ स्थानिक ठेवा. डिव्हाइसमधून काय बाहेर जाईल हे तुम्ही ठरवता.
-
मॉड्युलर – लेगोप्रमाणे घटक अदलाबदल करा: वेक वर्ड इंजिन, एएसआर, एलएलएम, टीटीएस.
-
परवडणारे – मुख्यतः ओपन सोर्स, सर्वसामान्य माइक, स्पीकर आणि रास्पबेरी पाय.
-
हॅक करण्यायोग्य – तुम्हाला होम ऑटोमेशन, डॅशबोर्ड, रुटीन, कस्टम स्किल्स हवे आहेत का? अगदी सोपे.
-
विश्वसनीय – सेवेद्वारे व्यवस्थापित, आपोआप बूट होते आणि ऐकण्यास सुरुवात करते.
-
मजेदार – तुम्हाला ऑडिओ, प्रक्रिया आणि इव्हेंट-ड्रिव्हन डिझाइनबद्दल बरेच काही शिकायला मिळेल.
एक छोटीशी टीप: जर तुम्ही रास्पबेरी पाय ५ वापरत असाल आणि जास्त वजनदार स्थानिक मॉडेल्स चालवण्याची योजना आखत असाल, तर क्लिप-ऑन कूलर सततच्या भाराखाली मदत करतो. (शंका असल्यास, पाय ५ साठी डिझाइन केलेले अधिकृत अॅक्टिव्ह कूलर निवडा.) [1]
तुम्हाला आवश्यक असलेले सुटे भाग आणि साधने 🧰
-
रास्पबेरी पाय: हेडरूमसाठी पाय ४ किंवा पाय ५ ची शिफारस केली जाते.
-
मायक्रोएसडी कार्ड: ३२ जीबी+ शिफारसित.
-
यूएसबी मायक्रोफोन: एक साधा यूएसबी कॉन्फरन्स माइक उत्तम आहे.
-
स्पीकर: USB किंवा 3.5 मिमी स्पीकर, किंवा I2S अँप HAT.
-
नेटवर्क: इथरनेट किंवा वाय-फाय.
-
पर्यायी बारकावे: केस, सक्रिय कूलर , पुश-टू-टॉकसाठी पुश बटण, LED रिंग. [1]
ऑपरेटिंग सिस्टम आणि बेसलाइन सेटअप
-
रास्पबेरी पाय ओएस फ्लॅश करा . तुम्हाला हव्या असलेल्या प्रीसेटसह बूट करण्यायोग्य मायक्रोएसडी मिळवण्याचा हा एक सोपा मार्ग आहे. [1]
-
बूट करा, नेटवर्कशी कनेक्ट करा, नंतर पॅकेजेस अपडेट करा:
sudo apt अपडेट आणि sudo apt अपग्रेड -y
-
ऑडिओ बेसिक्स : रास्पबेरी पाय ओएस वर तुम्ही डेस्कटॉप UI किंवा
raspi-configद्वारे डीफॉल्ट आउटपुट, लेव्हल आणि डिव्हाइसेस सेट करू शकता . USB आणि HDMI ऑडिओ सर्व मॉडेल्समध्ये समर्थित आहेत; ब्लूटूथ असलेल्या मॉडेल्सवर ब्लूटूथ आउटपुट उपलब्ध आहे. [1] -
डिव्हाइसेस सत्यापित करा:
रेकॉर्ड -l प्ले -l
नंतर कॅप्चर आणि प्लेबॅकची चाचणी घ्या. जर लेव्हल विचित्र वाटत असतील, तर माइकला दोष देण्यापूर्वी मिक्सर आणि डिफॉल्ट तपासा.

एका दृष्टीक्षेपात वास्तुकला 🗺️
एक समंजस DIY AI असिस्टंट असे दिसते:
वेक वर्ड → लाईव्ह ऑडिओ कॅप्चर → एएसआर ट्रान्सक्रिप्शन → इंटेंट हँडलिंग किंवा एलएलएम → रिस्पॉन्स टेक्स्ट → टीटीएस → ऑडिओ प्लेबॅक → एमक्यूटीटी किंवा एचटीटीपी द्वारे पर्यायी क्रिया.
-
वेक वर्ड: पोर्क्युपिन लहान, अचूक आहे आणि प्रति-कीवर्ड संवेदनशीलता नियंत्रणासह स्थानिक पातळीवर चालतो. [2]
-
ASR: व्हिस्पर हे एक बहुभाषिक, सामान्य-उद्देशीय ASR मॉडेल आहे जे ~680k तास प्रशिक्षित केले आहे; ते उच्चार/पार्श्वभूमीतील आवाजासाठी मजबूत आहे. डिव्हाइसवर वापरासाठी,
whisper.cppएक सुलभ C/C++ इन्फरन्स मार्ग प्रदान करते. [3][4] -
ब्रेन: तुमच्या क्षमतेनुसार निवड – API द्वारे क्लाउड LLM, रूल्स इंजिन किंवा लोकल इन्फरन्स.
-
TTS: पायपर स्थानिक पातळीवर नैसर्गिक भाषण निर्माण करतो, सामान्य हार्डवेअरवर जलद प्रतिसाद देण्यासाठी पुरेसा जलद. [5]
जलद तुलना सारणी 🔎
| साधन | सर्वोत्तम साठी | महागडा | ते का काम करते |
|---|---|---|---|
| पोर्क्युपिन वेक वर्ड | नेहमी ऐकणारा ट्रिगर | मोफत टियर + | कमी CPU, अचूक, सोपे बाइंडिंग [2] |
| व्हिस्पर.सीपीपी | पाय वर स्थानिक ASR | मुक्त स्रोत | चांगली अचूकता, CPU-अनुकूल [4] |
| जलद-कुजबुजणे | CPU/GPU वर जलद ASR | मुक्त स्रोत | CTranslate2 ऑप्टिमायझेशन |
| पायपर टीटीएस | स्थानिक भाषण आउटपुट | मुक्त स्रोत | जलद आवाज, अनेक भाषा [5] |
| क्लाउड एलएलएम एपीआय | समृद्ध तर्क | वापरावर आधारित | हेवी कॉम्प्युट ऑफलोड करते |
| नोड-लाल | क्रियांचे आयोजन | मुक्त स्रोत | दृश्य प्रवाह, MQTT अनुकूल |
स्टेप बाय स्टेप बिल्ड: तुमचा पहिला व्हॉइस लूप 🧩
आपण वेक वर्डसाठी पोर्क्युपिन, ट्रान्सक्रिप्शनसाठी व्हिस्पर, रिप्लायसाठी हलके "ब्रेन" फंक्शन (तुमच्या पसंतीच्या LLM ने बदला) आणि स्पीचसाठी पायपर वापरू. ते कमीत कमी ठेवा, नंतर पुनरावृत्ती करा.
१) अवलंबित्वे स्थापित करा
sudo apt install -y python3-pip portaudio19-dev sox ffmpeg pip3 install sounddevice numpy
-
पोर्क्युपाइन: तुमच्या भाषेसाठी SDK/बाइंडिंग्ज मिळवा आणि क्विक स्टार्टचे अनुसरण करा (अॅक्सेस की + कीवर्ड सूची + ऑडिओ फ्रेम्स →
.process). [2] -
व्हिस्पर (CPU-फ्रेंडली): whisper.cpp:
गिट क्लोन https://github.com/ggml-org/whisper.cpp cd whisper.cpp && cmake -B बिल्ड && cmake --बिल्ड बिल्ड -j ./models/download-ggml-model.sh base.en ./build/bin/whisper-cli -m ./models/ggml-base.en.bin -f your.wav -otxt
वरील बाबी प्रकल्पाच्या जलद सुरुवातीचे प्रतिबिंब आहेत. [4]
पायथॉन पसंत आहे का?
फास्टर-व्हिस्पर(CTranslate2) हे सामान्य CPU वर व्हॅनिला पायथॉनपेक्षा अनेकदा जलद असते.
२) पायपर टीटीएस सेट करा
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]
३) पायथॉनमध्ये किमान असिस्टंट लूप
मुद्दाम कॉम्पॅक्ट केलेले: वेक फ्रेज (स्टब) ची वाट पाहतो, रेकॉर्ड करतो, whisper.cpp, रिप्लाय (प्लेसहोल्डर) तयार करतो, नंतर पायपरद्वारे बोलतो. तुमच्या आवडत्या LLM किंवा रुल लॉजिकसह प्लेसहोल्डर स्वॅप करतो.
आयात os, सबप्रोसेस, वेव्ह इम्पोर्ट साउंडडिव्हाइस sd म्हणून WAKE_WORD = "हे संगणक" # उत्पादनात पोर्क्युपिनसाठी स्वॅप करा [2] RECORD_SECONDS = 6 SAMPLE_RATE = 16000 चॅनेल = 1 WORKDIR = "/home/pi/assistant" ASR_BIN = "/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_VOICE = "/home/pi/piper/voices/en/en_US-amy-medium.onnx" os.makedirs(WORKDIR, exist_ok=True) def record_wav(path, सेकंद=RECORD_SECONDS): ऑडिओ = sd.rec(int(सेकंद * SAMPLE_RATE), samplerate=SAMPLE_RATE, channels=CHANNELS, dtype='int16') sd.wait() 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=WORKDIR) open(path.replace(".wav", ".txt"), "r", encoding="utf-8") सह f म्हणून: f.read().strip() def generate_reply(prompt) परत करा: जर "weather" prompt.lower() मध्ये असेल तर): "मला ढग दिसत नाहीत, पण ते ठीक असू शकते. जर शक्य असेल तर जॅकेट आणा." "तुम्ही म्हणालात: " + प्रॉम्प्ट def speak(text): proc = subprocess.Popen([PIPER_BIN, "--model", PIPER_VOICE, "--output_file", f"{WORKDIR}/reply.wav"], stdin=subprocess.PIPE) proc.stdin.write(text.encode("utf-8")); proc.stdin.close(); proc.wait() subprocess.run(["aplay", f"{WORKDIR}/reply.wav"], check=True) print("Assistant ready. test करण्यासाठी wake phrase टाइप करा.") तर True: typed = input("> ").strip().lower() if typed == WAKE_WORD: wav_path = f"{WORKDIR}/input.wav" record_wav(wav_path) text = transcribe(wav_path) reply = generate_reply(text) print("User:", text); print("Assistant:", reply) speak(reply) else: print("loop test करण्यासाठी wake phrase टाइप करा.")
वास्तविक वेक-वर्ड डिटेक्शनसाठी, पोर्क्युपिनचा स्ट्रीमिंग डिटेक्टर (कमी CPU, प्रति-कीवर्ड संवेदनशीलता) एकत्रित करा. [2]
खरोखर महत्त्वाचे ऑडिओ ट्यूनिंग 🎚️
काही लहान सुधारणा तुमच्या असिस्टंटला १०× अधिक स्मार्ट बनवतात:
-
माइकचे अंतर: अनेक USB माइकसाठी ३०-६० सेमी हे सर्वोत्तम अंतर असते.
-
लेव्हल्स: इनपुटवर क्लिपिंग टाळा आणि प्लेबॅक योग्य ठेवा; कोड घोस्टचा पाठलाग करण्यापूर्वी राउटिंग दुरुस्त करा. रास्पबेरी पाय ओएस वर, तुम्ही सिस्टम टूल्स किंवा
raspi-config. [1] -
खोलीतील ध्वनीशास्त्र: कठीण भिंतींमुळे प्रतिध्वनी निर्माण होतात; माइकखाली मऊ चटई मदत करते.
-
वेक वर्ड थ्रेशोल्ड: खूप संवेदनशील → घोस्ट ट्रिगर्स; खूप कडक → तुम्ही प्लास्टिकवर ओरडाल. पोर्क्युपाइन तुम्हाला प्रत्येक कीवर्डनुसार संवेदनशीलता बदलण्याची परवानगी देतो. [2]
-
थर्मल्स: Pi 5 वरील लांब ट्रान्सक्रिप्शनला शाश्वत कामगिरीसाठी अधिकृत सक्रिय कूलरचा फायदा होतो. [1]
खेळण्यांपासून उपकरणांकडे जाणे: सेवा, ऑटोस्टार्ट, आरोग्य तपासणी 🧯
माणसे स्क्रिप्ट चालवायला विसरतात. संगणक चांगले वागायला विसरतात. तुमचा लूप व्यवस्थापित सेवेत बदला:
-
एक systemd युनिट तयार करा:
[युनिट] वर्णन=DIY व्हॉइस असिस्टंट आफ्टर=नेटवर्क.टार्गेट sound.टार्गेट [सेवा] वापरकर्ता=पीआय वर्किंगडायरेक्टरी=/होम/पीआय/असिस्टंट एक्झिकस्टार्ट=/यूएसआर/बिन/पायथन३ /होम/पीआय/असिस्टंट/असिस्टंट.पीआय रीस्टार्ट=नेहमी रीस्टार्टसेक=३ [इंस्टॉल करा] वॉन्टेडबाय=मल्टी-यूजर.टार्गेट
-
ते सक्षम करा:
sudo cp assistant.service /etc/systemd/system/ sudo systemctl डेमन-रीलोड sudo systemctl सक्षम करा --आता सहाय्यक.सर्व्हिस
-
लाकडाच्या शेपट्या:
journalctl -u असिस्टंट -f
आता ते बूट झाल्यावर सुरू होते, क्रॅश झाल्यावर पुन्हा सुरू होते आणि सामान्यतः एखाद्या उपकरणासारखे वागते. थोडे कंटाळवाणे, बरेच चांगले.
कौशल्य प्रणाली: घरी खरोखर उपयुक्त बनवा 🏠✨
एकदा व्हॉइस-इन आणि व्हॉइस-आउट व्यवस्थित झाले की, कृती जोडा:
-
इंटेंट राउटर: सामान्य कामांसाठी साधे कीवर्ड रूट.
-
स्मार्ट होम: MQTT वर इव्हेंट्स प्रकाशित करा किंवा होम असिस्टंटच्या HTTP एंडपॉइंट्सना कॉल करा.
-
प्लगइन्स: जलद पायथॉन फंक्शन्स जसे की
set_timer,what_is_the_time,play_radio,run_scene.
क्लाउड LLM लूपमध्ये असतानाही, वेग आणि विश्वासार्हतेसाठी प्रथम स्पष्ट स्थानिक कमांड रूट करा.
फक्त लोकल विरुद्ध क्लाउड असिस्ट: तुम्हाला वाटेल अशी देवाणघेवाण 🌓
केवळ स्थानिक
फायदे: खाजगी, ऑफलाइन, अंदाजे खर्च.
तोटे: जड मॉडेल्स लहान बोर्डवर हळू चालू शकतात. व्हिस्परचे बहुभाषिक प्रशिक्षण तुम्ही ते डिव्हाइसवर किंवा जवळच्या सर्व्हरवर ठेवल्यास मजबुतीसाठी मदत करते. [3]
क्लाउड असिस्ट
फायदे: शक्तिशाली तर्क, मोठ्या संदर्भ विंडो.
तोटे: डेटा लीव्हज डिव्हाइस, नेटवर्क अवलंबित्व, परिवर्तनीय खर्च.
एक संकरित बहुतेकदा जिंकतो: वेक वर्ड + एएसआर लोकल → तर्क करण्यासाठी एपीआय कॉल करा → टीटीएस लोकल. [2][3][5]
समस्यानिवारण: विचित्र ग्रॅमलिन आणि जलद निराकरणे 👾
-
वेक वर्ड फॉल्स ट्रिगर्स: संवेदनशीलता कमी करा किंवा वेगळा माइक वापरून पहा. [2]
-
ASR लॅग : एक लहान Whisper मॉडेल वापरा किंवा रिलीज फ्लॅगसह
whisper.cppतयार करा (-j --config Release). [4] -
चॉपी टीटीएस: सामान्य वाक्ये पूर्व-जनरेट करा; तुमचे ऑडिओ डिव्हाइस आणि नमुना दरांची पुष्टी करा.
-
कोणताही माइक आढळला नाही:
arecord -lआणि मिक्सर तपासा. -
थर्मल थ्रॉटलिंग: शाश्वत कामगिरीसाठी Pi 5 वर अधिकृत अॅक्टिव्ह कूलर वापरा. [1]
तुम्ही खरोखर वाचले पाहिजे अशा सुरक्षा आणि गोपनीयता नोट्स 🔒
-
APT वापरून तुमचा Pi अपडेट ठेवा.
-
जर तुम्ही कोणताही क्लाउड एपीआय वापरत असाल, तर तुम्ही काय पाठवता ते लॉग करा आणि प्रथम स्थानिक पातळीवर वैयक्तिक बिट्स संपादित करण्याचा विचार करा.
-
कमीत कमी विशेषाधिकारांसह सेवा चालवा; आवश्यक नसल्यास ExecStart मध्ये
sudoटाळा. -
पाहुण्यांसाठी किंवा शांत वेळेसाठी फक्त स्थानिक मोड प्रदान करा .
प्रकार तयार करा: सँडविचसारखे मिक्स अँड मॅच करा 🥪
-
अति-स्थानिक: पोर्क्युपिन + व्हिस्पर.सीपीपी + पायपर + साधे नियम. खाजगी आणि मजबूत. [2][4][5]
-
स्पीडी क्लाउड असिस्ट: पोर्क्युपिन + (लहान स्थानिक व्हिस्पर किंवा क्लाउड एएसआर) + टीटीएस लोकल + क्लाउड एलएलएम.
-
होम ऑटोमेशन सेंट्रल: रूटीन, सीन आणि सेन्सर्ससाठी नोड-रेड किंवा होम असिस्टंट फ्लो जोडा.
कौशल्याचे उदाहरण: 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) payload = "ON" if state.lower().startswith("on") else "OFF" client.publish(TOPIC, payload, qos=1, retain=False) client.disconnect() # जर "दिवे चालू करा" मजकुरात: set_light("on")
"बैठकीच्या खोलीचा दिवा चालू करा" अशी एक ओळ जोडा आणि तुम्हाला जादूगार वाटेल.
हे स्टॅक व्यवहारात का काम करते 🧪
-
लहान बोर्डांवर वेक-वर्ड डिटेक्शनमध्ये पोर्क्युपिन कार्यक्षम आणि अचूक आहे, ज्यामुळे नेहमी ऐकणे शक्य होते. [2]
-
व्हिस्परच्या मोठ्या, बहुभाषिक प्रशिक्षणामुळे ते विविध वातावरण आणि उच्चारांमध्ये सक्षम बनते. [3]
-
whisper.cppही शक्ती Pi सारख्या CPU-केवळ उपकरणांवर वापरण्यायोग्य ठेवते. [4] -
क्लाउड TTS वर ऑडिओ न पाठवता पाईपर प्रतिसाद जलद ठेवतो. [5]
खूप लांब, वाचले नाही.
वेक वर्डसाठी पोर्क्युपाइन, ASR साठी व्हिस्पर ( whisper.cpp द्वारे), उत्तरांसाठी तुमच्या आवडीचा ब्रेन आणि लोकल TTS साठी पायपर यांचा वापर करून रास्पबेरी पायवर एक मॉड्यूलर, खाजगी DIY AI असिस्टंट तयार करा. त्याला सिस्टमडी सर्व्हिस म्हणून रॅप करा, ऑडिओ ट्यून करा आणि MQTT किंवा HTTP अॅक्शन्स जोडा. हे तुमच्या अपेक्षेपेक्षा स्वस्त आहे आणि वापरायला आश्चर्यकारकपणे आनंददायक आहे. [1][2][3][4][5]
संदर्भ
-
रास्पबेरी पाय सॉफ्टवेअर आणि कूलिंग – रास्पबेरी पाय इमेजर (डाउनलोड आणि वापर) आणि पाय ५ ॲक्टिव्ह कूलर उत्पादनाची माहिती
-
पोर्क्युपाइन वेक वर्ड – SDK आणि त्वरित प्रारंभ (कीवर्ड, संवेदनशीलता, स्थानिक अनुमान)
-
व्हिस्पर (ASR मॉडेल) – बहुभाषिक, मजबूत ASR जे सुमारे ६८० हजार तास प्रशिक्षित आहे.
-
रॅडफोर्ड आणि इतर, मोठ्या प्रमाणात कमकुवत देखरेखीद्वारे मजबूत उच्चार ओळख (व्हिस्पर): अधिक वाचा
-
-
whisper.cpp – CLI आणि बिल्ड स्टेप्ससह CPU-अनुकूल व्हिस्पर इन्फरन्स
-
पायपर टीटीएस – एकाधिक आवाज/भाषांसह वेगवान, स्थानिक न्यूरल टीटीएस