Me pēhea te hanga i tētahi Kaiawhina AI DIY me te Raspberry Pi

Me pēhea te hanga i tētahi Kaiawhina AI DIY me te Raspberry Pi

Kei te hiahia koe i tētahi kaiawhina reo iti e whai ana i tāu ara, e rere ana i runga i ō ake taputapu, ā, e kore e tono pōhēhē i ngā paināporo tekau mā rua nā te mea i he te rongonga i a koe? He mea whakamiharo te taea o tētahi Kaiawhina AI DIY me te Raspberry Pi , he mea ngahau, he mea ngāwari hoki. Ka honoa e koe he kupu whakaoho, he mōhiotanga reo (ASR = mōhiotanga reo aunoa), he roro mō te reo maori (ngā ture, he LLM rānei), me te tuhinga-ki-te-reo (TTS). Tāpirihia ētahi tuhinga, tētahi, e rua rānei ngā ratonga, me ētahi whakarerekētanga oro ātaahua, ā, kua whiwhi koe i tētahi kaikorero atamai ka taea te uru ki roto i te pōke e whai ana i ō ture.

Kia tīmata koe i te kore ki te kōrero ki tō Pi, me te kore e kukume makawe. Ka hipokina e mātou ngā wāhanga, te whakatūnga, te waehere, ngā whakatairite, ngā mea hei hopu... te burrito katoa. 🌯

Ngā tuhinga ka pai pea koe ki te pānui i muri i tēnei:

🔗 Me pēhea te ako whai hua i te AI
Waihangahia he mahere ako, he kaupapa mahi, me te aroturuki i te ahunga whakamua.

🔗 Me pēhea te tīmata i tētahi kamupene AI
Manatokohia te raruraru, hanga MVP, huihuia te tīma, whiwhi i ngā kiritaki tuatahi.

🔗 Me pēhea te whakamahi i te AI kia nui ake ai te hua
Aunoatia ngā mahi o ia rā, whakangāwaritia ngā rerengamahi, me te whakanui ake i te putanga auaha.

🔗 Me pēhea te whakauru i te AI ki roto i tō pakihi
Tāutuhia ngā tukanga pānga nui, whakatinanahia ngā kaupapa whakamātautau, inehia te ROI, tauinehia.


He aha te mea e hanga ana i tētahi Kaiawhina AI DIY pai me te Raspberry Pi ✅

  • Tūmataiti mā te taunoa – kia noho ā-rohe te oro ina taea. Māu e whakatau ko tēhea te mea e puta mai ana i te pūrere.

  • Modular – whakawhiti i ngā wāhanga pēnei i a Lego: wake word engine, ASR, LLM, TTS.

  • He utu whaitake – he pūtake tuwhera te nuinga, he hopuoro taonga, he kaikorero, me te Pi.

  • Ka taea te hack – e hiahia ana koe ki te whakahaere aunoa i te kāinga, ngā papaaho whakahaere, ngā mahi o ia rā, ngā pūkenga ritenga? Ngāwari noa iho.

  • Pono – ka whakahaerehia te ratonga, ka whakaara aunoa, ka tīmata te whakarongo.

  • He ngahau – ka nui ngā mea ka akohia e koe mō te oro, ngā tukanga, me te hoahoa e whakahaerehia ana e ngā huihuinga.

Tohutohu iti: Ki te whakamahi koe i tētahi Raspberry Pi 5, ā, kei te whakaaro koe ki te whakahaere i ngā tauira ā-rohe taumaha ake, ka āwhina tētahi pouaka whakamatao topenga i raro i te kawenga roa. (Mēnā kei te ruarua koe, whiriwhiria te Active Cooler mana i hangaia mō Pi 5.) [1]


Ngā Wāhanga me ngā Utauta e Hiahiatia ana e Koe 🧰

  • Rāhipere Pi : E taunakitia ana te Pi 4, te Pi 5 rānei kia nui te wāhi o te upoko.

  • Kāri microSD : 32 GB+ te rahi e taunakitia ana.

  • Hopuoro USB : he tino pai tētahi hopuoro hui USB noa iho.

  • Kaikōrero : Kaikōrero USB, 3.5 mm rānei, he pōtae whakakaha I2S rānei.

  • Whatunga : Ethernet, Wi-Fi rānei.

  • Ngā mea pai hei whiriwhiri: te pouaka, te pouaka whakamatao hohe mō te Pi 5, te pātene pēhi mō te kōrero-ki-te-pānui, te mowhiti LED. [1]

