Cara membina Pembantu AI DIY dengan Raspberry Pi

Cara membina Pembantu AI DIY dengan Raspberry Pi

Inginkan pembantu suara kecil yang benar-benar mengikut petunjuk anda, menggunakan perkakasan anda sendiri dan tidak akan memesan dua belas nanas secara tidak sengaja kerana ia tersalah dengar? Pembantu AI DIY dengan Raspberry Pi boleh dicapai, menyeronokkan dan fleksibel. Anda akan menyambungkan perkataan bangun, pengecaman pertuturan (ASR = pengecaman pertuturan automatik), otak untuk bahasa semula jadi (peraturan atau LLM) dan teks ke pertuturan (TTS). Tambahkan beberapa skrip, satu atau dua perkhidmatan dan beberapa tweak audio yang teliti, dan anda mempunyai pembesar suara pintar boleh poket yang mematuhi peraturan anda.

Mari berikan anda daripada sifar kepada bercakap-dengan-Pi anda tanpa menarik rambut biasa. Kami akan merangkumi bahagian, persediaan, kod, perbandingan, gotcha... keseluruhan burrito. 🌯

Artikel yang mungkin anda ingin baca selepas ini:

🔗 Cara belajar AI dengan berkesan
Buat peta jalan kajian, praktikkan projek dan jejak kemajuan.

🔗 Cara memulakan syarikat AI
Sahkan masalah, bina MVP, kumpulkan pasukan, selamatkan pelanggan awal.

🔗 Cara menggunakan AI untuk menjadi lebih produktif
Mengautomasikan tugas rutin, memperkemas aliran kerja dan menambah output kreatif.

🔗 Cara menggabungkan AI ke dalam perniagaan anda
Kenal pasti proses berimpak tinggi, laksanakan perintis, ukur ROI, skala.


Apa yang Menjadikan Pembantu AI DIY yang bagus dengan Raspberry Pi ✅

  • Peribadi secara lalai – simpan audio setempat jika boleh. Anda memutuskan perkara yang meninggalkan peranti.

  • Modular – tukar komponen seperti Lego: wake word engine, ASR, LLM, TTS.

  • Mampu Milik – kebanyakannya sumber terbuka, mikrofon komoditi, pembesar suara dan Pi.

  • Boleh digodam – mahukan automasi rumah, papan pemuka, rutin, kemahiran tersuai? Mudah.

  • Boleh dipercayai – diuruskan perkhidmatan, but dan mula mendengar secara automatik.

  • Seronok – anda akan belajar banyak tentang audio, proses dan reka bentuk dipacu peristiwa.

Petua kecil: Jika anda menggunakan Raspberry Pi 5 dan merancang untuk menjalankan model tempatan yang lebih berat, penyejuk klip-on membantu di bawah beban yang berterusan. (Apabila ragu-ragu, pilih Penyejuk Aktif rasmi yang direka untuk Pi 5.) [1]


Bahagian & Alatan yang Anda Perlukan 🧰

  • Raspberry Pi : Pi 4 atau Pi 5 disyorkan untuk ruang kepala.

  • kad microSD : 32 GB+ disyorkan.

  • Mikrofon USB : mikrofon persidangan USB ringkas adalah hebat.

  • Pembesar suara : Pembesar suara USB atau 3.5 mm, atau TUDUNG amp I2S.

  • Rangkaian : Ethernet atau Wi-Fi.

  • Kecantikan pilihan: sarung, penyejuk aktif untuk Pi 5, butang tekan untuk tekan untuk bercakap, gelang LED. [1]

Persediaan OS & Baseline

  1. Flash Raspberry Pi OS dengan Raspberry Pi Imager. Ini adalah cara yang mudah untuk mendapatkan mikroSD boleh boot dengan pratetap yang anda mahukan. [1]

  2. But, sambung ke rangkaian, kemudian kemas kini pakej:

sudo apt update && sudo apt upgrade -y
  1. Asas audio : Pada OS Raspberry Pi anda boleh menetapkan output lalai, tahap dan peranti melalui UI desktop atau raspi-config . Audio USB dan HDMI disokong merentas model; Output Bluetooth tersedia pada model dengan Bluetooth. [1]

  2. Sahkan peranti:

arecord -l aplay -l

Kemudian uji tangkapan dan main balik. Jika tahap kelihatan pelik, semak pengadun dan lalai sebelum menyalahkan mikrofon.

 

