Sut i adeiladu Cynorthwyydd AI DIY gyda Raspberry Pi

Sut i adeiladu Cynorthwyydd AI DIY gyda Raspberry Pi

Eisiau cynorthwyydd llais bach sy'n dilyn eich arweiniad mewn gwirionedd, yn rhedeg ar eich caledwedd eich hun, ac na fydd yn archebu deuddeg pîn-afal ar ddamwain oherwydd iddo'ch camglywed? Cynorthwyydd AI DIY gyda Raspberry Pi yn syndod o gyraeddadwy, yn hwyl, ac yn hyblyg. Byddwch chi'n cysylltu gair deffro, adnabod lleferydd (ASR = adnabod lleferydd awtomatig), ymennydd ar gyfer iaith naturiol (rheolau neu LLM), a thestun-i-leferydd (TTS). Ychwanegwch ychydig o sgriptiau, un neu ddau wasanaeth, a rhai mân addasiadau sain gofalus, ac mae gennych chi siaradwr clyfar poced sy'n ufuddhau i'ch rheolau.

Gadewch i ni eich tywys o ddim byd i siarad-â-ch-Pi heb yr arfer o dynnu gwallt. Byddwn yn trafod rhannau, gosod, cod, cymariaethau, camgymeriadau... y burrito cyfan. 🌯

Erthyglau y gallech fod eisiau eu darllen ar ôl yr un hon:

🔗 Sut i astudio AI yn effeithiol
Creu map ffordd astudio, ymarfer prosiectau, ac olrhain cynnydd.

🔗 Sut i gychwyn cwmni AI
Dilysu problem, adeiladu MVP, llunio tîm, sicrhau cwsmeriaid cychwynnol.

🔗 Sut i ddefnyddio AI i fod yn fwy cynhyrchiol
Awtomeiddio tasgau arferol, symleiddio llifau gwaith, ac ychwanegu at allbwn creadigol.

🔗 Sut i ymgorffori AI yn eich busnes
Nodi prosesau effaith uchel, gweithredu cynlluniau peilot, mesur ROI, graddfa.


Beth sy'n Gwneud Cynorthwyydd AI DIY da gyda Raspberry Pi ✅

  • Preifat yn ddiofyn – cadwch y sain yn lleol lle bo modd. Chi sy'n penderfynu beth sy'n gadael y ddyfais.

  • Modiwlaidd – cyfnewid cydrannau fel Lego: peiriant geiriau deffro, ASR, LLM, TTS.

  • Fforddiadwy – meicroffonau ffynhonnell agored yn bennaf, siaradwyr, a Pi cyffredin.

  • Hacadwy – eisiau awtomeiddio cartref, dangosfyrddau, trefn arferol, sgiliau personol? Hawdd.

  • Dibynadwy – wedi'i reoli gan y gwasanaeth, yn cychwyn ac yn dechrau gwrando'n awtomatig.

  • Hwyl – byddwch chi'n dysgu llawer am sain, prosesau, a dylunio sy'n cael ei yrru gan ddigwyddiadau.

Awgrym bach: Os ydych chi'n defnyddio Raspberry Pi 5 ac yn bwriadu rhedeg modelau lleol trymach, mae oerydd clip-ymlaen yn helpu o dan lwyth parhaus. (Os oes gennych unrhyw amheuaeth, dewiswch yr Oerydd Gweithredol swyddogol a gynlluniwyd ar gyfer Pi 5.) [1]


Rhannau ac Offer y Bydd eu Hangen Arnoch 🧰

  • Raspberry Pi : Argymhellir Pi 4 neu Pi 5 ar gyfer lle pen.

  • Cerdyn microSD : argymhellir 32 GB+.

  • Meicroffon USB : mae meicroffon cynhadledd USB syml yn wych.

  • Siaradwr : Siaradwr USB neu 3.5 mm, neu amp I2S HAT.

  • Rhwydwaith : Ethernet neu Wi-Fi.

  • Manylion dewisol: cas, oerydd gweithredol ar gyfer Pi 5, botwm gwthio ar gyfer gwthio-i-siarad, cylch LED. [1]

Gosod System Weithredu a Sylfaenol

  1. Fflachio System Weithredu Raspberry Pi gyda Raspberry Pi Imager. Dyma'r ffordd syml o gael microSD bootable gyda'r rhagosodiadau rydych chi eu heisiau [1]

  2. Cychwyn, cysylltu â'r rhwydwaith, yna diweddaru pecynnau:

diweddariad sudo apt && uwchraddio sudo apt -y
  1. Hanfodion sain : Ar system weithredu Raspberry Pi gallwch osod yr allbwn, lefelau a dyfeisiau diofyn trwy'r rhyngwyneb bwrdd gwaith neu raspi-config . Cefnogir sain USB a HDMI ar draws modelau; mae allbwn Bluetooth ar gael ar fodelau gyda Bluetooth. [1]

  2. Gwirio dyfeisiau:

arecord -l chwarae -l

Yna profwch y recordiad a'r chwarae yn ôl. Os yw'r lefelau'n ymddangos yn rhyfedd, gwiriwch y cymysgwyr a'r gosodiadau diofyn cyn beio'r meicroffon.

 

AI mafon pi

Cipolwg ar y Bensaernïaeth 🗺️

synhwyrol DIY gyda llif Raspberry Pi fel hyn:

Gair deffro → cipio sain byw → trawsgrifio ASR → trin bwriad neu LLM → testun ymateb → TTS → chwarae sain → gweithredoedd dewisol trwy MQTT neu HTTP.

  • Gair deffro : Mae Porcupine yn fach, yn gywir, ac yn rhedeg yn lleol gyda rheolaeth sensitifrwydd fesul allweddair. [2]

  • ASR : Mae Whisper yn fodel ASR amlieithog, cyffredinol a hyfforddwyd ar tua 680k awr; mae'n gadarn i acenion/sŵn cefndir. Ar gyfer defnydd ar ddyfais, whisper.cpp yn darparu llwybr casglu C/C++ main. [3][4]

  • Ymennydd : Eich dewis chi – LLM cwmwl trwy API, peiriant rheolau, neu gasgliad lleol yn dibynnu ar marchnerth.

  • TTS : Mae Piper yn cynhyrchu lleferydd naturiol yn lleol, yn ddigon cyflym ar gyfer ymatebion cyflym ar galedwedd cymedrol. [5]


Tabl Cymhariaeth Gyflym 🔎

Offeryn Gorau Ar Gyfer Pris-isel Pam Mae'n Gweithio
Gair Deffro Porcupine Sbardun gwrando bob amser Haen am ddim + CPU isel, cywir, rhwymiadau hawdd [2]
Sibrydiad.cpp ASR Lleol ar Pi Ffynhonnell agored Cywirdeb da, yn gyfeillgar i'r CPU [4]
Sibrwd Cyflymach ASR cyflymach ar CPU/GPU Ffynhonnell agored Optimeiddiadau CTranslate2
Piper TTS Allbwn lleferydd lleol Ffynhonnell agored Lleisiau cyflym, llawer o ieithoedd [5]
API LLM Cwmwl Rhesymu cyfoethog Yn seiliedig ar ddefnydd Yn dadlwytho cyfrifiadura trwm
Nod-COCH Trefnu gweithredoedd Ffynhonnell agored Llifau gweledol, yn gyfeillgar i MQTT

Adeiladu Cam wrth Gam: Eich Dolen Llais Gyntaf 🧩

Byddwn yn defnyddio Porcupine ar gyfer gair deffro, Whisper ar gyfer trawsgrifio, swyddogaeth "ymennydd" ysgafn ar gyfer yr ateb (amnewidiwch gyda'ch LLM dewisol), a Piper ar gyfer lleferydd. Cadwch ef yn finimalaidd, yna ailadroddwch.

1) Gosod dibyniaethau

sudo apt install -y python3-pip portaudio19-dev sox ffmpeg pip3 install sounddevice numpy
  • Porcupine: gafaelwch yn y SDK/rhwymiadau ar gyfer eich iaith a dilynwch y cychwyn cyflym (allwedd mynediad + rhestr allweddeiriau + fframiau sain → .process ). [2]

  • Sibrwd (sy'n gyfeillgar i'r CPU): adeiladu whisper.cpp :

clôn git https://github.com/ggml-org/whisper.cpp cd whisper.cpp a& cmake -B adeiladu a& cmake --build adeiladu -j ./models/download-ggml-model.sh base.en ./build/bin/whisper-cli -m ./models/ggml-base.en.bin -f your.wav -otxt

