Faʻafefea ona fausia se DIY AI Fesoasoani ma Raspberry Pi

Faʻafefea ona fausia se DIY AI Fesoasoani ma Raspberry Pi

E te mana'o i se tama'i fesoasoani leo e mulimuli moni i lau ta'ita'i, e tamo'e i au lava meafaigaluega, ma e le fa'afuase'i ona oka fa'anapi se sefululua ona ua sese le fa'alogo ia te oe? O se DIY AI Fesoasoani ma Raspberry Pi e ofo tele ona ausia, malie, ma fetuutuunai. E te viliina se upu fafagu, faailoa tautala (ASR = otometi le faailoaina o le tautala), se faiʻai mo le gagana masani (tulafono poʻo se LLM), ma le text-to-speech (TTS). Fa'aopoopo ni nai fa'amatalaga, tasi pe lua au'aunaga, ma ni tweak fa'alogo fa'aeteete, ma o lo'o iai sau sipika atamai e mafai ona taga'i e usita'ia au tulafono.

Se'i ave oe mai le zero i le talanoa-i-lou-Pi e aunoa ma le tosoina o lauulu masani. O le a matou ufiufi vaega, seti, code, faʻatusatusaga, gotchas ... le burrito atoa. 🌯

Tala atonu e te mana'o e faitau pe a mae'a lenei:

🔗 Faʻafefea ona suʻesuʻe lelei AI
Fausia se fa'afanua auala su'esu'e, fa'ata'ita'i galuega, ma siaki le alualu i luma.

🔗 Auala e amata ai se kamupani AI
Faʻamaonia faʻafitauli, fausia le MVP, faʻapipiʻi 'au, faʻamautu muamua tagata faʻatau.

🔗 Faʻafefea ona faʻaoga AI e sili atu ona aoga
Fa'autometi galuega masani, fa'amoma'i fa'agasolo galuega, ma fa'aopoopo galuega fa'atino.

🔗 Faʻafefea ona tuʻufaʻatasia AI i lau pisinisi
Fa'ailoa faiga fa'aa'afia maualuga, fa'atino pailate, fua ROI, fua.


O le a le mea e fai ai se Fesoasoani AI AI lelei ile Raspberry Pi ✅

  • Fa'alilolilo - fa'amaumau leo ​​fa'apitonu'u pe a mafai. E te filifili po o le a le mea e alu ese mai le masini.

  • Modular - sui vaega e pei o Lego: fafagu upu afi, ASR, LLM, TTS.

  • Fa'ataugofie - tele matala tatala, mics oloa, failauga, ma se Pi.

  • Hackable - manaʻo ile masini fale, dashboards, masani, tomai masani? Faigofie.

  • Fa'atuatuaina - fa'atonu-au'aunaga, seevae ma amata fa'alogo otometi.

  • Fiafia – e tele mea e te a'oa'oina e uiga i leo, fa'agasologa, ma fa'ata'ita'iga fa'atupu.

Fautuaga laiti: Afai e te faʻaaogaina le Raspberry Pi 5 ma fuafua e faʻataʻitaʻiina ni faʻataʻitaʻiga sili atu le mamafa o le lotoifale, e fesoasoani le faʻapipiʻi kilipa i lalo o le avega tumau. (A masalosalo, filifili le Active Cooler ua fuafuaina mo Pi 5.) [1]


Vaega ma Meafaigaluega E te Manaomia 🧰

  • Rasipi Pi : Pi 4 poʻo Pi 5 fautuaina mo le potu ulu.

  • microSD card : 32 GB + fautuaina.

  • USB masini faaleotele leo : o se USB conference mic faigofie e lelei tele.

  • Fofoga Fetalai : USB po'o le 3.5 mm leo, po'o se I2S amp HAT.

  • Fesootaiga : Ethernet poʻo le Wi-Fi.

  • O mea manaia e filifili ai: pusa, fa'amalo malosi mo Pi 5, fa'amau fa'amau mo le tulei-i-talu, mama LED. [1]

