Искате малък гласов асистент, който действително следва вашите указания, работи на вашия собствен хардуер и няма случайно да поръча дванадесет ананаса, защото ви е чул погрешно? „ Направи си сам“ AI асистент с Raspberry Pi е изненадващо постижим, забавен и гъвкав. Ще свържете дума за събуждане, разпознаване на реч (ASR = автоматично разпознаване на реч), мозък за естествен език (правила или LLM) и преобразуване на текст в реч (TTS). Добавете няколко скрипта, една или две услуги и някои внимателни аудио настройки и ще имате джобен интелигентен високоговорител, който се подчинява на вашите правила.
Нека ви помогнем да започнете от нулата до това да говорите с вашия Pi без обичайното дърпане на косата. Ще разгледаме части, настройка, код, сравнения, хващания... цялото бурито. 🌯
Статии, които може да ви харесат след тази:
🔗 Как да изучаваме изкуствения интелект ефективно
Създайте пътна карта за обучение, практикувайте проекти и проследявайте напредъка.
🔗 Как да стартирате компания за изкуствен интелект
Валидиране на проблема, изграждане на MVP, сформиране на екип, осигуряване на първоначални клиенти.
🔗 Как да използвате изкуствен интелект, за да бъдете по-продуктивни
Автоматизирайте рутинните задачи, рационализирайте работните процеси и увеличете творческия резултат.
🔗 Как да внедрите изкуствен интелект във вашия бизнес
Идентифицирайте процеси с голямо въздействие, внедрете пилотни проекти, измерете възвръщаемостта на инвестициите, мащабирайте.
Какво прави един добър „Направи си сам“ асистент с изкуствен интелект с Raspberry Pi ✅
-
По подразбиране е лично – аудиото се запазва локално, където е възможно. Вие решавате какво да напуска устройството.
-
Модулни – сменяеми компоненти като Lego: движеща система за wake word, ASR, LLM, TTS.
-
Достъпни – предимно микрофони, високоговорители и Raspberry Pi с отворен код.
-
Хакируемо – искате домашна автоматизация, табла за управление, рутини, персонализирани умения? Лесно.
-
Надежден – управляван от услугата, стартира и започва да слуша автоматично.
-
Забавно – ще научите много за аудиото, процесите и дизайна, управляван от събития.
Малък съвет: Ако използвате Raspberry Pi 5 и планирате да използвате по-тежки локални модели, охладител с щипка помага при продължително натоварване. (В случай на съмнение, изберете официалния активен охладител, предназначен за Pi 5.) [1]
Части и инструменти, които ще ви трябват 🧰
-
Raspberry Pi : Препоръчва се Pi 4 или Pi 5 за по-голямо пространство.
-
microSD карта : препоръчва се 32 GB+.
-
USB микрофон : обикновен USB конферентен микрофон е чудесен.
-
Говорител : USB или 3,5 мм високоговорител, или I2S усилвател HAT.
-
Мрежа : Ethernet или Wi-Fi.
-
Допълнителни екстри: корпус, активен охладител за Pi 5, бутон за разговори, LED пръстен. [1]
ОС и базова настройка
-
Флаширайте Raspberry Pi OS с Raspberry Pi Imager. Това е лесният начин да получите стартираща microSD карта с желаните от вас предварително зададени настройки. [1]
-
Стартирайте, свържете се с мрежата и след това актуализирайте пакетите:
sudo apt update && sudo apt upgrade -y
-
Основни положения на звука : В Raspberry Pi OS можете да зададете изхода по подразбиране, нивата и устройствата чрез потребителския интерфейс на работния плот или
raspi-config. USB и HDMI аудио се поддържат във всички модели; Bluetooth изходът е наличен при модели с Bluetooth. [1] -
Проверка на устройства:
arecord -l aplay -l
След това тествайте заснемането и възпроизвеждането. Ако нивата ви се струват странни, проверете миксерите и настройките по подразбиране, преди да обвинявате микрофона.

