Сіздің айтқаныңызды іс жүзінде орындайтын, өз құрылғыңызда жұмыс істейтін және сізді естімегендіктен кездейсоқ он екі ананас тапсырыс бермейтін кішкентай дауыстық көмекшіні қалайсыз ба? Raspberry Pi көмегімен жасалған DIY жасанды интеллект көмекшісі таңқаларлықтай қолжетімді, көңілді және икемді. Сіз ояту сөзін, сөйлеуді тануды (ASR = автоматты сөйлеуді тануды), табиғи тілге арналған миды (ережелер немесе LLM) және мәтінді сөйлеуге түрлендіруді (TTS) қосасыз. Бірнеше сценарийді, бір немесе екі қызметті және мұқият аудио түзетулерді қоссаңыз, ережелеріңізге бағынатын қалтаға салуға болатын ақылды динамикке ие боласыз.
Әдеттегідей шашты жұлмай-ақ, нөлден бастап Пи-мен сөйлесуге көшейік. Біз бөлшектерді, орнатуды, кодты, салыстыруларды, түсініктемелерді... бүкіл бурритоны қарастырамыз. 🌯
Осыдан кейін оқуға болатын мақалалар:
🔗 Жасанды интеллектті қалай тиімді зерттеуге болады
Оқу жоспарын жасаңыз, жобаларды тәжірибе жүзінде қолданыңыз және прогресті бақылаңыз.
🔗 Жасанды интеллект компаниясын қалай бастау керек
Мәселені тексеру, MVP құру, команда құру, алғашқы тұтынушыларды қамтамасыз ету.
🔗 Өнімділікті арттыру үшін жасанды интеллектті қалай пайдалануға болады
Күнделікті тапсырмаларды автоматтандырыңыз, жұмыс процестерін жеңілдетіңіз және шығармашылық өнімділікті арттырыңыз.
🔗 Бизнесіңізге жасанды интеллектті қалай енгізуге болады
Жоғары әсер ететін процестерді анықтаңыз, пилоттық жобаларды іске асырыңыз, инвестициялық кірістілікті өлшеңіз, масштабтаңыз.
Raspberry Pi көмегімен жақсы жасанды интеллект көмекшісін не жасайды ✅
-
Әдепкі бойынша жеке – мүмкіндігінше дыбысты жергілікті сақтаңыз. Құрылғыдан не шығатынын өзіңіз шешесіз.
-
Модульдік – Lego сияқты компоненттерді ауыстыру: wake word engine, ASR, LLM, TTS.
-
Қолжетімді – көбінесе ашық бастапқы кодты, тауарлық микрофондар, динамиктер және Pi.
-
Hackable – үйді автоматтандыру, басқару тақталары, тәртіптер, арнайы дағдылар қажет пе? Оңай.
-
Сенімді – қызмет басқарады, жүктеледі және автоматты түрде тыңдай бастайды.
-
Көңілді – сіз аудио, процестер және оқиғаларға негізделген дизайн туралы көп нәрсе білесіз.
Кішкентай кеңес: Егер сіз Raspberry Pi 5 пайдалансаңыз және ауыр жергілікті модельдерді іске қосуды жоспарласаңыз, қыстырғышты салқындатқыш ұзақ жүктеме кезінде көмектеседі. (Күмәніңіз болса, Pi 5 үшін жасалған ресми Active Cooler таңдаңыз.) [1]
Сізге қажет бөлшектер мен құралдар 🧰
-
Таңқурай Pi : бас кеңістігі үшін Pi 4 немесе Pi 5 ұсынылады.
-
microSD картасы : 32 ГБ+ ұсынылады.
-
USB микрофоны : қарапайым USB конференция микрофоны керемет.
-
Динамик : USB немесе 3,5 мм динамик немесе I2S күшейткіші бар HAT.
-
Желі : Ethernet немесе Wi-Fi.
-
Қосымша артықшылықтар: корпус, белсенді салқындатқыш , «сөйлесу үшін басу» түймесі, жарықдиодты сақина. [1]
ОС және базалық орнату
-
Raspberry Pi операциялық жүйесін жыпылықтаңыз . Бұл қажетті алдын ала орнатылған параметрлері бар жүктелетін microSD картасын алудың қарапайым жолы. [1]
-
Жүктеу, желіге қосылу, содан кейін пакеттерді жаңарту:
sudo apt update && sudo apt upgrade -y
-
Аудио негіздері
raspi-configарқылы орнатуға болады . USB және HDMI аудио барлық модельдерде қолдау көрсетіледі; Bluetooth шығысы Bluetooth бар модельдерде қолжетімді. [1] -
Құрылғыларды тексеру:
arecord -l aplay -l
Содан кейін түсіруді және ойнатуды тексеріңіз. Егер деңгейлер біртүрлі болып көрінсе, микрофонды кінәламас бұрын микшерлер мен әдепкі параметрлерді тексеріңіз.

