Raspberry Pi көмегімен DIY AI көмекшісін қалай жасауға болады

Raspberry Pi көмегімен DIY AI көмекшісін қалай жасауға болады

Сіздің жетекшіңізді орындайтын, жеке жабдықта жұмыс істейтін және сізді қате естігендіктен кездейсоқ он екі ананасқа тапсырыс бермейтін кішкентай дауыстық көмекшіні қалайсыз ба? Raspberry Pi бар DIY AI көмекшісі таңқаларлықтай қол жетімді, көңілді және икемді. Сіз оятатын сөзді, сөйлеуді тану (ASR = автоматты түрде сөйлеуді тану), табиғи тілге арналған миды (ережелер немесе LLM) және мәтіннен сөйлеуге (TTS) қосасыз. Бірнеше сценарийді, бір немесе екі қызметті және бірнеше мұқият аудио түзетулерін қосыңыз және сіздің ережелеріңізге бағынатын қалтаға арналған смарт динамикке ие боласыз.

Кәдімгі шаш тартпай-ақ нөлден Pi-мен сөйлесуге мүмкіндік берейік. Біз бөліктерді, орнатуды, кодты, салыстыруды, алуды... бүкіл бурритоды қарастырамыз. 🌯

Осы мақаладан кейін оқығыңыз келетін мақалалар:

🔗 AI қалай тиімді зерттеуге болады
Зерттеудің жол картасын жасаңыз, жобаларды іске асырыңыз және үлгерімді қадағалаңыз.

🔗 AI компаниясын қалай бастауға болады
Мәселені растаңыз, MVP құрастырыңыз, топ жинаңыз, бастапқы тұтынушыларды қорғаңыз.

🔗 Өнімді болу үшін AI қалай пайдалануға болады
Күнделікті тапсырмаларды автоматтандырыңыз, жұмыс процестерін оңтайландырыңыз және шығармашылық нәтижені арттырыңыз.

🔗 AI-ны бизнесіңізге қалай қосуға болады
Жоғары әсер ететін процестерді анықтаңыз, пилоттарды енгізіңіз, ROI, масштабты өлшеңіз.


Raspberry Pi көмегімен жақсы DIY AI көмекшісін не жасайды ✅

  • Әдепкі бойынша жеке – мүмкіндігінше дыбысты жергілікті сақтаңыз. Құрылғыдан не қалдыратынын өзіңіз шешесіз.

  • Модульдік – Lego сияқты құрамдастарды алмастыру: ояту сөз қозғалтқышы, ASR, LLM, TTS.

  • Қолжетімді – негізінен ашық бастапқы коды, тауарлық микрофондар, динамиктер және Pi.

  • Бұзылатын - үйді автоматтандыруды, бақылау тақталарын, жұмыс тәртібін, пайдаланушы дағдыларын қалайсыз ба? Жеңіл.

  • Сенімді – қызметпен басқарылады, жүктеледі және тыңдауды автоматты түрде бастайды.

  • Көңілді – сіз аудио, процестер және оқиғаға негізделген дизайн туралы көп нәрсені білесіз.

Кішкентай кеңес: Raspberry Pi 5 қолдансаңыз және ауырырақ жергілікті үлгілерді іске қосуды жоспарласаңыз, қысқышты салқындатқыш тұрақты жүктеме кезінде көмектеседі. (Күмән болса, Pi 5 үшін жасалған ресми белсенді салқындатқышты таңдаңыз.) [1]


Сізге қажет бөлшектер мен құралдар 🧰

  • Raspberry Pi : Pi 4 немесе Pi 5 бос орын үшін ұсынылады.

  • microSD картасы : 32 ГБ+ ұсынылады.

  • USB микрофоны : қарапайым USB конференция микрофоны тамаша.

  • Динамик : USB немесе 3,5 мм динамик немесе I2S амп HAT.

  • Желі : Ethernet немесе Wi-Fi.

  • Қосымша әдеміліктер: корпус, белсенді салқындатқыш , басу-сөйлесуге арналған түйме, жарықдиодты сақина. [1]

ОЖ және бастапқы орнату

  1. Flash Raspberry Pi операциялық жүйесі . Бұл қалаған алдын ала орнатулары бар жүктелетін microSD алудың қарапайым жолы. [1]

  2. Жүктеңіз, желіге қосылыңыз, содан кейін пакеттерді жаңартыңыз:

sudo apt жаңарту && sudo apt жаңарту -y
  1. Дыбыс негіздері : Raspberry Pi OS жүйесінде жұмыс үстеліндегі UI немесе raspi-config . USB және HDMI дыбысына барлық үлгілерде қолдау көрсетіледі; Bluetooth шығысы Bluetooth бар үлгілерде қол жетімді. [1]

  2. Құрылғыларды тексеру:

arecord -l aplay -l