AI raspberi pi

Sekilas Pandang Seni Bina 🗺️

yang waras dengan aliran Raspberry Pi kelihatan seperti ini:

Wake word → tangkapan audio langsung → transkripsi ASR → pengendalian niat atau LLM → teks respons → TTS → main balik audio → tindakan pilihan melalui MQTT atau HTTP.

  • Wake word : Porcupine adalah kecil, tepat dan berjalan secara setempat dengan kawalan sensitiviti setiap kata kunci. [2]

  • ASR : Whisper ialah model ASR berbilang bahasa, tujuan umum yang dilatih pada ~680k jam; ia teguh kepada aksen/bunyi latar belakang. Untuk kegunaan pada peranti, whisper.cpp menyediakan laluan inferens C/C++ yang ramping. [3][4]

  • Otak : Pilihan anda – LLM awan melalui API, enjin peraturan atau inferens tempatan bergantung pada kuasa kuda.

  • TTS : Piper menjana pertuturan semula jadi secara setempat, cukup pantas untuk respons pantas pada perkakasan sederhana. [5]


Jadual Perbandingan Pantas 🔎

Alat Terbaik Untuk Harganya agak mahal Mengapa Ia Berfungsi
Kata Bangun Landak Pencetus yang sentiasa mendengar Peringkat + percuma CPU rendah, tepat, pengikatan mudah [2]
Whisper.cpp ASR tempatan pada Pi Sumber terbuka Ketepatan yang baik, mesra CPU [4]
Cepat-Bisik ASR yang lebih pantas pada CPU/GPU Sumber terbuka CTranslate2 pengoptimuman
Piper TTS Keluaran pertuturan tempatan Sumber terbuka Suara cepat, banyak bahasa [5]
API LLM Awan Penaakulan yang kaya Berasaskan penggunaan Memunggah pengiraan berat
Nod-MERAH Menyusun tindakan Sumber terbuka Aliran visual, mesra MQTT

Binaan Langkah demi Langkah: Gelung Suara Pertama Anda 🧩

Kami akan menggunakan Porcupine untuk kata bangun, Whisper untuk transkripsi, fungsi "otak" ringan untuk balasan (ganti dengan LLM pilihan anda) dan Piper untuk pertuturan. Pastikan ia minimum, kemudian ulangi.

1) Pasang kebergantungan

sudo apt install -y python3-pip portaudio19-dev sox ffmpeg pip3 install sounddevice numpy
  • Porcupine: ambil SDK/bindings untuk bahasa anda dan ikuti permulaan pantas (kunci akses + senarai kata kunci + bingkai audio → .process ). [2]

  • Whisper (mesra CPU): bina whisper.cpp :

git clone 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 -fx your.wav.

Di atas mencerminkan permulaan pantas projek. [4]

Lebih suka Python? faster-whisper (CTranslate2) selalunya lebih tajam daripada vanilla Python pada CPU sederhana.

2) Sediakan Piper TTS

git clone https://github.com/rhasspy/piper cd piper make # Muat turun model suara yang anda suka, cth, en_US-amy echo "Hello." | ./piper --model voices/en/en_US-amy-medium.onnx --output_file hello.wav aplay hello.wav

Piper direka untuk TTS pada peranti dengan berbilang pilihan suara/bahasa. [5]

3) Gelung pembantu minimum dalam Python

Sengaja padat: menunggu frasa bangun (stub), merekod, menyalin dengan whisper.cpp , menjana balasan (tempat letak), kemudian bercakap melalui Piper. Tukar pemegang tempat dengan LLM kegemaran anda atau logik peraturan.

import os, subprocess, wave import sounddevice sebagai 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.WOKKmake=Tdirnxs(work. record_wav(laluan, saat=RECORD_SECONDS): audio = sd.rec(int(saat * SAMPLE_RATE), kadar sampel=SAMPLE_RATE, channels=CHANNELS, dtype='int16') sd.wait() dengan wave.open(path, 'wb') sebagai w: w.setnchannels); 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)", "WORKDIR" . "r", encoding="utf-8") sebagai f: return f.read().strip() def generate_reply(prompt): jika "cuaca" dalam prompt.lower(): return "Saya tidak dapat melihat awan, tetapi ia mungkin baik. Bawa jaket untuk berjaga-jaga." kembalikan "Anda berkata: " + 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-encode("); proc.stdin.close(); proc.wait() subprocess.run(["aplay", f"{WORKDIR}/reply.wav"], check=True) print("Assistant ready. Taip frasa wake to test.") manakala True: typed = input("> ").strip().lower() jika ditaip == fWAKE_WORD = wav}"path = wav}" record_wav(wav_path) text = transcribe(wav_path) reply = generate_reply(text) print("Pengguna:", text); print("Assistant:", reply) speak(reply) else: print("Taip frasa bangun untuk menguji gelung.")

