Ou vle yon ti asistan vokal ki vrèman swiv gidans ou, ki fonksyone sou pwòp ekipman ou, epi ki pa pral kòmande douz anana aksidantèlman paske li pa tande ou? Yon Asistan IA pèsonalize ak Raspberry Pi se yon bagay etonan, reyalizab, amizan, epi fleksib. Ou pral konekte yon mo reveye, rekonesans lapawòl (ASR = rekonesans otomatik lapawòl), yon sèvo pou lang natirèl (règ oswa yon LLM), ak tèks-a-lapawòl (TTS). Ajoute kèk script, youn oubyen de sèvis, ak kèk ajisteman odyo atansyon, epi ou gen yon oratè entelijan pòch ki obeyi règ ou yo.
Ann ede w kòmanse pale ak Pi ou a san w pa bezwen rale cheve w jan w abitye fè a. N ap pale de pyès yo, konfigirasyon an, kòd la, konparezon yo, pwoblèm yo... tout bagay sou burrito a. 🌯
Atik ou ta ka renmen li apre sa a:
🔗 Kijan pou etidye IA efektivman
Kreye yon plan etid, pratike pwojè, epi swiv pwogrè.
🔗 Kijan pou kòmanse yon konpayi IA
Valide pwoblèm nan, bati MVP a, rasanble ekip la, epi jwenn premye kliyan yo.
🔗 Kijan pou itilize IA pou vin pi pwodiktif
Otomatize travay woutin yo, senplifye workflows yo, epi ogmante pwodiksyon kreyatif.
🔗 Kijan pou entegre IA nan biznis ou
Idantifye pwosesis ki gen gwo enpak, aplike pilòt, mezire ROI, elaji.
Sa ki fè yon bon asistan IA brikoleur ak Raspberry Pi ✅
-
Prive pa default – kenbe odyo lokal la kote sa posib. Ou deside kisa ki kite aparèy la.
-
Modilè - konpozan echanj tankou Lego: motè mo reveye, ASR, LLM, TTS.
-
Abòdab - sitou sous ouvè, mikwofòn òdinè, oratè, ak yon Pi.
-
pou pirate – ou vle domotik, tablodbò, woutin, konpetans pèsonalize?
-
Fyab – jere pa sèvis, demaraj epi kòmanse koute otomatikman.
-
Plezi – w ap aprann anpil bagay sou odyo, pwosesis, ak konsepsyon ki baze sou evènman.
Ti konsèy: Si w ap itilize yon Raspberry Pi 5 epi w gen plan pou w itilize modèl lokal ki pi lou, yon radyatè ki tache ak yon klip ede w anba chaj kontinyèl. (Lè w gen dout, chwazi Radyatè Aktif ofisyèl ki fèt pou Pi 5 la.) [1]
Pyès ak Zouti ou pral bezwen 🧰
-
Raspberry Pi : Pi 4 oubyen Pi 5 rekòmande pou espas lib la.
-
Kat microSD : 32 GB+ rekòmande.
-
Mikwofòn USB : yon senp mikwofòn konferans USB se yon bon bagay.
-
Oratè : Oratè USB oubyen 3.5 mm, oubyen yon anplifikatè I2S HAT.
-
Rezo : Ethernet oubyen Wi-Fi.
-
Siplemantè opsyonèl: bwat, refwadisman aktif pou Pi 5, bouton pou peze pou pale, bag LED. [1]
Sistèm Operasyon ak Konfigirasyon Debaz
-
Flashe sistèm operasyon Raspberry Pi a avèk Raspberry Pi Imager. Se fason ki pi senp pou jwenn yon microSD ki ka demarre avèk prereglaj ou vle yo [1].
-
Demarre, konekte ak rezo a, epi mete pakè yo ajou:
sudo apt update && sudo apt upgrade -y
-
Prensip debaz odyo yo : Sou sistèm operasyon Raspberry Pi a, ou ka mete pwodiksyon, nivo ak aparèy pa defo yo atravè koòdone itilizatè biwo a oswa
raspi-config. Odyo USB ak HDMI yo sipòte sou tout modèl yo; pwodiksyon Bluetooth disponib sou modèl ki gen Bluetooth. [1] -
Verifye aparèy yo:
anrejistreman -l jwe -l
Apre sa, teste kaptire a ak lekti a. Si nivo yo sanble dwòl, tcheke mixer yo ak paramèt defo yo anvan ou mete fòt la sou mikwofòn nan.