Pūnaha Whakahaere me te Tatūnga Tūāpapa

  1. Whakakāhia te pūnaha whakahaere Raspberry Pi me te Raspberry Pi Imager. Koinei te huarahi māmā ki te tiki i tētahi microSD ka taea te whakaara me ngā tautuhinga e hiahiatia ana e koe. [1]

  2. Whakaara, hono atu ki te whatunga, kātahi ka whakahou i ngā mōkihi:

sudo apt whakahou me te sudo apt whakahou -y
  1. Ngā kaupapa taketake oro : I runga i te Raspberry Pi OS ka taea e koe te whakarite i te putanga taunoa, ngā taumata, me ngā taputapu mā te atanga kaiwhakamahi papamahi, mā te raspi-config . E tautokona ana te oro USB me te HDMI puta noa i ngā tauira; Kei te wātea te putanga Nihokikorangi i runga i ngā tauira me te Nihokikorangi. [1]

  2. Manatokohia ngā taputapu:

arecord -l aplay -l

Kātahi ka whakamātauria te hopu me te purei anō. Ki te mea he rerekē ngā taumata oro, tirohia ngā mīhini whakaranu me ngā tautuhinga taunoa i mua i te whakapae i te hopuoro.

 

Pai rāhipere AI

He Tirohanga Poto ki te Hanga Whare 🗺️

Koinei te āhua o tētahi Kaiawhina AI DIY whai hua me te rere o te Raspberry Pi

Whakaara kupu → hopu oro ora → tuhi ASR → whakahaere hiahia, LLM rānei → tuhinga whakautu → TTS → purei oro → mahi kōwhiringa mā MQTT, HTTP rānei.

  • Kupu Whakaara : He iti te Porcupine, he tika, ā, ka rere ā-rohe me te mana whakahaere aro o ia kupumatua. [2]

  • ASR : He tauira ASR maha-reo a Whisper, he whānui te whakamahinga, kua whakangungua mō ngā haora ~680k; he pakari ki ngā whakanui/haruru papamuri. Mō te whakamahinga i runga i te taputapu, te whisper.cpp he ara whakatau C/C++ kikokore. [3][4]

  • Roro : Tāu whiringa – he LLM kapua mā te API, he miihini ture, he whakatau ā-rohe rānei i runga i te hōiho.

  • TTS : Ka whakaputa a Piper i te reo ā-rohe, he tere rawa mō ngā urupare tere i runga i ngā taputapu iti. [5]


Ripanga Whakataurite Tere 🔎

Utauta Pai rawa atu mō Te utu pea He aha i mahi ai
Kupu Whakaara o te Pōkāpine Pūwhakaoho whakarongo tonu Taumata kore utu + He iti te CPU, he tika, he ngāwari te here [2]
Whisper.cpp ASR ā-Rohe i runga i te Pi Pūtake tuwhera He tika te mahi, he pai mō te CPU [4]
Tere-Whisper ASR tere ake i runga i te CPU/GPU Pūtake tuwhera Ngā arotautanga CTranslate2
Piper TTS Putanga kōrero ā-rohe Pūtake tuwhera Ngā reo tere, ngā reo maha [5]
API LLM Kapua Whakaaro whai rawa I runga i te whakamahinga Tangohia te rorohiko taumaha
Pūnga-WHERO Te whakarite i ngā mahi Pūtake tuwhera Ngā rerenga tirohanga, he pai mō te MQTT

Hanganga-ā-Taumata-i-te-Taumata: Tō Porowhita Reo Tuatahi 🧩

Ka whakamahia e mātou a Porcupine mō te kupu whakaoho, a Whisper mō te tuhi, he mahi "roro" māmā mō te whakautu (whakakapia ki tāu LLM whiriwhiri), me a Piper mō te kōrero. Kia iti noa iho, kātahi ka mahi anō.