OS & Fa'atonu Fa'avae

  1. Flash Raspberry Pi OS ma Raspberry Pi Imager. O le auala tuusaʻo e maua ai se microSD faʻapipiʻi faʻatasi ma faʻasologa e te manaʻo ai. [1]

  2. Boot, fa'afeso'ota'i i feso'otaiga, ona fa'afouina lea o afifi:

sudo apt update && sudo apt upgrade -y
  1. Fa'avae leo : I luga ole Raspberry Pi OS e mafai ona e setiina le mea e le mafai ona fai, tulaga, ma masini e ala i le komepiuta UI poʻo le raspi-config . USB ma HDMI leo e lagolagoina i faʻataʻitaʻiga; O lo'o maua galuega fa'akomepiuta i fa'ata'ita'iga ma le Bluetooth. [1]

  2. Fa'amaonia masini:

arecord -l aplay -l

Ona su'e lea o le pu'e ma toe ta'alo. Afai e ese le maualuga, siaki mea fa'afefiloi ma fa'aletonu a'o le'i tu'ua'ia le leo.


O le Fa'ata'ita'iga ile Va'aiga 🗺️

fesoasoani DIY AI faʻapitoa e foliga faʻapea:

Fafagu le upu → ola pu'e leo → ASR transcription → fa'atonuga fa'amoemoe po'o LLM → tali tali → TTS → toe fa'alogo leo → fai filifiliga e ala i le MQTT po'o le HTTP.

  • Fafagu upu : Porcupine e la'ititi, sa'o, ma e tamo'e fa'apitonu'u fa'atasi ma le fa'atonutonuina o le maaleale o upu autu. [2]

  • ASR : O le musumusu o se fa'ata'ita'iga ASR e tele gagana, fa'amoemoe lautele ua a'oa'oina i le ~680k itula; e malosi i le leo/leo i tua. Mo le fa'aoga i luga ole masini, ole whisper.cpp e maua ai se ala fa'a'i'o ole C/C++. [3][4]

  • Fai'ai : O lau filifiliga - o se ao LLM e ala i le API, se afi tulafono, po'o se fa'alotoifale fa'atatau ile malosi o solofanua.

  • TTS : Piper e fa'atupu le tautala fa'alenatura i le lotoifale, vave mo tali fa'anatinati i masini fa'apitoa. [5]


Fuafuaga Fa'atusa vave 🔎

Meafaigaluega Sili Mo Tau-ish Aisea e aoga ai
Upu Fafagu Porcupine Fa'aoso fa'alogo i taimi uma Tulaga fua + E maualalo le PPU, sa'o, faigofie ona fusifusia [2]
Whisper.cpp ASR i le lotoifale i Pi Punavai tatala Lelei saʻo, faʻafeiloaʻi CPU [4]
Vave-Musumusu ASR vave ile PPU/GPU Punavai tatala CTranslate2 fa'atonuga
Piper TTS Tulaga tautala fa'apitonu'u Punavai tatala Leo vave, tele gagana [5]
Ao LLM API Mauoa o mafaufauga Fa'aoga fa'atatau Aveese le fa'afuainumera mamafa
Node-MULAU Fa'atonuga Punavai tatala Va'aiga tafe, MQTT faauo

Fausia Laasaga-ma-Laasaga: Lau Uluai Siufofoga Loop 🧩

Matou te fa'aogaina le Porcupine mo le upu fafagu, Whisper mo le fa'aliliuga, o se galuega mama "fai'ai" mo le tali (sui i lau LLM o le filifiliga), ma Piper mo le tautala. Taofi ia laititi, ona toe fai lea.

1) Fa'apipi'i fa'alagolago

sudo apt faʻapipiʻi -y python3-pip portaudio19-dev sox ffmpeg pip3 faʻapipiʻi leo leo numpy
  • Porcupine: pu'e le SDK/bindings mo lau gagana ma mulimuli i le amataga vave (key access + keyword list + audio frames → .process ). [2]

  • Musumusu (CPU-friendly): fausia whisper.cpp :

git clone https://github.com/ggml-org/whisper.cpp cd whisper.cpp && cmake -B fausia && cmake --build build -j ./models/download-ggml-model.sh base.en ./build/bin/whisper-cli -m ./models/ggml-base.en.bin -o lau.wav.