Содан кейін түсіруді және ойнатуды тексеріңіз. Деңгейлер біртүрлі болып көрінсе, микрофонды кінәламас бұрын араластырғыштарды және әдепкі параметрлерді тексеріңіз.


Бір қарағанда сәулет 🗺️

Raspberry Pi ағыны бар ақылға қонымды келесідей көрінеді:

Сөзді ояту → тірі дыбысты түсіру → ASR транскрипциясы → ниетті өңдеу немесе LLM → жауап мәтіні → TTS → дыбысты ойнату → MQTT немесе HTTP арқылы қосымша әрекеттер.

  • Оянатын сөз : кірпі кішкентай, дәл және әр кілтсөз сезімталдығын басқару арқылы жергілікті түрде жұмыс істейді. [2]

  • ASR : Whisper — ~680 мың сағатта оқытылатын көптілді, жалпы мақсаттағы ASR моделі; ол екпіндерге/фон шуылына төзімді. Құрылғыда пайдалану үшін whisper.cpp қарапайым C/C++ қорытынды жолын қамтамасыз етеді. [3][4]

  • Ми : Сіздің таңдауыңыз – API арқылы бұлттық LLM, ережелер қозғалтқышы немесе ат күшіне байланысты жергілікті қорытынды.

  • TTS : Piper қарапайым жабдықта жылдам жауап беру үшін жеткілікті жылдам табиғи сөйлеуді жергілікті түрде жасайды. [5]


Жылдам салыстыру кестесі 🔎

Құрал Ең жақсысы Бағасы Неліктен жұмыс істейді
Поркупинді ояту сөзі Әрқашан тыңдау триггері Тегін деңгей + Төмен CPU, дәл, оңай байланыстыру [2]
Whisper.cpp Pi бойынша жергілікті ASR Ашық дереккөз Жақсы дәлдік, процессорға ыңғайлы [4]
Жылдамырақ - сыбырлау CPU/GPU жүйесіндегі жылдамырақ ASR Ашық дереккөз CTranslate2 оңтайландырулары
Piper TTS Жергілікті сөйлеу шығысы Ашық дереккөз Жылдам дауыстар, көптеген тілдер [5]
Cloud LLM API Бай пайымдау Қолдануға негізделген Ауыр есептеулерді түсіреді
Түйін-ҚЫЗЫЛ Оркестрлік әрекеттер Ашық дереккөз Көрнекі ағындар, MQTT қолайлы

Қадамдық құрастыру: сіздің алғашқы дауыстық цикліңіз 🧩

Біз ояту сөз үшін Porcupine, транскрипция үшін Whisper, жауап үшін жеңіл «ми» функциясын (таңдаған LLM-мен ауыстырыңыз) және сөйлеу үшін Piper қолданамыз. Оны минималды ұстаңыз, содан кейін қайталаңыз.

1) Тәуелділіктерді орнату

sudo apt орнату -y python3-pip portaudio19-dev sox ffmpeg pip3 дыбыс құрылғысын орнату 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.en.bab-ot

Жоғарыда айтылғандар жобаның жылдам басталуын көрсетеді. [4]