1) Ngā whakawhirinakitanga tāuta

sudo apt tāuta -y python3-pip portaudio19-dev sox ffmpeg pip3 tāuta pūrere oro numpy
  • Porcupine: hopukia te SDK/bindings mō tō reo, ā, whai i te tīmatanga tere (kī urunga + rārangi kupumatua + anga oro → .process ). [2]

  • Whisper (hoa ki te PTM): hanga whisper.cpp :

tāruatia te git https://github.com/ggml-org/whisper.cpp cd whisper.cpp me te cmake -B hanga me te cmake --hanga hanga -j ./models/download-ggml-model.sh base.en ./build/bin/whisper-cli -m ./models/ggml-base.en.bin -f your.wav -otxt

E whakaata ana tēnei i te tīmatanga tere o te kaupapa. [4]

He pai ake ki a koe a Python? i te faster-whisper (CTranlate2) i te vanilla Python i runga i ngā CPU iti noa iho.

2) Whakatūria te Piper TTS

git clone https://github.com/rhasspy/piper cd piper make # Tikiake i tētahi tauira reo e pai ana ki a koe, hei tauira, en_US-amy echo "Kia ora." | ./piper --model voices/en/en_US-amy-medium.onnx --output_file hello.wav aplay hello.wav

Kua hangaia a Piper mō ngā TTS i runga i te taputapu me ngā kōwhiringa reo/reo maha. [5]

3) He porowhita āwhina iti rawa i roto i te Python

Whakawhāitihia āta: tatari mō tētahi rerenga kōrero whakaara (stub), tuhi, tuhi ki te whisper.cpp , whakaputa whakautu (placeholder), kātahi ka kōrero mā Piper. Whakawhitihia te placeholder ki tō LLM tino pai, ki tō ture arorau rānei.

kawemai os, tukanga iti, ngaru kawemai sounddevice hei sd WAKE_WORD = "hey computer" # whakawhiti mō Porcupine i roto i te hanga [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(path, seconds=RECORD_SECONDS): ororongo = sd.rec(int(hēkona * TAUIRA_ARAU), tauira_arau=TAUIRA_ARAU, ngā hongere=NGĀ HONGERE, dtype='int16') sd.wait() me te wave.open(ara, 'wb') hei w: w.setnchannels(NGĀ HONGERE); 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 "Kāore e taea e au te kite i ngā kapua, engari tera pea he pai. Mauria mai he koti hei ārai." whakahoki "I mea koe: " + 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("Kua rite te Kaiawhina. Patohia te kīanga whakaoho hei whakamātautau.") i te mea he Pono: 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("Kaiwhakamahi:", text); tā("Kaiawhina:", whakautu) kōrero(whakautu) ērā atu: tā("Patohia te kīanga whakaoho hei whakamātautau i te porowhita.")

Mō te kimi kupu whakaoho tūturu, whakauruhia te pūoko rerema a Porcupine (he iti te CPU, he aro ki ia kupumatua). [2]


Te Whakatikatika Oro e Tino Hiranga ana 🎚️

Mā ētahi whakatikatika iti nei ka nui ake te atamai o tō kaiawhina:

  • Te tawhiti hopuoro : He pai te 30–60 cm mō te nuinga o ngā hopuoro USB.

  • Ngā Taumata : karohia te tapahi i te whakaurunga, kia mau tonu te purei; whakatikahia te ara i mua i te whai i ngā kehua waehere. I runga i te Raspberry Pi OS, ka taea e koe te whakahaere i te taputapu putanga me ngā taumata mā roto i ngā taputapu pūnaha, i te raspi-config . [1]

  • Te oro o te rūma : ka puta ngā haruru i roto i ngā pakitara mārō; he āwhina nui te whāriki ngohengohe i raro i te hopuoro.

  • Paepae kupu whakaoho : tairongo rawa → ngā whakaoho wairua; tino kaha rawa → ka hamama koe ki te kirihou. Mā te Porcupine ka taea e koe te whakarerekē i te tairongo mō ia kupumatua. [2]

  • Ngā Werawera : ka whai hua ngā tuhinga roa i runga i te Pi 5 mai i te pouaka whakamatao hohe mana mō te mahi pumau. [1]