Архитектурата с един поглед 🗺️
Разумен „ Направи си сам“ AI асистент с Raspberry Pi flow изглежда така:
Будна дума → заснемане на аудио на живо → ASR транскрипция → обработка на намерение или LLM → текст на отговор → TTS → възпроизвеждане на аудио → допълнителни действия чрез MQTT или HTTP.
-
Събуждащата се дума : Porcupine е малка, точна и работи локално с контрол на чувствителността за всяка ключова дума. [2]
-
ASR : Whisper е многоезичен ASR модел с общо предназначение, обучен в продължение на ~680 000 часа; той е устойчив на акценти/фонов шум. За употреба на устройството,
shippe.cppпредоставя лесен път за извод на C/C++. [3][4] -
Мозък : Вашият избор – облачен LLM чрез API, система за правила или локален извод в зависимост от мощността.
-
TTS : Piper генерира естествена реч локално, достатъчно бързо за бързи отговори на скромен хардуер. [5]
Таблица за бързо сравнение 🔎
| Инструмент | Най-добро за | Ценово | Защо работи |
|---|---|---|---|
| Думата за събуждане на дикобраз | Спусък за постоянно слушане | Безплатно ниво + | Ниско натоварване на процесора, точност, лесно свързване [2] |
| Whisper.cpp | Локален ASR на Pi | Отворен код | Добра точност, удобен за процесора [4] |
| По-бърз шепот | По-бърз ASR на процесор/графичен процесор | Отворен код | Оптимизации на CTranslate2 |
| Пайпър ТТС | Локален речев изход | Отворен код | Бързи гласове, много езици [5] |
| API за облачно LLM | Богато разсъждение | Въз основа на употреба | Разтоварва тежки изчисления |
| Възел-ЧЕРВЕН | Оркестриране на действия | Отворен код | Визуални потоци, съвместими с MQTT |
Стъпка по стъпка изграждане: Вашият първи гласов цикъл 🧩
Ще използваме Porcupine за дума за събуждане, Whisper за транскрипция, лека „мозъчна“ функция за отговора (заменете с избрания от вас LLM) и Piper за реч. Оставете го минимално, след което итерирайте.
1) Инсталиране на зависимости
sudo apt install -y python3-pip portaudio19-dev sox ffmpeg pip3 инсталира звуково устройство numpy
-
Porcupine: вземете SDK/bindings за вашия език и следвайте бързия старт (клавиш за достъп + списък с ключови думи + аудио кадри →
.process). [2] -
Whisper (съвместим с процесора): изградете 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 -f your.wav -otxt
Горното отразява бързия старт на проекта. [4]
Предпочитате Python?
faster-whisper(CTranslate2) често е по-бърз от обикновения Python на скромни процесори.
2) Настройте Piper TTS
git clone https://github.com/rhasspy/piper cd piper make # Изтеглете желания от вас гласов модел, например en_US-amy echo "Здравейте." | ./piper --model voices/en/en_US-amy-medium.onnx --output_file hello.wav aplay hello.wav
Piper е проектиран за синтез на говор на устройството с множество опции за глас/език. [5]
3) Минимален асистентски цикъл в Python
Умишлено компактно: чака фраза за събуждане (stub), записва, транскрибира с shippe.cpp , генерира отговор (заместител), след което говори чрез Piper. Заменете заместителя с любимия си LLM или логика на правилото.
import os, subprocess, wave import sounddevice as sd WAKE_WORD = "hey computer" # суап за Porcupine в производство [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): audio = sd.rec(int(секунди * SAMPLE_RATE), samplerate=SAMPLE_RATE, channels=CHANNELS, dtype='int16') sd.wait() с wave.open(path, 'wb') като 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 "Не виждам облаците, но може би ще е добре. Носете си яке за всеки случай." return "Вие казахте: " + 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("Асистентът е готов. Въведете фразата за събуждане, която да проверите.") 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("Потребител:", text); print("Асистент:", отговор) speak(отговор) else: print("Въведете фразата за събуждане, за да тествате цикъла.")
За истинско откриване на „wake-word“, интегрирайте стрийминг детектора на Porcupine (нисък процесор, чувствителност за всяка ключова дума). [2]
Аудио тунинг, който наистина има значение 🎚️
Няколко малки корекции карат вашия асистент да се чувства 10 пъти по-умен:
-
Разстояние до микрофона : 30–60 см е идеалното разстояние за много USB микрофони.
-
Нива : избягвайте изрязване на входа и поддържайте възпроизвеждането разумно; коригирайте маршрутизацията, преди да преследвате кодови фантомни кодове. В Raspberry Pi OS можете да управлявате изходното устройство и нивата чрез системни инструменти или
raspi-config. [1] -
Акустика на помещението : твърдите стени причиняват ехо; мека подложка под микрофона помага.
-
Праг на събуждащата дума : твърде чувствителен → фантомни тригери; твърде строг → ще крещите на пластмаса. Porcupine ви позволява да настройвате чувствителността за всяка ключова дума. [2]
-
Термални условия : дългите транскрипции на Pi 5 се възползват от официалния активен охладител за устойчива производителност. [1]
Преход от играчка към уред: Услуги, Автоматично стартиране, Проверки на състоянието 🧯
Хората забравят да изпълняват скриптове. Компютрите забравят да бъдат мили. Превърнете цикъла си в управлявана услуга:
-
Създайте системна единица:
[Единица] Описание=DIY Гласов асистент След=network.target sound.target [Услуга] Потребител=pi WorkingDirectory=/home/pi/assistant ExecStart=/usr/bin/python3 /home/pi/assistant/assistant.py Рестартиране=винаги RestartSec=3 [Инсталиране] WantedBy=multi-user.target
-
Активирайте го:
sudo cp assistant.service /etc/systemd/system/ sudo systemctl daemon-reload sudo systemctl enable --now assistant.service
-
Опашки от трупи:
journalctl -u асистент -f
Сега стартира при зареждане, рестартира при срив и като цяло се държи като устройство. Малко скучно, но много по-добре.
Система от умения: Направете я наистина полезна у дома 🏠✨
След като гласът е включен и изключен, добавете действия:
-
Intent рутер : прости маршрути с ключови думи за често срещани задачи.
-
Умен дом : публикуване на събития в MQTT или обаждане до HTTP крайните точки на Home Assistant.
-
Плъгини : бързи Python функции като
set_timer,what_is_the_time,play_radio,run_scene.
Дори с облачен LLM в цикъла, първо насочвайте очевидните локални команди за бързина и надеждност.
Само локално срещу облачна помощ: Компромиси, които ще усетите 🌓
Само локално.
Плюсове: частно, офлайн, предвидими разходи.
Минуси: по-тежките модели може да са бавни на малки дъски. Многоезичното обучение на Whisper помага за по-голяма стабилност, ако го държите на устройството или на близък сървър. [3]
на облачната помощ
: мощно разсъждение, по-големи контекстни прозорци.
Минуси: данните напускат устройството, мрежова зависимост, променливи разходи.
Хибридът често печели: wake word + ASR local → извикване на API за разсъждение → TTS local. [2][3][5]
Отстраняване на неизправности: Странни гремлини и бързи решения 👾
-
Фалшиви задействания на дума за събуждане : намалете чувствителността или опитайте друг микрофон. [2]
-
Закъснение на ASR : използвайте по-малък модел на Whisper или изградете
whisper.cppс флагове за освобождаване (-j --config Release). [4] -
Накъсан текст : предварително генериране на често срещани фрази; потвърдете аудио устройството си и честотата на семплиране.
-
Не е открит микрофон : проверете
arecord -lи миксерите. -
Термично дроселиране : използвайте официалния Active Cooler на Pi 5 за устойчива производителност. [1]
Бележки за сигурност и поверителност, които наистина трябва да прочетете 🔒
-
Поддържайте вашия Pi актуализиран с APT.
-
Ако използвате облачен API, регистрирайте изпратеното и първо помислете за локално редактиране на лични данни.
-
Стартирайте услуги с най-малки привилегии; избягвайте
sudoв ExecStart, освен ако не е необходимо. -
Осигурете режим само за локално ползване за гости или тихи часове.
Варианти за изграждане: Комбинирайте като сандвич 🥪
-
Ултра-локален : Porcupine + sheppe.cpp + Piper + прости правила. Личен и стабилен. [2][4][5]
-
Бърза облачна помощ : Porcupine + (по-малък локален Whisper или облачен ASR) + локален TTS + облачен LLM.
-
Централна система за домашна автоматизация : Добавете Node-RED или Home Assistant потоци за рутини, сцени и сензори.
Примерно умение: Включване на светлините чрез MQTT 💡
import paho.mqtt.client as mqtt MQTT_HOST = "192.168.1.10" TOPIC = "home/livingroom/light/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() # ако е "включи осветлението" в текста: set_light("on")
Добавете гласова реплика като: „включете лампата в хола“ и ще се почувствате като магьосник.
Защо този стек работи на практика 🧪
-
Porcupine е ефикасен и точен при откриване на „wake-word“ на малки дъски, което прави възможно постоянното слушане. [2]
-
Обширното, многоезично обучение на Whisper го прави устойчиво на различни среди и акценти. [3]
-
wishept.cppзапазва тази мощност използваема само на процесорни устройства, като например Pi. [4] -
Piper поддържа отговорите бързи, без да изпраща аудио към облачен TTS. [5]
Твърде дълго, не го прочетох
Изградете модулен, частен „Направи си сам“ AI асистент с Raspberry Pi , като комбинирате Porcupine за „wake word“, Whisper (чрез whisper.cpp ) за ASR, избрания от вас brain за отговори и Piper за локален TTS. Опаковайте го като системна услуга, настройте звука и го свържете с MQTT или HTTP действия. По-евтино е, отколкото си мислите, и странно приятно е да се живее с него. [1][2][3][4][5]
Референции
-
Софтуер и охлаждане за Raspberry Pi – Raspberry Pi Imager (изтегляне и употреба) и информация за продукта Pi 5 Active Cooler
-
Raspberry Pi Imager: прочетете повече
-
Активен охладител (Pi 5): прочетете повече
-
-
Porcupine Wake Word – SDK и бърз старт (ключови думи, чувствителност, локален извод)
-
Whisper (ASR модел) – Многоезичен, стабилен ASR, обучен с ~680 000 часа
-
Радфорд и др., Надеждно разпознаване на реч чрез широкомащабен слаб надзор (шепот): прочетете повече
-
-
whisp.cpp – Удобен за процесора Whisper inference с CLI и стъпки за изграждане
-
Piper TTS – Бърз, локален невронно TTS с множество гласове/езици