Untuk pengesanan wake-word sebenar, sepadukan pengesan penstriman Porcupine (CPU rendah, kepekaan setiap kata kunci). [2]


Penalaan Audio Yang Sebenarnya Penting 🎚️

Beberapa pembaikan kecil membuatkan pembantu anda berasa 10× lebih bijak:

  • Jarak mikrofon : 30–60 cm ialah tempat yang menarik untuk kebanyakan mikrofon USB.

  • Tahap : elakkan keratan pada input dan pastikan main semula waras; betulkan penghalaan sebelum mengejar hantu kod. Pada OS Raspberry Pi, anda boleh mengurus peranti output dan tahap melalui alatan sistem atau raspi-config . [1]

  • Akustik bilik : dinding keras menyebabkan bergema; tikar lembut di bawah mikrofon membantu.

  • Ambang perkataan bangun : terlalu sensitif → pencetus hantu; terlalu ketat → anda akan menjerit pada plastik. Porcupine membolehkan anda mengubah suai sensitiviti setiap kata kunci. [2]

  • Terma : transkripsi panjang pada Pi 5 mendapat manfaat daripada penyejuk aktif rasmi untuk prestasi yang berterusan. [1]


Pergi Dari Mainan Kepada Perkakas: Perkhidmatan, Autostart, Pemeriksaan Kesihatan 🧯

Manusia lupa untuk menjalankan skrip. Komputer lupa untuk menjadi baik. Tukar gelung anda menjadi perkhidmatan terurus:

  1. Buat unit systemd:

[Unit] Perihalan=Pembantu Suara DIY Selepas=bunyi.sasaran rangkaian.sasaran [Perkhidmatan] Pengguna=pi WorkingDirectory=/home/pi/assistant ExecStart=/usr/bin/python3 /home/pi/assistant/assistant.py Mulakan semula=sentiasa RestartSec=3 [Pasang] WantedBy=multi-user.
  1. Dayakannya:

sudo cp assistant.service /etc/systemd/system/ sudo systemctl daemon-reload sudo systemctl enable --now assistant.service
  1. Ekor log:

journalctl -u pembantu -f

Kini ia bermula semasa but, dimulakan semula apabila ranap, dan secara amnya berkelakuan seperti perkakas. Sedikit membosankan, jauh lebih baik.


Sistem Kemahiran: Jadikan Ia Berguna Di Rumah 🏠✨

Setelah suara masuk dan keluar suara mantap, tambahkan tindakan:

  • Penghala niat : laluan kata kunci mudah untuk tugas biasa.

  • Rumah pintar : terbitkan acara ke MQTT atau hubungi titik akhir HTTP Pembantu Rumah.

  • Pemalam : fungsi Python pantas seperti set_timer , what_is_the_time , play_radio , run_scene .

Walaupun dengan awan LLM dalam gelung, halakan arahan tempatan yang jelas terlebih dahulu untuk kelajuan dan kebolehpercayaan.


Tempatan Sahaja vs Cloud Assist: Pertukaran yang Anda Akan Rasa 🌓

tempatan sahaja
: swasta, luar talian, kos boleh diramal.
Keburukan: model yang lebih berat mungkin perlahan pada papan kecil. Latihan berbilang bahasa Whisper membantu dengan keteguhan jika anda menyimpannya pada peranti atau pada pelayan berdekatan. [3]

bantuan awan
: penaakulan yang kuat, tetingkap konteks yang lebih besar.
Kekurangan: peranti meninggalkan data, pergantungan rangkaian, kos berubah.

Hibrid selalunya menang: wake word + ASR local → panggil API untuk alasan → TTS local. [2][3][5]