Te Huri Mai i te Taonga Tākaro ki te Taputapu: Ngā Ratonga, Te Tīmata Aunoa, Ngā Tirotiro Hauora 🧯

Ka wareware te tangata ki te whakahaere i ngā tuhinga. Ka wareware ngā rorohiko ki te atawhai. Hurihia tō porowhita hei ratonga whakahaere:

  1. Waihangahia he waeine pūnaha:

[Wāhanga] Whakaahuatanga=Kaiawhina Reo DIY I muri=network.target sound.target [Ratonga] Kaiwhakamahi=pi WorkingDirectory=/home/pi/assistant ExecStart=/usr/bin/python3 /home/pi/assistant/assistant.py Tīmata anō=always Tīmata anōSec=3 [Tāuta] WantedBy=multi-user.target
  1. Whakahohehia:

sudo cp assistant.service /etc/systemd/system/ sudo systemctl daemon-reload sudo systemctl whakahohe --ināianei assistant.service
  1. Ngā hiku poro rākau:

journalctl -u kaiawhina -f

Inaianei ka tīmata i te whakaara anō, ka tīmata anō i te tukinga, ā, he rite tonu ki tētahi taputapu. He ahua hoha, he tino pai ake.


Pūnaha Pūkenga: Whakamahia kia Tino Whai Hua ki te Kāinga 🏠✨

Kia pakari te reo-whakauru me te reo-whakaputa, tāpirihia ngā mahi:

  • Pouara whāinga : ngā ara kupumatua māmā mō ngā mahi noa.

  • Kāinga atamai : whakaputaina ngā kaupapa ki te MQTT, waea atu rānei ki ngā pito mutunga HTTP a te Kaiawhina Kāinga.

  • Ngā Monomai : ngā mahi tere a Python pēnei i te set_timer , what_is_the_time , play_radio , run_scene .

Ahakoa kei te whakahaerehia he LLM kapua, tukuna ngā whakahau ā-rohe mārama i te tuatahi kia tere ai, kia pono ai hoki.


Āwhina ā-Rohe Anake me te Āwhina Kapua: Ngā Taurite ka Pā ki a Koe 🌓

-rohe anake
Ngā Painga: tūmataiti, tuimotu, utu matapae.
Ngā Huakore: ka puhoi pea ngā tauira taumaha i runga i ngā papa iti. Ka āwhina te whakangungu reo maha a Whisper ki te pakari mena ka puritia e koe i runga i te taputapu, i runga rānei i tētahi tūmau tata. [3]

Āwhina kapua
Painga: whakaaro kaha, matapihi horopaki nui ake.
Huakore: raraunga ka wehe atu i te taputapu, whakawhirinakitanga whatunga, utu rerekē.

He maha ngā wā ka toa te ranunga: te kupu whakaoho + te ASR local → te karanga i tētahi API mō te whakaaro → te TTS local. [2][3][5]


Te Whakatau Rapanga: Ngā Gremlin Tauhou me ngā Whakatikanga Tere 👾

  • Ngā whakaoho kupu teka oho : he iti ake te aro, whakamātauria rānei he hopuoro rerekē. [2]

  • Te whakaroa ASR : whakamahia he tauira Whisper iti ake, hangaia rānei he whisper.cpp me ngā haki tuku ( -j --config Release ). [4]

  • TTS Kōpikopiko : whakaputa-mua i ngā kīanga noa; whakaū i tō taputapu oro me ngā tere tauira.

  • Kāore i kitea he hopuoro : tirohia te arecord -l me ngā mīhini whakaranu.

  • Te whakawhāiti wera : whakamahia te Active Cooler mana i runga i te Pi 5 mō te mahi pumau. [1]