O mea o lo'o i luga o lo'o fa'aalia ai le vave amata o le poloketi. [4]

Mana'omia le Python? vave-musumusu (CTranslate2) e masani ona sili atu nai lo le vanilla Python i PPU tauagafau.

2) Seti Piper TTS

git clone https://github.com/rhasspy/piper cd piper fai # La'u mai se fa'ata'ita'iga leo e te mana'o ai, fa'ata'ita'iga, en_US-amy echo "Talofa i ai." | ./piper --model voices/en/en_US-amy-medium.onnx --output_file hello.wav aplay hello.wav

Piper ua mamanuina mo TTS i luga ole masini ma le tele o filifiliga leo/gagana. [5]

3) Se laʻititi fesoasoani fesoasoani ile Python

Fa'atasi ma le loto i ai: fa'atali mo se fuaitau fafagu (stub), fa'amaumauga, fa'aliliu ma le whisper.cpp , fa'atupuina se tali (placeholder), ona tautala lea e ala i Piper. Fa'afesuia'i le mea e tu'u i ai ma lau LLM e sili ona e fiafia i ai po'o le tulafono fa'atatau.

import os, subprocess, wave import sounddevice as sd WAKE_WORD = "hey computer" # swap for Porcupine in production [2] RECORD_SECONDS = 6 SAMPLE_RATE = 16000 CHANNELS = 1 WORKDIR = "/home/pi/assistant" ASR_BIN/whi = "/home/whisper" [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.onnxs" os. record_wav(ala, sekone = RECORD_SECONDS): leo = sd.rec(int(sekona * SAMPLE_RATE), samplerate = SAMPLE_RATE, alalaupapa = CHANNELS, dtype = 'int16') sd.wait() with wave.open(path, 'wb') as w: w.setnchannels); w.setsampwidth(2); w.setframerate(SAMPLE_RATE) w.writeframes(audio.tobytes()) def transcribe(auala): cmd = [ASR_BIN, "-m", ASR_MODEL, "-f", ala, "-otxt"] subprocess.run(cmd, check=True, cwd=WORKDIR)", "WORKDIR" . "r", encoding = "utf-8") e pei o f: toe foʻi f.read().strip() def generate_reply(prompt): afai "weather" i prompt.lower(): toe foʻi "E le mafai ona ou vaʻai i ao, ae atonu e lelei. Aumai se peleue naʻo le tulaga." toe faafoi "Na e fai mai:" + vave def tautala (tusitusiga): proc = subprocess.Popen([PIPER_BIN, "--model", PIPER_VOICE, "--output_file", f"{WORKDIR}/reply.wav"], stdin = subprocess.PIPE) proc.stdin.write(text.encode("); proc.stdin.close(); proc.wait() subprocess.run(["aplay", f"{WORKDIR}/reply.wav"], check=True) print("Fesoasoani sauni. Ta'i le fasifuaitau fafagu e su'e.") a'o Moni: typed = input("> ").strip().lower() pe a lolomi == fWAKE_WORD = wav}_WORKDIR: wav}_WORK record_wav(wav_path) text = transcribe(wav_path) tali = generate_reply(text) print("User:", text); print("Fesoasoani:", tali) tautala(tali) isi: lolomi("Tapa le fuaitau fafagu e su'e ai le matasele.")

Mo le su'esu'eina moni o upu fafagu, fa'apipi'i le mea e iloa ai le tafe a le Porcupine (maualalo le PPU, ma'ale'ale i upu autu). [2]


Fa'alogo leo e Taua Moni 🎚️