Penyelesaian masalah: Gremlin Pelik & Pembetulan Pantas 👾

  • Wake word false triggers : kurangkan sensitiviti atau cuba mikrofon lain. [2]

  • ASR lag : gunakan model Whisper yang lebih kecil atau bina whisper.cpp dengan bendera keluaran ( -j --config Release ). [4]

  • TTS berombak : pra-hasilkan frasa biasa; sahkan peranti audio dan kadar sampel anda.

  • Tiada mikrofon dikesan : semak rekod -l dan pengadun.

  • Pendikit terma : gunakan Penyejuk Aktif rasmi pada Pi 5 untuk prestasi yang berterusan. [1]


Nota Keselamatan & Privasi Yang Perlu Anda Baca Sebenarnya 🔒

  • Pastikan Pi anda dikemas kini dengan APT.

  • Jika anda menggunakan mana-mana API awan, log apa yang anda hantar dan pertimbangkan untuk menyunting bit peribadi secara setempat terlebih dahulu.

  • Jalankan perkhidmatan dengan keistimewaan yang paling sedikit; elakkan sudo dalam ExecStart melainkan diperlukan.

  • Sediakan mod setempat sahaja untuk tetamu atau waktu tenang.


Bina Varian: Campur Dan Padan Seperti Sandwic 🥪

  • Ultra-tempatan : Porcupine + whisper.cpp + Piper + peraturan mudah. Peribadi dan kukuh. [2][4][5]

  • Bantuan awan pantas : Porcupine + (Bisikan tempatan yang lebih kecil atau ASR awan) + TTS tempatan + awan LLM.

  • Pusat automasi rumah : Tambahkan aliran Node-RED atau Home Assistant untuk rutin, adegan dan penderia.


Contoh Kemahiran: Lampu Hidup melalui MQTT 💡

import paho.mqtt.client sebagai mqtt MQTT_HOST = "192.168.1.10" TOPIK = "rumah/ruang tamu/lampu/set" def set_light(negeri: str): client = mqtt.Client() client.connect(MQTT_HOST, 1883, 60) onstarwithlowerOn"). client.publish(TOPIC, payload, qos=1, retain=False) client.disconnect() # jika "hidupkan lampu" dalam teks: set_light("on")

Tambahkan baris suara seperti: "hidupkan lampu ruang tamu," dan anda akan berasa seperti ahli sihir.


Mengapa Tindanan Ini Berfungsi dalam Amalan 🧪

  • Porcupine adalah cekap dan tepat pada pengesanan wake-word pada papan kecil, yang menjadikan sentiasa mendengar boleh dilaksanakan. [2]

  • Latihan Whisper yang besar dan berbilang bahasa menjadikannya mantap untuk pelbagai persekitaran dan aksen. [3]

  • whisper.cpp memastikan kuasa itu boleh digunakan pada peranti CPU sahaja seperti Pi. [4]

  • Piper memastikan respons pantas tanpa menghantar audio ke TTS awan. [5]


Terlalu Panjang, Tidak Membacanya

Bina Pembantu AI DIY modular peribadi dengan Raspberry Pi dengan menggabungkan Porcupine untuk membangunkan perkataan, Whisper (melalui whisper.cpp ) untuk ASR, pilihan otak anda untuk balasan dan Piper untuk TTS tempatan. Bungkusnya sebagai perkhidmatan systemd, tala audio dan wayar dalam tindakan MQTT atau HTTP. Ia lebih murah daripada yang anda fikirkan, dan peliknya menyenangkan untuk didiami. [1][2][3][4][5]


Rujukan

  1. Perisian & Penyejukan Raspberry Pi – Pengimej Raspberry Pi (muat turun & gunakan) dan maklumat produk Pi 5 Active Cooler

  2. Porcupine Wake Word – SDK & permulaan pantas (kata kunci, sensitiviti, inferens setempat)

  3. Whisper (model ASR) – ASR berbilang bahasa, teguh dilatih pada ~680k jam

    • Radford et al., Pengecaman Pertuturan Teguh melalui Pengawasan Lemah Berskala Besar (Bisikan): baca lebih lanjut

  4. whisper.cpp – Inferens Whisper mesra CPU dengan CLI dan langkah binaan

  5. Piper TTS – TTS saraf tempatan yang pantas dengan berbilang suara/bahasa

Cari AI Terkini di Kedai Pembantu AI Rasmi

Tentang Kami


Kembali ke blog