Ngā Tuhipoka Haumarutanga me te Tūmataitinga me Pānui e Koe 🔒

  • Kia mau tonu te whakahōutanga o tō Pi ki te APT.

  • Ki te whakamahi koe i tētahi API kapua, tuhia ngā mea e tukuna ana e koe, ā, whakaarohia te tango i ngā moka whaiaro ā-rohe i te tuatahi.

  • Whakahaerehia ngā ratonga me te mana iti rawa; karohia te sudo i roto i te ExecStart ki te kore e hiahiatia.

  • Whakaratohia he aratau ā-rohe anake mō ngā manuhiri, he wā marino rānei.


Ngā momo hanga: Whakaranua, Whakaōritea Pēnei i te Hanawiti 🥪

  • Tino ā-rohe : Porcupine + whisper.cpp + Piper + ngā ture māmā. Tūmataiti, pakari hoki. [2][4][5]

  • Āwhina kapua tere : Porcupine + (Whisper ā-rohe iti ake, kapua ASR rānei) + TTS ā-rohe + kapua LLM.

  • Pūnaha aunoatanga kāinga : Tāpirihia ngā rerenga Node-RED, Home Assistant rānei mō ngā mahinga, ngā whakaaturanga, me ngā pūoko.


Tauira Pūkenga: Ngā Rama e Kā ana mā te MQTT 💡

kawemai paho.mqtt.client hei mqtt MQTT_HOST = "192.168.1.10" KAUPAPA = "kāinga/rūma noho/rama/tautuhinga" def set_light(āhua: str): kiritaki = mqtt.Client() kiritaki.hono(MQTT_HOST, 1883, 60) kawenga = "Ā" mēnā state.lower().startswith("ā") ki te kore "ĀWHINA" kiritaki.whakaputa(KAUPAPA, kawenga, qos=1, pupuri=Hē) kiritaki.momotu() # mēnā "whakakāhia ngā rama" i roto i te tuhinga: set_light("ā")

Tāpirihia he kupu pēnei i te: "whakakāhia te rama o te rūma noho," ā, ka rite koe ki tētahi ruānuku.


He aha i Mahi ai tēnei Puranga i roto i te Mahi 🧪

  • He pai, he tika hoki te kimi kupu whakaoho a Porcupine i runga i ngā papa iti, ā, ka taea ai te whakarongo tonu. [2]

  • Nā te whakangungu maha-reo a Whisper, ka pakari ki ngā taiao me ngā reo rerekē. [3]

  • Mā te whisper.cpp ka taea tonu te whakamahi i taua mana i runga i ngā taputapu CPU anake pērā i te Pi. [4]

  • Ka tere tonu ngā whakautu a Piper, engari kāore e tukuna he oro ki te TTS kapua. [5]


Roa rawa, kāore i pānuihia

Kaiawhina AI DIY motuhake, motuhake hoki mā te whakakotahi i a Porcupine mō te kupu whakaoho, a Whisper (mā te whisper.cpp ) mō te ASR, tō whiringa roro mō ngā whakautu, me Piper mō te TTS ā-rohe. Tākaihia hei ratonga pūnaha, whakahāngai oro, ka waea atu ki ngā mahi MQTT, HTTP rānei. He iti ake te utu i tō whakaaro, ā, he mea whakamīharo te noho tahi me ia. [1][2][3][4][5]


Ngā Tohutoro

  1. Pūmanawa me te Whakamatao o te Raspberry Pi – Raspberry Pi Imager (tikiake me te whakamahi) me ngā mōhiohio hua o te Pi 5 Active Cooler

  2. Kupu Whakaara Porcupine – SDK me te tīmatanga tere (kupumatua, aro, whakatau ā-rohe)

  3. Whisper (tauira ASR) – He ASR pakari, maha-reo, kua whakangungua mō ngā haora ~680k

    • Radford et al., Te Mōhio Kōrero Pakari mā te Tirotiro Ngoikore Nui (Whisper): pānuihia atu

  4. whisper.cpp – Te whakatau Whisper e pai ana ki te CPU me te CLI me ngā taahiraa hanga

  5. Piper TTS – TTS io tere, ā-rohe me ngā reo/reo maha

Kimihia te AI Hou i te Toa Kaiāwhina AI Whaimana

Mō Mātou


Hoki ki te rangitaki