Mae'r uchod yn adlewyrchu cychwyn cyflym y prosiect. [4]

Yn well gennych Python? faster-whisper (CTranslate2) yn aml yn fwy cyflym na Python fanila ar CPUs cymedrol.

2) Gosod Piper TTS

git clone https://github.com/rhasspy/piper cd piper make # Lawrlwythwch fodel llais rydych chi'n ei hoffi, e.e., en_US-amy echo "Helo yno." | ./piper --model lleisiau/en/en_US-amy-medium.onnx --output_file hello.wav aplay hello.wav

Mae Piper wedi'i gynllunio ar gyfer TTS ar ddyfais gyda sawl opsiwn llais/iaith. [5]

3) Dolen gynorthwyydd lleiaf posibl yn Python

Wedi'i gryno'n fwriadol: yn aros am ymadrodd deffro (stub), yn recordio, yn trawsgrifio gyda whisper.cpp , yn cynhyrchu ateb (lleoliad), yna'n siarad trwy Piper. Cyfnewid y lleoliad gyda'ch hoff LLM neu resymeg rheol.

mewnforio os, is-broses, tonnau mewnforio dyfais sain fel sd WAKE_WORD = "hei gyfrifiadur" # cyfnewid am Porcupine mewn cynhyrchiad [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.cy.bin" PIPER_BIN = "/home/pi/piper/build/piper" # [5] PIPER_VOICE = "/home/pi/piper/voices/cy/cy_US-amy-medium.onnx" os.makedirs(WORKDIR, exist_ok=Gwir) def record_wav(llwybr, eiliadau=RECORD_SECONDS): sain = sd.rec(int(eiliadau * SAMPLE_RATE), samplerate=SAMPLE_RATE, sianeli=SIANELEI, dtype='int16') sd.wait() gyda wave.open(llwybr, 'wb') fel w: w.setnchannels(SIANELEI); w.setsampwidth(2); w.setframerate(SAMPLE_RATE) w.writeframes(audio.tobytes()) def transcribe(llwybr): cmd = [ASR_BIN, "-m", ASR_MODEL, "-f", llwybr, "-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 "Fedra i ddim gweld y cymylau, ond gallai fod yn iawn. Dewch â siaced rhag ofn." dychwelyd "Dywedoch chi: " + prompt def siarad(testun): proc = subprocess.Popen([PIPER_BIN, "--model", PIPER_VOICE, "--output_file", f"{WORKDIR}/reply.wav"], stdin=subprocess.PIPE) proc.stdin.write(testun.encode("utf-8")); proc.stdin.close(); proc.wait() subprocess.run(["aplay", f"{WORKDIR}/reply.wav"], check=True) print("Cynorthwyydd yn barod. Teipiwch yr ymadrodd deffro i brofi.") tra bod True: wedi'i deipio = input("> ").strip().lower() os wedi'i deipio == WAKE_WORD: wav_path = f"{WORKDIR}/input.wav" record_wav(wav_path) test = transcribe(wav_path) reply = generate_reply(testun) print("Defnyddiwr:", test); print("Cynorthwyydd:", ateb) siarad(ateb) arall: print("Teipiwch yr ymadrodd deffro i brofi'r ddolen.")

Ar gyfer canfod geiriau deffro go iawn, integreiddiwch synhwyrydd ffrydio Porcupine (CPU isel, sensitifrwydd fesul allweddair). [2]


Tiwnio Sain Sydd Wirioneddol Bwysig 🎚️

Mae ychydig o atgyweiriadau bach yn gwneud i'ch cynorthwyydd deimlo 10 gwaith yn fwy clyfar:

  • Pellter meicroffon : mae 30–60 cm yn fan perffaith ar gyfer llawer o feicroffonau USB.

  • Lefelau : osgoi clipio ar fewnbwn a chadw chwarae'n synhwyrol; trwsio llwybro cyn mynd ar ôl ysbrydion cod. Ar system weithredu Raspberry Pi, gallwch reoli dyfais allbwn a lefelau trwy offer system neu raspi-config . [1]

  • Acwsteg ystafell : mae waliau caled yn achosi adleisiau; mae mat meddal o dan y meicroffon yn helpu.

  • Trothwy geiriau deffro : rhy sensitif → sbardunau ysbrydion; rhy llym → byddwch chi'n gweiddi ar blastig. Mae Porcupine yn gadael i chi addasu sensitifrwydd fesul allweddair. [2]

  • Thermalau : mae trawsgrifiadau hir ar Pi 5 yn elwa o'r oerydd gweithredol swyddogol ar gyfer perfformiad cynaliadwy. [1]