Achitekti a an yon ti koutje sou 🗺️
Yon asistan IA brikoleur ki fè sans ak Raspberry Pi flow sanble ak sa a:
Mo reveye → kaptire odyo an dirèk → transkripsyon ASR → jesyon entansyon oubyen LLM → tèks repons → TTS → lekti odyo → aksyon opsyonèl via MQTT oubyen HTTP.
-
Mo reveye : Porcupine piti, egzak, epi li fonksyone lokalman avèk kontwòl sansiblite pou chak mo kle. [2]
-
ASR : Whisper se yon modèl ASR miltileng, pou tout objektif, ki te antrene sou ~680k èdtan; li solid anfas aksan/bri background. Pou itilizasyon sou aparèy,
whisper.cppbay yon chemen enferans C/C++ ki mèg. [3][4] -
Sèvo : Chwa ou – yon LLM nan nwaj la atravè API, yon motè règ, oswa yon enferans lokal selon puisans lan.
-
TTS : Piper jenere vwa natirèl lokalman, ase vit pou repons rapid sou pyès ki nan konpitè modès. [5]
Tablo Konparezon Rapid 🔎
| Zouti | Pi bon pou | Pri ki ba | Poukisa li fonksyone |
|---|---|---|---|
| Pawòl Reveye Porcupine | Deklanchè ki toujou ap koute | Nivo gratis + | Ti CPU, egzak, lyezon fasil [2] |
| Chichote.cpp | ASR lokal sou Pi | Sous ouvè | Bon presizyon, bon pou CPU [4] |
| Chichotman pi rapid | ASR pi rapid sou CPU/GPU | Sous ouvè | Optimizasyon CTranslate2 yo |
| Piper TTS | Sòti vwa lokal la | Sous ouvè | Vwa rapid, plizyè lang [5] |
| API Cloud LLM lan | Rezonman rich | Baze sou itilizasyon | Degaje kalkil lou yo |
| Nœud-RED | Òkestre aksyon yo | Sous ouvè | Koule vizyèl, zanmitay MQTT |
Konstriksyon etap pa etap: Premye boukl vwa ou 🧩
Nou pral itilize Porcupine pou mo reveye a, Whisper pou transkripsyon, yon fonksyon "sèvo" lejè pou repons lan (ranplase ak LLM ou chwazi a), epi Piper pou lapawòl. Kenbe li minim, apresa repete.
1) Enstale depandans yo
sudo apt enstale -y python3-pip portaudio19-dev sox ffmpeg pip3 enstale aparèy son an numpy
-
Porcupine: pran SDK/bindings pou lang ou a epi swiv demaraj rapid la (kle aksè + lis mo kle + ankadreman odyo →
.process). [2] -
Whisper (zanmitay CPU): konstwi whisper.cpp :
klone git 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-base.en.bin -f your.wav -otxt
Sa ki anwo a reflete demaraj rapid pwojè a. [4]
Ou prefere Python?
faster-whisper(CTranslate2) souvan pi rapid pase Python vaniy sou CPU modès.
2) Enstale Piper TTS la
git klone https://github.com/rhasspy/piper cd piper make # Telechaje yon modèl vwa ou renmen, pa egzanp, en_US-amy echo "Bonjou." | ./piper --model voices/en/en_US-amy-medium.onnx --output_file hello.wav aplay hello.wav
Piper fèt pou TTS sou aparèy la avèk plizyè opsyon vwa/lang. [5]
3) Yon bouk asistan minimòm nan Python
Fè espre konpak: tann yon fraz reveye (stub), anrejistre, transkri ak whisper.cpp , jenere yon repons (plasterholder), answit pale atravè Piper. Ranplase plasterholder a ak LLM ou pi renmen an oswa lojik règ ou.
enpòte os, sou-pwosesis, vag enpòte aparèy son kòm sd WAKE_WORD = "hey òdinatè" # swap pou Porcupine nan pwodiksyon [2] RECORD_SECONDS = 6 SAMPLE_RATE = 16000 CHANNELS = 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(chemen, segonn=RECORD_SECONDS): odyo = sd.rec(int(segond * SAMPLE_RATE), samplerate=SAMPLE_RATE, chanèl=CHANNELS, dtype='int16') sd.wait() avèk wave.open(chemen, 'wb') kòm 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) with open(path.replace(".wav", ".txt"), "r", encoding="utf-8") as f: return f.read().strip() def generate_reply(prompt): if "move tan" in prompt.lower(): return "Mwen pa ka wè nyaj yo, men li ta ka anfòm. Pote yon levit pou ka." retounen "Ou te di: " + 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.encode("utf-8")); proc.stdin.close(); proc.wait() subprocess.run(["aplay", f"{WORKDIR}/reply.wav"], check=True) print("Asistan an pare. Tape fraz reveye a pou teste.") while 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("Itilizatè:", text); enprime("Asistan:", reponn) pale(reponn) sinon: enprime("Tape fraz reveye a pou teste bouk la.")
Pou yon vrè deteksyon mo reveye, entegre detektè difizyon Porcupine a (CPU ki ba, sansiblite pa mo kle). [2]
Ajisteman Odyo Ki Vrèman Enpòtan 🎚️
Kèk ti koreksyon fè asistan ou santi l 10 fwa pi entelijan:
-
Distans mikwofòn : 30–60 cm se yon bon distans pou anpil mikwofòn USB.
-
Nivo : evite saturation sou antre epi kenbe lekti a nan bon eta; ranje routage anvan ou kouri dèyè kòd fantom. Sou Raspberry Pi OS, ou ka jere aparèy pwodiksyon an ak nivo yo atravè zouti sistèm oswa
raspi-config. [1] -
Akoustik chanm nan : mi di yo lakòz eko; yon tapi mou anba mikwo a ede.
-
Papòt mo reveye : twò sansib → deklanchè fantom; twò strik → ou pral rele sou plastik. Porcupine pèmèt ou ajiste sansiblite pou chak mo kle. [2]
-
Tèmik : transkripsyon long sou Pi 5 benefisye de refwadisman aktif ofisyèl la pou yon pèfòmans soutni. [1]
Soti nan jwèt rive nan aparèy: Sèvis, demaraj otomatik, verifikasyon sante 🧯
Moun bliye egzekite script. Odinatè bliye janti. Transfòme bouk ou a an yon sèvis jere:
-
Kreye yon inite systemd:
[Inite] Deskripsyon=Asistan Vwa Brikoleur Apre=network.target sound.target [Sèvis] Itilizatè=pi WorkingDirectory=/home/pi/assistant ExecStart=/usr/bin/python3 /home/pi/assistant/assistant.py Rekòmanse=toujou RestartSec=3 [Enstale] WantedBy=multi-user.target
-
Aktive li:
sudo cp asistan.sèvis /etc/systemd/system/ sudo systemctl daemon-reload sudo systemctl pèmèt --kounye asistan.sèvis
-
Ke logaritmik:
jounalctl -u asistan -f
Kounye a li kòmanse lè òdinatè a demarre, li rekòmanse lè òdinatè a plante, epi jeneralman li konpòte li tankou yon aparèy. Li yon ti jan raz, men li pi bon.
Sistèm Konpetans: Fè l Vrèman Itil Lakay Ou 🏠✨
Yon fwa vwa antre ak vwa sòti yo solid, ajoute aksyon yo:
-
Routeur entansyon : wout mo kle senp pou travay komen.
-
Kay entelijan : pibliye evènman yo sou MQTT oubyen rele pwen final HTTP Asistan Lakay la.
-
Plugins : fonksyon rapid Python tankou
set_timer,what_is_the_time,play_radio,run_scene.
Menm avèk yon LLM nan nwaj la, dirije kòmandman lokal evidan yo an premye pou vitès ak fyab.
Lokal sèlman vs Asistans nan nwaj la: Konpwomi ou pral santi yo 🌓
Lokal sèlman
Avantaj: prive, offline, pri previzib.
Dezavantaj: modèl ki pi lou yo ka ralanti sou ti tablo. Fòmasyon miltileng Whisper a ede ak robustès si ou kenbe li sou aparèy la oswa sou yon sèvè ki tou pre. [3]
asistans nan nwaj la
: rezònman pwisan, fenèt kontèks ki pi gwo.
Dezavantaj: done kite aparèy la, depandans sou rezo a, pri varyab.
Yon ibrid souvan genyen: mo reveye + ASR lokal → rele yon API pou rezonman → TTS lokal. [2][3][5]
Depanaj: Gremlins etranj ak solisyon rapid 👾
-
Deklanchman fo mo reveye : bese sansiblite oswa eseye yon lòt mikwofòn. [2]
-
Lag ASR : sèvi ak yon modèl Whisper ki pi piti oubyen konstwi
whisper.cppak drapo lage yo (-j --config Release). [4] -
TTS Choppy : jenere fraz komen davans; konfime aparèy odyo ou ak pousantaj echantiyonaj ou yo.
-
Pa gen mikwofòn detekte : tcheke
arecord -lak mixers yo. -
Limitasyon tèmik : sèvi ak aktif refwadisman ofisyèl la sou Pi 5 pou yon pèfòmans kontinyèl. [1]
Nòt sou Sekirite ak Konfidansyalite ou ta dwe li tout bon vre 🔒
-
Kenbe Pi ou ajou ak APT.
-
Si w ap itilize nenpòt API nan nwaj la, anrejistre sa w voye a epi konsidere efase bit pèsonèl yo lokalman an premye.
-
Kouri sèvis ki gen mwens privilèj; evite
sudonan ExecStart sof si sa nesesè. -
Bay yon mòd lokal sèlman pou envite yo oubyen pou lè trankil.
Konstwi Varyant: Melanje epi Matche Tankou Yon Sandwich 🥪
-
Ultra-lokal : Porcupine + whisper.cpp + Piper + règ senp. Prive e solid. [2][4][5]
-
Asistans rapid nan nwaj la : Porcupine + (pi piti Whisper lokal oswa ASR nan nwaj la) + TTS lokal + LLM nan nwaj la.
-
Santral automatisation lakay : Ajoute koule Node-RED oswa Home Assistant pou woutin, sèn ak detèktè.
Egzanp Konpetans: Limyè limen atravè MQTT 💡
enpòte paho.mqtt.client kòm mqtt MQTT_HOST = "192.168.1.10" TOPIC = "lakay/salon/limyè/set" def set_light(state: str): client = mqtt.Client() client.connect(MQTT_HOST, 1883, 60) payload = "ON" if state.lower().startswith("on") sinon "OFF" client.publish(TOPIC, payload, qos=1, retain=False) client.disconnect() # si "limen limyè yo" nan tèks la: set_light("on")
Ajoute yon fraz vwa tankou: “limen lanp salon an,” epi w ap santi w tankou yon majisyen.
Poukisa Pil sa a mache nan pratik 🧪
-
Porcupine efikas e egzak nan deteksyon mo reveye sou ti tablo, sa ki fè li posib pou toujou koute. [2]
-
Gwo fòmasyon miltileng Whisper a fè li solid nan divès anviwònman ak aksan. [3]
-
whisper.cppkenbe puisans sa a itil sou aparèy ki sèlman fonksyone ak CPU tankou Pi a. [4] -
Piper kenbe repons yo rapid san li pa voye odyo a nan yon TTS nan nwaj la. [5]
Twò long, m pa li l
Konstwi yon asistan IA modilè, prive, ak Raspberry Pi lè w konbine Porcupine pou mo reveye, Whisper (via whisper.cpp ) pou ASR, sèvo ou chwazi pou repons yo, epi Piper pou TTS lokal la. Vlope l kòm yon sèvis systemd, ajiste odyo a, epi konekte aksyon MQTT oswa HTTP yo. Li pi bon mache pase ou panse, epi etranjman agreyab pou viv avè l. [1][2][3][4][5]
Referans
-
Lojisyèl ak Refwadisman Raspberry Pi – Raspberry Pi Imager (telechaje & itilize) ak enfòmasyon sou pwodwi Pi 5 Active Cooler la
-
Porcupine Wake Word – SDK & demaraj rapid (mo kle, sansiblite, enferans lokal)
-
Whisper (modèl ASR) – ASR miltileng, solid ki antrene sou ~680k èdtan
-
Radford et al., Rekonesans lapawòl solid atravè sipèvizyon fèb sou gwo echèl (Whisper): li plis
-
-
whisper.cpp – Enferans Whisper ki fasil pou itilize sou CPU a avèk CLI ak etap konstriksyon yo
-
Piper TTS – TTS newonal lokal rapid ak plizyè vwa/lang