O nai fa'atonuga laiti e lagona ai e lau fesoasoani le 10x sili atu le atamai:

  • Mamao maile : 30–60 cm ose nofoaga manaia mo le tele o musika USB.

  • Tulaga : aloese mai le tipiina o mea e fai ma fa'amanino le ta'aloga; fa'alelei le ta'avale a'o le'i tuliloaina aitu code. I luga ole Raspberry Pi OS, e mafai ona e pulea masini faʻapipiʻi ma tulaga e ala i meafaigaluega faʻaoga poʻo raspi-config . [1]

  • Fa'alogo a le potu : o puipui malo e mafua ai siuleo; fesoasoani se fala vaivai i lalo o le leo.

  • Fafagu upu paepae : maaleale tele → fa'aoso aitu; fa'asaa tele → e te 'e'e i le palasitika. Porcupine e fa'atagaina oe e fa'avasega le lagona i upu autu. [2]

  • Thermals : o tusitusiga uumi i luga o le Pi 5 e aoga mai le faʻamalo faʻamalo aloaia mo le faʻatinoina tumau. [1]


Alu Mai Mea Ta'alo I Mea Ta'avale: Au'aunaga, Autostart, Healthchecks 🧯

Ua galo i tagata ona fa'agasolo tusitusiga. Ua galo i komepiuta le manaia. Su'e lau matasele i se auaunaga pulea:

  1. Fausia se systemd unit:

[Iunite] Fa'amatalaga=DIY Fesoasoani leo Ina ua uma=network.target sound.target [Au'aunaga] Tagata fa'aoga=pi WorkingDirectory=/home/pi/fesoasoani ExecStart=/usr/bin/python3 /home/pi/assistant/assistant.py Toe amata=toe amataSec=3 [Install] WantedBy=multi-user.
  1. Fa'aagaaga:

sudo cp assistant.service /etc/systemd/system/ sudo systemctl daemon-reload sudo systemctl enable --now assistant.service
  1. Si'usi'u ogalaau:

journalctl -u fesoasoani -f

O lea e amata i luga o le seevae, toe amata pe a pa'u, ma e masani ona amio e pei o se masini. O sina le manaia, sili atu.


Tomai Faiga: Fa'aoga moni i le fale 🏠✨

A mae'a loa le leo i totonu ma le leo i fafo, fa'aopoopo taga:

  • Intent router : auala faigofie upu autu mo galuega masani.

  • Fale atamai : lolomi mea tutupu ile MQTT pe vala'au ile pito pito ole HTTP Fesoasoani ile Fale.

  • Fa'apipi'i : fa'atino vave Python pei o seti_timer , what_is_the_time , play_radio , run_scene .

E tusa lava pe iai se ao LLM i totonu o le matasele, ala muamua i tulafono faʻapitonuʻu mo le saoasaoa ma le faʻamaoni.


Local Local vs Cloud Assist: Fefa'ataua'iga E te Lagonaina 🌓

na'o Tulaga lelei
: tuma'oti, tuusa'o, tau va'ai.
Le lelei: faʻataʻitaʻiga mamafa atonu e tuai i luga o laupapa laiti. Ole a'oa'oga gagana a le Whisper e fesoasoani ile malosi pe afai e te fa'atumauina i luga ole masini po'o luga ole server lata ane. [3]

Fesoasoani ile ao
Fa'apitoa: fa'atonuga mamana, fa'amalama talatala tetele.
Le lelei: fa'amaumauga tu'u mai masini, fa'alagolago i feso'otaiga, tau fesuia'i.

E masani ona manumalo se hybrid: fafagu upu + ASR i le lotoifale → valaau se API mo mafaufauga → TTS i le lotoifale. [2][3][5]


Fa'afitauli: Gremlins Ese & Fa'atonu vave 👾

  • Fafagu upu fa'aoso fa'aoso : fa'aitiitia lagona ma'ale'ale pe taumafai se isi leo. [2]

  • ASR lag : fa'aaoga se fa'ata'ita'iga la'ititi Whisper pe fau le whisper.cpp fa'atasi ai ma fu'a fa'asa'oloto ( -j --config Release ). [4]

  • Choppy TTS : mua'i fa'atupu fuaitau masani; fa'amaonia lau masini fa'alogo ma fua fa'ata'ita'i.

  • Leai se leo na iloa : siaki le faamaumauga -l ma mea fa'afefiloi.

  • Fa'amama vevela : fa'aoga le Active Cooler ile Pi 5 mo le fa'atinoina o galuega. [1]