Python-ды қалайсыз ба? жылдам сыбырлау (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 немесе ереже логикасымен ауыстырыңыз.

import os, subprocess, wave import sounddevice as sd WAKE_WORD = "сау компьютер" # өндірістегі Поркупинаға айырбастау [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_V "/home/pi/piper/voices/en/en_US-amy-medium.onnx" os.makedirs(WORKDIR, exist_ok=True) def record_wav(жол, секунд=RECORD_SECONDS): аудио = sd.rec(int(секунд * SAMPLE_SAMPLE, арна=NES), sample_rate=NER dtype='int16') sd.wait() wave.open(жол, 'wb') w ретінде: w.setnchannels(CHANNELS); w.setsampwidth(2); w.setframerate(SAMPLE_RATE) w.writeframes(audio.tobytes()) деf транскрипция(жол): cmd = [ASR_BIN, "-m", ASR_MODEL, "-f", жол, "-otxt"] subprocess.run(cmd, check=True, cwd=açık("."xtwa),("."xtwa)орынмен. "r", encoding="utf-8") f as: return f.read().strip() defgener_reply(prompt): prompt.lower() ішіндегі "ауа райы" болса: қайтару "Мен бұлттарды көре алмаймын, бірақ жақсы болуы мүмкін. Болмаса, күртеңізді әкеліңіз." қайтару "Сіз айттыңыз: " + prompt def speak(мәтін): proc = subprocess.Popen([PIPER_BIN, "--model", PIPER_VOICE, "--output_file", f"{WORKDIR}/reply.wav"], stdin=subprocess.PIPE) proc.stdin.work(text)(mtext): proc.stdin.fc."de"; proc.stdin.close(); proc.wait() subprocess.run(["aplay", f"{WORKDIR}/reply.wav"], check=True) print("Assistant дайын. Тексеру үшін ояту фразасын теріңіз.") True кезінде: терілген = input("> ").strip().lower() терілген болса == WAKE_W =: wake_W f"{WORKDIR}/input.wav" record_wav(wav_path) text = транскрипция(wav_path) жауап = gener_reply(text) print("Пайдаланушы:", мәтін); print("Көмекші:", жауап беру) айту(жауап беру) else: print("Циклді тексеру үшін ояту фразасын теріңіз.")

Оянған сөзді нақты анықтау үшін Porcupine ағынды детекторын біріктіріңіз (төмен CPU, әр кілт сөзге сезімталдық). [2]


Шын мәнінде маңызды аудио баптау 🎚️

Бірнеше шағын түзетулер көмекшіңізді 10 есе ақылдырақ сезінеді:

  • Микрофон қашықтығы : 30–60 см көптеген USB микрофондары үшін қолайлы орын.

  • Деңгейлер : кірісті қиюды болдырмаңыз және ойнатуды дұрыс ұстаңыз; кодты елестерді қумас бұрын маршрутты түзетіңіз. Raspberry Pi операциялық жүйесінде шығыс құрылғысы мен деңгейлерін жүйелік құралдар немесе raspi-config . [1]

  • Бөлме акустикасы : қатты қабырғалар жаңғырық тудырады; микрофон астындағы жұмсақ төсеніш көмектеседі.

  • Ояну сөз шегі : тым сезімтал → елес триггерлер; тым қатал → сіз пластикке айқайлайсыз. Porcupine кілт сөзге сезімталдықты өзгертуге мүмкіндік береді. [2]

  • Термиялық : Pi 5-дегі ұзақ транскрипциялар тұрақты жұмыс үшін ресми белсенді салқындатқыштан пайда көреді. [1]


Ойыншықтан құрылғыға өту: қызметтер, автоқосу, денсаулықты тексеру 🧯

Адамдар сценарийлерді орындауды ұмытады. Компьютерлер жақсы болуды ұмытады. Циклды басқарылатын қызметке айналдырыңыз:

  1. Жүйелік блок құру:

[Бірлік] Сипаттама=DIY Voice Assistant After=network.target sound.target [Қызмет] Пайдаланушы=pi WorkingDirectory=/home/pi/assistant ExecStart=/usr/bin/python3 /home/pi/assistant/assistant.py Restart=əрқашан RestartSec]mul=3-бұқтырылады.
  1. Оны қосыңыз:

sudo cp assistant.service /etc/systemd/system/ sudo systemctl демон-қайта жүктеу sudo systemctl қосу --қазір assistant.service
  1. Бөренелер:

journalctl -u көмекшісі -f

Енді ол жүктелгенде басталады, бұзылғанда қайта іске қосылады және әдетте құрылғы сияқты әрекет етеді. Біраз қызықсыз, әлдеқайда жақсы.


Дағды жүйесі: оны үйде пайдалы етіңіз 🏠✨

Дауысты енгізу және дауысты шығару тұрақты болғаннан кейін әрекеттерді қосыңыз:

  • Мақсатты маршрутизатор : жалпы тапсырмаларға арналған қарапайым кілт сөз маршруттары.

  • Ақылды үй : оқиғаларды MQTT қызметіне жариялаңыз немесе Home Assistant HTTP соңғы нүктелеріне қоңырау шалыңыз.

  • Плагиндер set_timer , what_is_the_time , play_radio , run_scene сияқты жылдам Python функциялары .

Циклдегі бұлттық LLM болса да, жылдамдық пен сенімділік үшін алдымен айқын жергілікті пәрмендерді бағыттаңыз.


Тек жергілікті және Cloud Assist: сіз сезінетін жеңілдіктер 🌓

Тек жергілікті
артықшылықтар: жеке, офлайн, болжамды шығындар.
Кемшіліктері: ауыр модельдер шағын тақталарда баяу болуы мүмкін. Whisper бағдарламасының көптілді оқытуы оны құрылғыда немесе жақын маңдағы серверде сақтасаңыз, сенімділікке көмектеседі. [3]

Cloud assist
Pros: күшті дәлелдер, үлкен контекстік терезелер.
Кемшіліктері: деректер құрылғыны қалдырады, желіге тәуелділік, айнымалы шығындар.

Гибрид жиі жеңеді: ояту сөзі + жергілікті ASR → пайымдау үшін API шақырыңыз → TTS жергілікті. [2][3][5]


