Dëshironi një asistent të vogël zëri që ndjek shembullin tuaj, funksionon me harduerin tuaj dhe nuk do të porosisë aksidentalisht dymbëdhjetë ananas sepse ju ka dëgjuar gabim? Një asistent AI i bërë vetë me Raspberry Pi është çuditërisht i arritshëm, argëtues dhe fleksibël. Do të krijoni një fjalë zgjimi, njohje të të folurit (ASR = njohje automatike e të folurit), një tru për gjuhën natyrore (rregulla ose një LLM) dhe tekst-në-fjalë (TTS). Shtoni disa skripte, një ose dy shërbime dhe disa ndryshime të kujdesshme audio, dhe keni një altoparlant inteligjent të xhepit që i bindet rregullave tuaja.
Le t'ju çojmë nga zero në bisedën me Pi-në tuaj pa tërheqjen e flokëve të zakonshme. Do të trajtojmë pjesët, konfigurimin, kodin, krahasimet, të metat... të gjithë burriton. 🌯
Artikuj që mund t'ju pëlqejnë të lexoni pas këtij:
🔗 Si ta studiojmë në mënyrë efektive inteligjencën artificiale
Krijo një plan studimi, praktiko projekte dhe ndiq progresin.
🔗 Si të hapni një kompani të inteligjencës artificiale
Validoni problemin, ndërtoni MVP-në, mblidhni ekipin, siguroni klientët fillestarë.
🔗 Si ta përdorni inteligjencën artificiale për të qenë më produktiv
Automatizoni detyrat rutinë, përmirësoni rrjedhat e punës dhe rrisni rezultatet krijuese.
🔗 Si ta përfshini inteligjencën artificiale në biznesin tuaj
Identifikoni proceset me ndikim të lartë, zbatoni projekte pilot, matni kthimin e investimit, shkallëzoni.
Çfarë e bën një asistent të mirë të inteligjencës artificiale (AI) me Raspberry Pi ✅
-
Privat si parazgjedhje – mbajeni audion lokale aty ku është e mundur. Ju vendosni se çfarë del nga pajisja.
-
Modular – ndërroni komponentë si Lego: motori i fjalëve wake, ASR, LLM, TTS.
-
i përballueshëm – kryesisht mikrofonë, altoparlantë dhe një Pi, me burim të hapur.
-
I hakueshëm – dëshironi automatizim në shtëpi, panele kontrolli, rutina, aftësi të personalizuara? E lehtë.
-
I besueshëm – i menaxhuar nga shërbimi, nis dhe fillon të dëgjojë automatikisht.
-
Argëtuese – do të mësoni shumë rreth audios, proceseve dhe dizajnit të drejtuar nga ngjarjet.
Këshillë e vogël: Nëse përdorni një Raspberry Pi 5 dhe planifikoni të përdorni modele lokale më të rënda, një ftohës me kapëse ndihmon nën ngarkesë të qëndrueshme. (Kur keni dyshime, zgjidhni ftohësin zyrtar aktiv të projektuar për Pi 5.) [1]
Pjesë dhe Vegla që do t'ju Nevojiten 🧰
-
Raspberry Pi : Pi 4 ose Pi 5 i rekomanduar për hapësirën e kokës.
-
Kartë microSD : Rekomandohet 32 GB+.
-
Mikrofon USB : një mikrofon i thjeshtë USB për konferencë është shumë i mirë.
-
Altoparlant : Altoparlant USB ose 3.5 mm, ose një I2S amp HAT.
-
Rrjeti : Ethernet ose Wi-Fi.
-
Pajisje shtesë: kuti, ftohës aktiv për Pi 5, buton për të folur me zë, unazë LED. [1]
Konfigurimi i sistemit operativ dhe bazës
-
Fshij sistemin operativ Raspberry Pi me Raspberry Pi Imager. Është mënyra më e thjeshtë për të marrë një microSD të nisshme me cilësimet e paracaktuara që dëshironi. [1]
-
Nise, lidhu me rrjetin dhe pastaj përditëso paketat:
përditësimi i sudo apt && përmirësimi i sudo apt -y
-
Bazat e audios : Në Raspberry Pi OS mund të caktoni daljen, nivelet dhe pajisjet e parazgjedhura nëpërmjet ndërfaqes së përdoruesit të desktopit ose
raspi-config. Audio USB dhe HDMI mbështeten në të gjitha modelet; Dalja Bluetooth është e disponueshme në modelet me Bluetooth. [1] -
Verifikoni pajisjet:
arecord -l luaj -l
Pastaj testoni kapjen dhe riprodhimin. Nëse nivelet duken të çuditshme, kontrolloni mikserët dhe cilësimet fillestare përpara se të fajësoni mikrofonin.
Arkitektura me një vështrim 🗺️
Një asistent i zgjuar i inteligjencës artificiale DIY me Raspberry Pi flow duket kështu:
Fjala e zgjimit → kapja e drejtpërdrejtë e audios → transkriptimi ASR → trajtimi i qëllimit ose LLM → teksti i përgjigjes → TTS → riprodhimi i audios → veprime opsionale nëpërmjet MQTT ose HTTP.
-
Fjala e Zgjimit : Porcupine është i vogël, i saktë dhe funksionon lokalisht me kontroll të ndjeshmërisë për çdo fjalë kyçe. [2]
-
ASR : Whisper është një model ASR shumëgjuhësh dhe me qëllim të përgjithshëm, i trajnuar në ~680 mijë orë; është rezistent ndaj thekseve/zhurmës së sfondit. Për përdorim në pajisje,
whisper.cppofron një rrugë të thjeshtë inference C/C++. [3][4] -
Truri : Zgjedhja juaj – një LLM në cloud nëpërmjet API-t, një motor rregullash ose inferencë lokale në varësi të fuqisë.
-
TTS : Piper gjeneron ligjërim natyral në nivel lokal, mjaftueshëm shpejt për përgjigje të shpejta në pajisje të thjeshta. [5]
Tabela e Krahasimit të Shpejtë 🔎
| Mjet | Më e mira për | Çmime të larta | Pse funksionon |
|---|---|---|---|
| Fjala e Zgjimit të Porcupine | Shkaktues gjithmonë i dëgjimit | Niveli falas + | CPU i ulët, lidhje të sakta dhe të lehta [2] |
| Whisper.cpp | ASR lokale në Pi | Burim i hapur | Saktësi e mirë, miqësore me CPU-në [4] |
| Faster-Whisper | ASR më i shpejtë në CPU/GPU | Burim i hapur | Optimizime të CTranslate2 |
| Piper TTS | Prodhimi lokal i të folurit | Burim i hapur | Zëra të shpejtë, shumë gjuhë [5] |
| API-ja e LLM-së në Cloud | Arsyetim i pasur | Bazuar në përdorim | Zvogëlon ngarkesën e rëndë të llogaritjes |
| Nyja-KUQE | Orkestrimi i veprimeve | Burim i hapur | Rrjedha vizuale, miqësore me MQTT |
Ndërtim hap pas hapi: Cikli juaj i parë me zë 🧩
Do të përdorim Porcupine për fjalën e zgjimit, Whisper për transkriptimin, një funksion të lehtë "truri" për përgjigjen (zëvendësojeni me LLM-në tuaj të preferuar) dhe Piper për të folurit. Mbajeni minimal, pastaj përsëriteni.
1) Instaloni varësitë
sudo apt install -y python3-pip portaudio19-dev sox ffmpeg pip3 install sounddevice numpy
-
Porcupine: merrni SDK-në/lidhjet për gjuhën tuaj dhe ndiqni hapat e shpejtë (çelësi i aksesit + lista e fjalëve kyçe + kornizat audio →
.process). [2] -
Whisper (i përshtatshëm për CPU): ndërto whisper.cpp :
git klon 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 më sipër pasqyron fillimin e shpejtë të projektit. [4]
Preferoni Python?
Faster-whisper(CTranslate2) është shpesh më i shpejtë se Python i thjeshtë në CPU-të modeste.
2) Konfiguroni Piper TTS
git clone https://github.com/rhasspy/piper cd piper make # Shkarkoni një model zëri që ju pëlqen, p.sh., en_US-amy echo "Përshëndetje." | ./piper --model voices/en/en_US-amy-medium.onnx --output_file hello.wav aplay hello.wav
Piper është projektuar për TTS në pajisje me opsione të shumëfishta zëri/gjuhe. [5]
3) Një lak minimal asistent në Python
Qëllimisht kompakt: pret për një frazë zgjimi (stub), regjistron, transkripton me whisper.cpp , gjeneron një përgjigje (placeholder), pastaj flet nëpërmjet Piper. Zëvendësoni placeholder me LLM-në ose logjikën e rregullave tuaja të preferuara.
importo os, nënproces, valë importo pajisjen e zërit si sd WAKE_WORD = "hej kompjuter" # ndërro për Porcupine në prodhim [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=E Vërtetë) def record_wav(shtegu, sekondat=RECORD_SECONDS): audio = sd.rec(int(sekonda * SAMPLE_RATE), samplerate=SAMPLE_RATE, channels=CHANNELS, dtype='int16') sd.wait() me wave.open(path, 'wb') si 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 "weather" in prompt.lower(): return "Nuk i shoh retë, por mund të jetë mirë. Sillni një xhaketë për çdo rast." return "Ju thatë: " + 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("Asistent gati. Shkruaj frazën e zgjimit për të testuar.") 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("Përdoruesi:", text); print("Asistent:", reply) speak(reply) else: print("Shkruani frazën e zgjimit për të testuar ciklin.")
Për zbulimin e vërtetë të fjalëve të zgjimit, integroni detektorin e rrjedhës së Porcupine (ndjeshmëri e ulët e CPU-së, për çdo fjalë kyçe). [2]
Akordimi i audios që ka vërtet rëndësi 🎚️
Disa rregullime të vogla e bëjnë asistentin tuaj të ndihet 10 herë më i zgjuar:
-
Distanca e mikrofonit : 30–60 cm është një distancë ideale për shumë mikrofonë USB.
-
Nivelet : shmangni prerjen e të dhënave hyrëse dhe mbajeni riprodhimin të rregullt; rregulloni rrugëzimin përpara se të ndiqni fantazmat e kodit. Në Raspberry Pi OS, mund të menaxhoni pajisjen dalëse dhe nivelet nëpërmjet mjeteve të sistemit ose
raspi-config. [1] -
Akustika e dhomës : muret e forta shkaktojnë jehonë; një dyshek i butë nën mikrofon ndihmon.
-
Pragu i fjalës së zgjimit : shumë i ndjeshëm → shkaktarë fantazmë; shumë i rreptë → do t'i bërtasësh plastikës. Porcupine ju lejon të ndryshoni ndjeshmërinë për çdo fjalë kyçe. [2]
-
Termike : transkriptimet e gjata në Pi 5 përfitojnë nga ftohësi zyrtar aktiv për performancë të qëndrueshme. [1]
Kalimi nga lodra në pajisje shtëpiake: Shërbime, nisje automatike, kontrolle shëndetësore 🧯
Njerëzit harrojnë të ekzekutojnë skripte. Kompjuterët harrojnë të jenë të sjellshëm. Shndërrojeni ciklin tuaj në një shërbim të menaxhuar:
-
Krijo një njësi të sistemit:
[Njësia] Përshkrimi=Asistent Zëri DIY Pas=network.target sound.target [Shërbimi] Përdoruesi=pi WorkingDirectory=/home/pi/assistant ExecStart=/usr/bin/python3 /home/pi/assistant/assistant.py Restart=always RestartSec=3 [Instalo] WantedBy=multi-user.target
-
Aktivizoje atë:
sudo cp assistant.service /etc/systemd/system/ sudo systemctl daemon-reload sudo systemctl enable --now assistant.service
-
Bishtat e trungut:
journalctl -u asistent -f
Tani fillon gjatë nisjes, riniset pas bllokimit dhe në përgjithësi sillet si një pajisje. Paksa e mërzitshme, shumë më mirë.
Sistemi i Aftësive: Bëjeni të Dobishëm në Shtëpi 🏠✨
Pasi futja dhe dalja e zërit të jenë të sakta, shtoni veprimet:
-
Router i qëllimshëm : rrugë të thjeshta me fjalë kyçe për detyra të zakonshme.
-
Shtëpi inteligjente : publikoni ngjarje në MQTT ose telefononi pikat fundore HTTP të Home Assistant.
-
Shtojcat : funksione të shpejta në Python si
set_timer,what_is_the_time,play_radio,run_scene.
Edhe me një LLM në cloud në ciklin e punës, drejtoni së pari komandat lokale të dukshme për shpejtësi dhe besueshmëri.
Vetëm Lokale kundrejt Ndihmës në Cloud: Kompromise që do t'i Ndiheni 🌓
Vetëm lokal
Përparësitë: private, jashtë linje, kosto të parashikueshme.
Kundër: modelet më të rënda mund të jenë të ngadalta në borde të vogla. Trajnimi shumëgjuhësh i Whisper ndihmon me qëndrueshmërinë nëse e mbani në pajisje ose në një server aty pranë. [3]
Ndihma në cloud.
Përparësitë: arsyetim i fuqishëm, dritare konteksti më të mëdha.
Kundër: të dhënat largohen nga pajisja, varësia nga rrjeti, kostot variabile.
Një hibrid shpesh fiton: fjala zgjuese + ASR lokale → thirrja e një API për arsyetim → TTS lokale. [2][3][5]
Zgjidhja e problemeve: Gremlinët e çuditshëm dhe zgjidhjet e shpejta 👾
-
Shkaktuesit e fjalës së rreme të zgjimit : ulni ndjeshmërinë ose provoni një mikrofon tjetër. [2]
-
Vonesa ASR : përdorni një model më të vogël Whisper ose ndërtoni
whisper.cppme flamuj lëshimi (-j --config Lëshim). [4] -
TTS me ndërprerje : gjeneroni paraprakisht fraza të zakonshme; konfirmoni pajisjen tuaj audio dhe shkallët e mostrave.
-
Nuk u zbulua mikrofon : kontrolloni
arecord -ldhe mikserët. -
Rrotullim termik : përdorni ftohësin zyrtar aktiv në Pi 5 për performancë të qëndrueshme. [1]
Shënime për Sigurinë dhe Privatësinë që Duhet t'i Lexoni 🔒
-
Mbajeni Pi-në tuaj të përditësuar me APT.
-
Nëse përdorni ndonjë API të cloud-it, regjistroni atë që dërgoni dhe merrni në konsideratë redaktimin e bit-eve personale fillimisht në nivel lokal.
-
Ekzekutoni shërbimet me privilegjet më të pakta; shmangni
sudo-nnë ExecStart përveç nëse është e nevojshme. -
Ofroni një modalitet vetëm lokal për mysafirët ose orare të qeta.
Variante Ndërtimi: Përziej dhe Përputh si një Sanduiç 🥪
-
Ultra-lokal : Porcupine + whisper.cpp + Piper + rregulla të thjeshta. Privat dhe i fortë. [2][4][5]
-
Ndihmë e shpejtë në cloud : Porcupine + (Whisper lokal më i vogël ose cloud ASR) + TTS lokal + LLM në cloud.
-
Qendra e automatizimit në shtëpi : Shtoni rrjedhat Node-RED ose Home Assistant për rutinat, skenat dhe sensorët.
Shembull i aftësisë: Ndezja e dritave nëpërmjet MQTT 💡
importo paho.mqtt.client si mqtt MQTT_HOST = "192.168.1.10" TOPIC = "shtëpi/dhomë ndenjeje/dritë/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() # if "ndiz dritat" në tekst: set_light("on")
Shtoni një replikë zanore si: "ndizni llambën e dhomës së ndenjes" dhe do të ndiheni si një magjistar.
Pse kjo Stack funksionon në praktikë 🧪
-
Porcupine është efikas dhe i saktë në zbulimin e fjalëve të zgjimit në tabela të vogla, gjë që e bën të mundur dëgjimin gjithmonë. [2]
-
Trajnimi i gjerë dhe shumëgjuhësh i Whisper e bën atë të qëndrueshëm ndaj mjediseve dhe thekseve të ndryshme. [3]
-
whisper.cppe mban atë energji të përdorshme në pajisjet vetëm me CPU si Pi. [4] -
Piper i mban përgjigjet e shpejta pa dërguar audion në një TTS në cloud. [5]
Shumë e gjatë, nuk e lexova
Ndërtoni një Asistent AI modular, privat, të bërë vetë me Raspberry Pi duke kombinuar Porcupine për fjalën e zgjimit, Whisper (nëpërmjet whisper.cpp ) për ASR, trurin tuaj të zgjedhur për përgjigjet dhe Piper për TTS lokale. Mbështilleni atë si një shërbim të sistemuar, akordoni audion dhe lidhni veprimet MQTT ose HTTP. Është më i lirë nga sa mendoni dhe çuditërisht i këndshëm për të jetuar me të. [1][2][3][4][5]
Referencat
-
Softueri dhe Ftohja Raspberry Pi – Raspberry Pi Imager (shkarko dhe përdor) dhe informacion mbi produktin Pi 5 Active Cooler
-
Raspberry Pi Imager: lexoni më shumë
-
Ftohës Aktiv (Pi 5): lexoni më shumë
-
-
Porcupine Wake Word – SDK dhe fillim i shpejtë (fjalë kyçe, ndjeshmëri, përfundim lokal)
-
Whisper (modeli ASR) – ASR shumëgjuhësh dhe i fuqishëm, i trajnuar në ~680 mijë orë.
-
Radford et al., Njohje e Fuqishme e të Folurit nëpërmjet Mbikëqyrjes së Dobëtë në Shkallë të Madhe (Whisper): lexoni më shumë
-
-
whisper.cpp – Përfundim Whisper i përshtatshëm për CPU-në me CLI dhe hapa ndërtimi
-
Piper TTS – TTS neuronale lokale dhe e shpejtë me zëra/gjuhë të shumëfishta