Сәулет өнеріне қысқаша шолу 🗺️
Raspberry Pi ағыны бар ақылға қонымды келесідей көрінеді:
Ояту сөзі → тікелей аудиожазба → ASR транскрипциясы → ниет өңдеу немесе LLM → жауап мәтіні → TTS → аудио ойнату → MQTT немесе HTTP арқылы қосымша әрекеттер.
-
Ояту сөзі : Porcupine кішкентай, дәл және әрбір кілт сөзге сезімталдықты басқару мүмкіндігімен жергілікті түрде жұмыс істейді. [2]
-
ASR : Whisper - шамамен 680 мың сағат бойы оқытылған көптілді, жалпы мақсаттағы ASR моделі; ол екпіндерге/фон шуына төзімді. Құрылғыда пайдалану үшін
whisper.cppC/C++ талдау жолын ұсынады. [3][4] -
Ми : Сіздің таңдауыңыз – API, ережелер жүйесі немесе ат күшіне байланысты жергілікті қорытынды арқылы бұлттық LLM.
-
TTS : Piper жергілікті жерде табиғи сөйлеуді жасайды, қарапайым жабдықта жылдам жауап беруге жеткілікті жылдам. [5]
Жылдам салыстыру кестесі 🔎
| Құрал | Ең жақсысы | Бағасы жоғары | Неліктен жұмыс істейді |
|---|---|---|---|
| Кірпі ояту сөзі | Әрқашан тыңдайтын триггер | Тегін деңгей + | Төмен процессорлық қуат, дәл, оңай байланыстыру [2] |
| Whisper.cpp | Pi жүйесіндегі жергілікті ASR | Ашық бастапқы код | Дәлдігі жақсы, процессорға ыңғайлы [4] |
| Faster-Whisper | CPU/GPU жүйесіндегі жылдам ASR | Ашық бастапқы код | CTranslate2 оңтайландырулары |
| Пайпер TTS | Жергілікті сөйлеу шығысы | Ашық бастапқы код | Жылдам дауыстар, көптеген тілдер [5] |
| Бұлттық LLM API | Бай пайымдау | Қолдануға негізделген | Ауыр есептеулерді жеңілдетеді |
| Түйін-ҚЫЗЫЛ | Әрекеттерді ұйымдастыру | Ашық бастапқы код | Көрнекі ағындар, MQTT үшін ыңғайлы |
Қадамдық құрастыру: Сіздің алғашқы дауыстық циклыңыз 🧩
Біз ояту сөзі үшін Porcupine, транскрипция үшін Whisper, жауап үшін жеңіл «ми» функциясын (таңдаған LLM-мен ауыстырыңыз) және сөйлеу үшін Piper қолданамыз. Оны минималды етіп сақтаңыз, содан кейін қайталаңыз.
1) Тәуелділіктерді орнату
sudo apt install -y python3-pip portaudio19-dev sox ffmpeg pip3 sounddevice numpy орнату
-
Porcupine: тіліңізге арналған SDK/байланыстыруларды алып, жылдам бастауды орындаңыз (кіру пернесі + кілт сөздер тізімі + аудио кадрлар →
.process). [2] -
Whisper (CPU-ға ыңғайлы): 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 бірнеше дауыс/тіл опциялары бар құрылғыдағы TTS үшін жасалған. [5]
3) Python тіліндегі минималды көмекші цикл
Әдейі ықшамдалған: ояту фразасын күтеді (stub), жазып алады, whisper.cpp , жауап жасайды (орын толтырғыш), содан кейін Piper арқылы сөйлейді. Орын толтырғышты сүйікті LLM немесе ереже логикасымен ауыстырыңыз.
os, қосалқы өңдеу, wave импорттау 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); функциясын пайдалану арқылы wave.open(path, 'wb') функциясын орындаңыз. 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("Циклды тексеру үшін ояту сөз тіркесін теріңіз.") }
Нақты ояту сөздерін анықтау үшін Porcupine ағындық детекторын біріктіріңіз (төмен процессор, әрбір кілт сөзге сезімталдық). [2]
Шын мәнінде маңызды дыбыстық тюнинг 🎚️
Бірнеше шағын түзетулер көмекшіңізді 10 есе ақылды етеді:
-
Микрофон қашықтығы : 30-60 см көптеген USB микрофондары үшін ең қолайлы орын.
-
Деңгейлер
raspi-configарқылы басқара аласыз . [1] -
Бөлме акустикасы : қатты қабырғалар жаңғырық тудырады; микрофонның астындағы жұмсақ төсеніш көмектеседі.
-
Ояту сөзінің шегі : тым сезімтал → елес триггерлері; тым қатаң → сіз пластикке айқайлайсыз. Porcupine сізге әрбір кілт сөзге сезімталдықты реттеуге мүмкіндік береді. [2]
-
Термиялық : Pi 5-тегі ұзын транскрипциялар тұрақты жұмыс істеу үшін ресми белсенді салқындатқыштан пайда көреді. [1]
Ойыншықтан тұрмыстық техникаға көшу: қызметтер, автоматты іске қосу, денсаулықты тексеру 🧯
Адамдар сценарийлерді орындауды ұмытып кетеді. Компьютерлер жақсы болуды ұмытып кетеді. Цикліңізді басқарылатын қызметке айналдырыңыз:
-
Systemd блогын жасаңыз:
[Блок] Сипаттамасы=DIY дауыстық көмекшісі After=network.target sound.target [Қызмет] User=pi WorkingDirectory=/home/pi/assistant ExecStart=/usr/bin/python3 /home/pi/assistant/assistant.py Restart=always 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
Енді ол жүктелгенде іске қосылады, істен шыққанда қайта іске қосылады және жалпы алғанда құрылғы сияқты жұмыс істейді. Аздап зеріктіргіш, әлдеқайда жақсы.
Дағды жүйесі: Үйде шынымен пайдалы етіңіз 🏠✨
Дауыспен енгізу және шығару толық орнатылғаннан кейін, келесі әрекеттерді қосыңыз:
-
Мақсат маршрутизаторы : жалпы тапсырмаларға арналған қарапайым кілт сөздер маршруттары.
-
Ақылды үй : іс-шараларды MQTT-ге жариялаңыз немесе Home Assistant HTTP соңғы нүктелеріне қоңырау шалыңыз.
-
Плагиндер
set_timer,what_is_the_time,play_radio,run_sceneсияқты жылдам Python функциялары .
Тіпті бұлттық LLM циклінде болса да, жылдамдық пен сенімділік үшін алдымен айқын жергілікті командаларды бағыттаңыз.
Тек жергілікті және бұлттық көмек: Сіз сезінетін айырмашылықтар 🌓
Тек жергілікті
Артықшылықтары: жеке, офлайн, болжамды шығындар.
Кемшіліктері: ауыр модельдер шағын тақталарда баяу жұмыс істеуі мүмкін. Whisper көптілді оқытуы оны құрылғыда немесе жақын маңдағы серверде сақтасаңыз, сенімділікті арттыруға көмектеседі. [3]
Бұлттық көмек
Артықшылықтары: қуатты ойлау, үлкен контексттік терезелер.
Кемшіліктері: деректер құрылғыдан кетеді, желіге тәуелділік, айнымалы шығындар.
Гибрид көбінесе жеңеді: wake word + ASR жергілікті → ойлау үшін API шақыру → TTS жергілікті. [2][3][5]
Ақаулықтарды жою: оғаш гремлиндер және жылдам түзетулер 👾
-
Ояту сөзінің жалған триггерлері : сезімталдықты төмендетіңіз немесе басқа микрофонды қолданып көріңіз. [2]
-
ASR кідірісі : кішірек Whisper моделін пайдаланыңыз немесе
whisper.cppфайлын босату жалаушаларымен (-j --config Release) құрыңыз. [4] -
Үзілісті дыбыстар : жиі кездесетін сөз тіркестерін алдын ала жасаңыз; аудио құрылғыңызды және үлгі жиіліктерін растаңыз.
-
Микрофон анықталмады :
arecord -lжәне микшерлерді тексеріңіз. -
Термиялық дроссельдеу : тұрақты жұмыс істеу үшін Pi 5-тегі ресми Active Cooler пайдаланыңыз. [1]
Шынымен оқуға тиісті қауіпсіздік және құпиялылық туралы ескертпелер 🔒
-
APT арқылы Pi-іңізді жаңартып отырыңыз.
-
Егер сіз кез келген бұлттық API пайдалансаңыз, жіберген деректеріңізді жазып алыңыз және алдымен жеке биттерді жергілікті түрде редакциялауды қарастырыңыз.
-
Ең аз артықшылықпен қызметтерді іске қосыңыз; қажет болмаса, ExecStart бағдарламасында
sudo функциясын -
тек жергілікті режимді немесе тыныштық уақытын қамтамасыз етіңіз
Нұсқаларды құрастыру: Сэндвич сияқты араластырыңыз және сәйкестендіріңіз 🥪
-
Ультра жергілікті : Кірпі + сыбырлаушы.cpp + Құмырашы + қарапайым ережелер. Жеке және берік. [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 кішкентай тақталарда ояту сөздерін анықтауда тиімді және дәл, бұл әрқашан тыңдауды мүмкін етеді. [2]
-
Whisper-дің кең ауқымды, көптілді оқытуы оны әртүрлі орталар мен акценттерге төзімді етеді. [3]
-
whisper.cppбұл қуатты тек CPU құрылғыларында, мысалы, Pi құрылғыларында пайдалануға мүмкіндік береді. [4] -
Piper дыбысты бұлттық TTS-ке жібермей, жауаптардың жылдамдығын сақтайды. [5]
Тым ұзақ, оқымадым
Porcupine-ді ояту үшін, Whisper-ді ( wiss.cpp модульдік, жеке DIY жасанды интеллект көмекшісін . Оны жүйелік қызмет ретінде орап, дыбысты реттеп, 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 моделі) – ~680 мың сағат бойы оқытылған көптілді, сенімді ASR
-
Рэдфорд және т.б., Үлкен масштабты әлсіз бақылау (сыбырлау) арқылы сенімді сөйлеуді тану: толығырақ оқу
-
-
whisper.cpp – CLI және құрастыру қадамдарымен CPU-ға ыңғайлы Whisper қорытындысы
-
Piper TTS – бірнеше дауыс/тілмен жылдам, жергілікті нейрондық TTS