Ақаулықтарды жою: біртүрлі гремлиндер және жылдам түзетулер 👾

  • Жалған сөз триггерлерін оятыңыз : сезімталдықты төмендетіңіз немесе басқа микрофонды қолданып көріңіз. [2]

  • ASR кідірісі : кішірек Whisper үлгісін пайдаланыңыз немесе whisper.cpp ( -j --config Шығарылым ). [4]

  • Choppy TTS : жалпы сөз тіркестерін алдын ала жасау; аудио құрылғыңызды және үлгі жылдамдығын растаңыз.

  • Микрофон анықталмады : arecord -l және араластырғыштарды тексеріңіз.

  • Термиялық реттеу : тұрақты өнімділік үшін Pi 5 жүйесіндегі ресми Active Cooler пайдаланыңыз. [1]


Сіз шынымен оқуыңыз керек қауіпсіздік және құпиялылық ескертпесі 🔒

  • APT көмегімен Pi құрылғысын жаңартып отырыңыз.

  • Кез келген бұлттық API пайдалансаңыз, жібергеніңізді тіркеңіз және алдымен жеке биттерді жергілікті түрде өңдеуді қарастырыңыз.

  • Қызметтерді ең аз артықшылықпен іске қосыңыз; қажет болмаса, ExecStart жүйесінде sudo қолданбаңыз

  • Қонақтар немесе тыныш сағаттар үшін тек жергілікті режимді қамтамасыз етіңіз


Құрастыру нұсқалары: сэндвич сияқты араластырыңыз және сәйкестендіріңіз 🥪

  • Ультра жергілікті : кірпі + whisper.cpp + Piper + қарапайым ережелер. Жеке және берік. [2][4][5]

  • Жылдам бұлттық көмек : кірпі + (кіші жергілікті Whisper немесе бұлтты ASR) + TTS жергілікті + бұлтты LLM.

  • Үйді автоматтандыру орталығы : режимдер, көріністер және сенсорлар үшін Node-RED немесе Home Assistant ағындарын қосыңыз.


Дағды үлгісі: MQTT арқылы жанады 💡

paho.mqtt.client файлын mqtt ретінде импорттау MQTT_HOST = "192.168.1.10" ТАҚЫРЫП = "үй/қонақ бөлме/жарық/жинақ" def set_light(күй: str): клиент = mqtt.Client() client.connect(MQTT_HOST, 1883) жүктеме, =60, "егер" state.lower().startswith("on") else "OFF" client.publish(TOPIC, пайдалы жүктеме, qos=1, retain=False) client.disconnect() # мәтіндегі "шамдарды қосу" болса: set_light("on")

«қонақ бөлмесінің шамын қосыңыз» сияқты дауыс сызығын қосыңыз, сонда сіз өзіңізді шебер сияқты сезінесіз.


Неліктен бұл стек тәжірибеде жұмыс істейді 🧪

  • Поркупина кішкентай тақталардағы ояту сөздерді анықтауда тиімді және дәл, бұл әрқашан тыңдауды мүмкін етеді. [2]

  • Whisper-дің үлкен, көп тілді оқытуы оны әртүрлі орталар мен екпіндерге төзімді етеді. [3]

  • whisper.cpp бұл қуатты Pi сияқты тек процессорлы құрылғыларда қолдануға жарамды етіп сақтайды. [4]

  • Пайпер дыбысты TTS бұлтына жібермей жауаптарды жылдам сақтайды. [5]


Тым ұзақ, оқымадым

Raspberry Pi көмегімен модульдік, жеке ояту сөзі үшін Porcupine, ASR үшін Whisper ( whisper.cpp ), жауаптар үшін таңдау миыңызды және жергілікті TTS үшін Piper біріктіру арқылы жасаңыз. Оны жүйелік қызмет ретінде ораңыз, дыбысты реттеңіз және MQTT немесе HTTP әрекеттерінде сымды реттеңіз. Бұл сіз ойлағаннан арзанырақ және онымен өмір сүру таңқаларлық. [1][2][3][4][5]


Анықтамалар

  1. Raspberry Pi бағдарламалық құралы және салқындату – Raspberry Pi кескіндеме құралы (жүктеп алу және пайдалану) және Pi 5 Active Cooler өнімі туралы ақпарат

  2. Porcupine Wake Word – SDK және жылдам бастау (кілт сөздер, сезімталдық, жергілікті қорытынды)

  3. Whisper (ASR үлгісі) – ~680 мың сағатта дайындалған көптілді, сенімді ASR

    • Рэдфорд және т.б., Үлкен масштабтағы әлсіз бақылау арқылы сенімді сөйлеуді тану (сыбырлау): толығырақ

  4. whisper.cpp – CLI және құрастыру қадамдарымен процессорға ыңғайлы Whisper қорытындысы

  5. Piper TTS – Бірнеше дауыстары/тілдері бар жылдам, жергілікті нейрондық TTS

Ресми AI Assistant дүкенінен соңғы AI табыңыз

Біз туралы


Блогқа оралу