Mynd o Degan i Offeryn: Gwasanaethau, Cychwyn Auto, Gwiriadau Iechyd 🧯

Mae bodau dynol yn anghofio rhedeg sgriptiau. Mae cyfrifiaduron yn anghofio bod yn garedig. Trowch eich dolen yn wasanaeth a reolir:

  1. Creu uned systemd:

[Uned] Disgrifiad=Cynorthwyydd Llais DIY Ar ôl=network.target sound.target [Gwasanaeth] Defnyddiwr=piCyfeiriadurGweithio=/home/pi/assistantStartExec=/usr/bin/python3 /home/pi/assistant/assistant.py Ailgychwyn=bob amser AilgychwynDelwedd=3 [Gosod] WantedBy=multi-user.target
  1. Galluogi:

sudo cp cynorthwyydd.service /etc/systemd/system/ sudo systemctl daemon-reload sudo systemctl galluogi --now cynorthwyydd.service
  1. Cynffonau log:

cynorthwyydd cyfnodolynctl -u -f

Nawr mae'n cychwyn ar gychwyn, yn ailgychwyn ar ddamwain, ac yn gyffredinol mae'n ymddwyn fel teclyn. Ychydig yn ddiflas, llawer gwell.


System Sgiliau: Gwnewch hi'n Ddefnyddiol Gartref 🏠✨

Unwaith y bydd llais i mewn a llais allan yn gadarn, ychwanegwch gamau gweithredu:

  • Llwybrydd bwriad : llwybrau allweddair syml ar gyfer tasgau cyffredin.

  • Cartref clyfar : cyhoeddi digwyddiadau i MQTT neu ffonio pwyntiau terfyn HTTP Cynorthwyydd Cartref.

  • Ategion : swyddogaethau Python cyflym fel set_timer , what_is_the_time , play_radio , run_scene .

Hyd yn oed gydag LLM cwmwl yn y ddolen, llwybrwch orchmynion lleol amlwg yn gyntaf er mwyn cyflymder a dibynadwyedd.


Lleol yn Unig vs Cymorth Cwmwl: Cyfaddawdau y Byddwch Chi'n eu Teimlo 🌓

Lleol yn unig
Manteision: preifat, all-lein, costau rhagweladwy.
Anfanteision: gall modelau trymach fod yn araf ar fyrddau bach. Mae hyfforddiant amlieithog Whisper yn helpu gyda chadernid os ydych chi'n ei gadw ar y ddyfais neu ar weinydd gerllaw. [3]

Cymorth cwmwl
Manteision: rhesymu pwerus, ffenestri cyd-destun mwy.
Anfanteision: mae data'n gadael dyfais, dibyniaeth ar rwydwaith, costau amrywiol.

Mae hybrid yn aml yn ennill: gair deffro + ASR lleol → galw API ar gyfer rhesymu → TTS lleol. [2][3][5]


Datrys Problemau: Gremlins Rhyfedd a Atebion Cyflym 👾

  • Sbardunau ffug geiriau deffro : sensitifrwydd is neu rhowch gynnig ar feicroffon gwahanol. [2]

  • Oedi ASR : defnyddiwch fodel Whisper llai neu adeiladwch whisper.cpp gyda baneri rhyddhau ( -j --config Release ). [4]

  • TTS Anwadal : cyn-gynhyrchu ymadroddion cyffredin; cadarnhau eich dyfais sain a chyfraddau samplu.

  • Ni chanfuwyd meicroffon : gwiriwch arecord -l a'r cymysgwyr.

  • Cyfyngu thermol : defnyddiwch yr Oerydd Gweithredol swyddogol ar Pi 5 ar gyfer perfformiad cynaliadwy. [1]