Saogalemu ma Fa'amatalaga Fa'alilolilo e Tatau Ona E Faitau Moni 🔒

  • Fa'afou lau Pi ile APT.

  • Afai e te fa'aogaina so'o se API ao, fa'amau mea e te lafo ma mafaufau e toe fa'asolo muamua fa'amatalaga patino i le lotoifale.

  • Fa'atino 'au'aunaga e itiiti se fa'amanuiaga; aloese mai le sudo i le ExecStart sei vagana ua manaʻomia.

  • Tuuina atu se faiga fa'alotoifale mo malo po'o itula filemu.


Fausia Varies: Faafefiloi ma Faafetaui Pei o se Sandwich 🥪

  • Ultra-local : Porcupine + whisper.cpp + Piper + tulafono faigofie. Tumaoti ma malosi. [2][4][5]

  • Fesoasoani i le ao vave : Porcupine + (Musumusu i le lotoifale laʻititi poʻo le ao ASR) + TTS faʻapitonuʻu + ao LLM.

  • Fa'atotonugalemu ile fale : Fa'aopoopo le Node-RED po'o le Fesoasoani ile Fale mo faiga masani, vaaiga, ma masini.


Fa'ata'ita'iga Tomai: Moli e ala i le MQTT 💡

import paho.mqtt.client as mqtt MQTT_HOST = "192.168.1.10" AUTU = "fale / potu malolo / moli / seti" def set_light(state: str): client = mqtt.Client() client.connect(MQTT_HOST, 1883, 60) statewithslowerO(ON"). client.publish(TOPIC, payload, qos=1, retain=Sese) client.disconnect() # pe a "ki moli" i tusitusiga: set_light("on")

Faaopoopo se laina leo e pei o le: “ki le moli o le potu malolo,” ma o le a e lagona ai o oe o se taulaitu.


Aisea e galue ai lenei faaputuga i le fa'ata'ita'iga 🧪

  • O le Porcupine e lelei ma sa'o i le su'eina o upu i luga o laupapa laiti, lea e mafai ai ona fa'alogo i taimi uma. [2]

  • Ole a'oa'oga tele a le Whisper e mafai ona fa'aolaola ile si'osi'omaga ma si'osi'omaga eseese. [3]

  • whisper.cpp o lo'o fa'atumauina lena mana e fa'aaogaina i masini na'o le CPU e pei o le Pi. [4]

  • Piper e fa'amanino tali e aunoa ma le lafoina o leo i se ao TTS. [5]


Ua Umi, E Le'i Faitauina

Fausia se faʻapitoa DIY AI Fesoasoani faʻapitoa ma Raspberry Pi e ala i le tuʻufaʻatasia o Porcupine mo upu fafagu, Musumusu (e ala i le whisper.cpp ) mo ASR, lau filifiliga ole faiʻai mo tali, ma Piper mo TTS i le lotoifale. Afifi e avea o se auaunaga systemd, fa'alogo leo, ma uaea ile MQTT po'o le HTTP gaioiga. E taugofie nai lo le mea e te mafaufau i ai, ma e ese le manaia e nonofo ai. [1][2][3][4][5]


Fa'asinomaga

  1. Raspberry Pi Software & Cooling – Raspberry Pi Imager (download & fa'aoga) ma le Pi 5 Active Cooler fa'amatalaga o oloa

  2. Porcupine Wake Word - SDK & vave amata (fa'aupuga, ma'ale'ale, fa'alotoifale)

  3. Musumusu (ASR faʻataʻitaʻiga) - Tele gagana, malosi ASR aʻoaʻoina i le ~ 680k itula

    • Radford et al., Malosi o le Fa'ailoaina o Tautala e ala i le Va'aiga Va'ai Va'ai Tele (Musumusu): faitau atili

  4. whisper.cpp - CPU-friendly Whisper inference ma CLI ma fausia laasaga

  5. Piper TTS - Anapogi, TTS neural fa'apitonu'u ma le tele o leo / gagana

Su'e le AI Fou i le Faleoloa Fesoasoani Lagolago AI

Faatatau ia tatou


Toe fo'i ile blog