Nodiadau Diogelwch a Phreifatrwydd y Dylech Chi eu Darllen mewn Gwirionedd 🔒

  • Cadwch eich Pi wedi'i ddiweddaru gydag APT.

  • Os ydych chi'n defnyddio unrhyw API cwmwl, cofnodwch yr hyn rydych chi'n ei anfon ac ystyriwch olygu darnau personol yn lleol yn gyntaf.

  • Rhedeg gwasanaethau gyda'r lleiaf o freintiau; osgoi sudo yn ExecStart oni bai bod angen.

  • Darparwch ddull lleol yn unig ar gyfer gwesteion neu oriau tawel.


Amrywiadau Adeiladu: Cymysgu a Chyfateb Fel Brechdan 🥪

  • Lleol iawn : Porcupine + whisper.cpp + Piper + rheolau syml. Preifat a chadarn. [2][4][5]

  • Cymorth cwmwl cyflym : Porcupine + (Whisper lleol llai neu ASR cwmwl) + TTS lleol + LLM cwmwl.

  • Canolog awtomeiddio cartref : Ychwanegwch lif Node-RED neu Gynorthwyydd Cartref ar gyfer rwtinau, golygfeydd a synwyryddion.


Sgil Enghraifft: Goleuadau Ymlaen drwy MQTT 💡

mewnforio paho.mqtt.client fel mqtt MQTT_HOST = "192.168.1.10" TOPIC = "cartref/ystafell fyw/golau/set" def set_light(state: str): client = mqtt.Client() client.connect(MQTT_HOST, 1883, 60) llwyth tâl = "YMLAEN" os yw state.lower().startswith("ymlaen") fel arall "OFF" client.publish(TOPIC, llwyth tâl, qos=1, retain=False) client.disconnect() # os yw "troi'r goleuadau ymlaen" yn y testun: set_light("ymlaen")

Ychwanegwch linell llais fel: “trowch lamp yr ystafell fyw ymlaen,” a byddwch chi'n teimlo fel dewin.


Pam Mae'r Pentwr Hwn yn Gweithio'n Ymarferol 🧪

  • Mae Porcupine yn effeithlon ac yn gywir wrth ganfod geiriau-deffro ar fyrddau bach, sy'n gwneud gwrando bob amser yn bosibl. [2]

  • Mae hyfforddiant amlieithog, helaeth Whisper yn ei gwneud yn wydn i amgylcheddau ac acenion amrywiol. [3]

  • whisper.cpp yn cadw'r pŵer hwnnw'n ddefnyddiadwy ar ddyfeisiau CPU yn unig fel y Pi [4]

  • Mae Piper yn cadw ymatebion yn gyflym heb anfon sain i TTS cwmwl. [5]


Rhy Hir, Wnes i Ddim Ei Ddarllen

Adeiladu Cynorthwyydd AI modiwlaidd, preifat DIY gyda Raspberry Pi trwy gyfuno Porcupine ar gyfer gair deffro, Whisper (trwy whisper.cpp ) ar gyfer ASR, eich dewis o ymennydd ar gyfer atebion, a Piper ar gyfer TTS lleol. Lapio fel gwasanaeth systemd, tiwnio sain, a gwifrau mewn gweithredoedd MQTT neu HTTP. Mae'n rhatach nag yr ydych chi'n meddwl, ac yn rhyfedd o hyfryd byw gydag ef. [1][2][3][4][5]


Cyfeiriadau

  1. Meddalwedd ac Oeri Raspberry Pi – Gwybodaeth am gynnyrch Delweddydd Raspberry Pi (lawrlwytho a defnyddio) ac Oerydd Gweithredol Pi 5

  2. Gair Deffro Porcupine – SDK a chychwyn cyflym (geiriau allweddol, sensitifrwydd, casgliad lleol)

  3. Whisper (model ASR) – ASR amlieithog, cadarn wedi'i hyfforddi ar ~680k awr

    • Radford et al., Adnabyddiaeth Lleferydd Cadarn drwy Oruchwyliaeth Wan ar Raddfa Fawr (Sibrydiad): darllen mwy

  4. whisper.cpp – Casgliad Whisper sy'n gyfeillgar i'r CPU gyda CLI a chamau adeiladu

  5. Piper TTS – TTS niwral lleol, cyflym gyda lleisiau/ieithoedd lluosog

Dewch o hyd i'r AI Diweddaraf yn y Siop Swyddogol ar gyfer Cynorthwywyr AI

Amdanom Ni


Yn ôl i'r blog