Unataka msaidizi mdogo wa sauti anayefuata mwongozo wako, anayeendesha vifaa vyako mwenyewe, na ambaye hataagiza mananasi kumi na mbili kwa bahati mbaya kwa sababu hakukusikia vizuri? Msaidizi wa AI wa DIY mwenye Raspberry Pi ana uwezo wa kushangaza kufikiwa, kufurahisha, na kunyumbulika. Utaunganisha neno la kuamka, utambuzi wa usemi (ASR = utambuzi wa usemi otomatiki), ubongo wa lugha asilia (sheria au LLM), na maandishi-kwa-usemi (TTS). Ongeza hati chache, huduma moja au mbili, na marekebisho kadhaa ya sauti kwa uangalifu, na una spika mahiri inayoweza kushikiliwa mfukoni inayotii sheria zako.
Hebu tupate kutoka sifuri hadi kuzungumza-na-pi yako bila kuvuta nywele kwa kawaida. Tutashughulikia sehemu, usanidi, msimbo, ulinganisho, gotchas... burrito nzima. 🌯
Makala unayoweza kupenda kusoma baada ya hii:
🔗 Jinsi ya kujifunza AI kwa ufanisi
Unda ramani ya utafiti, miradi ya mazoezi, na ufuatilie maendeleo.
🔗 Jinsi ya kuanzisha kampuni ya AI
Thibitisha tatizo, jenga MVP, kusanya timu, hakikisha wateja wa awali wanapata usalama.
🔗 Jinsi ya kutumia AI kuwa na tija zaidi
Boresha kazi za kawaida kiotomatiki, rekebisha mtiririko wa kazi, na ongeza matokeo ya ubunifu.
🔗 Jinsi ya kuingiza AI katika biashara yako
Tambua michakato yenye athari kubwa, tekeleza majaribio, pima ROI, kipimo.
Ni Nini Hufanya Msaidizi Mzuri wa AI wa Kujifanyia Mwenyewe kwa Kutumia Raspberry Pi ✅
-
Faragha kwa chaguo-msingi - weka sauti ndani inapowezekana. Unaamua nini kinachoacha kifaa.
-
Moduli - badilisha vipengele kama vile Lego: wake word engine, ASR, LLM, TTS.
-
Nafuu - kwa kiasi kikubwa ni programu huria, maikrofoni za bidhaa, spika, na Pi.
-
Huwezi kudukuliwa - unataka otomatiki ya nyumba, dashibodi, utaratibu, ujuzi maalum? Rahisi.
-
Inaaminika - inasimamiwa na huduma, buti na huanza kusikiliza moja kwa moja.
-
Furaha - utajifunza mengi kuhusu sauti, michakato, na muundo unaoendeshwa na matukio.
Ushauri mdogo: Ukitumia Raspberry Pi 5 na unapanga kuendesha mifumo mikubwa ya ndani, kipozeo cha kupoeza husaidia chini ya mzigo unaoendelea. (Unapokuwa na shaka, chagua Kipozeo Amilifu rasmi kilichoundwa kwa ajili ya Pi 5.) [1]
Vipuri na Zana Utakazohitaji 🧰
-
Raspberry Pi : Pi 4 au Pi 5 inapendekezwa kwa ajili ya chumba cha kichwa.
-
Kadi ya microSD : 32 GB+ inapendekezwa.
-
Maikrofoni ya USB : maikrofoni rahisi ya mkutano wa USB ni nzuri.
-
Spika : Spika ya USB au 3.5 mm, au HAT ya amplifier ya I2S.
-
Mtandao : Ethaneti au Wi-Fi.
-
Vipengele vya hiari: kipozeo, kipozeo kinachofanya kazi kwa Pi 5, kitufe cha kubonyeza kwa ajili ya kusukuma-kwa-kuzungumza, pete ya LED. [1]
Usanidi wa Mfumo wa Uendeshaji na Msingi
-
Flash Raspberry Pi OS yenye Raspberry Pi Imager. Ni njia moja kwa moja ya kupata microSD inayoweza kusongeshwa na mipangilio ya awali unayotaka. [1]
-
Washa, unganisha kwenye mtandao, kisha sasisha vifurushi:
sasisho la sudo apt && sudo apt upgrade -y
-
Misingi ya sauti : Kwenye Raspberry Pi OS unaweza kuweka pato chaguomsingi, viwango na vifaa kupitia UI ya eneo-kazi au
raspi-config. Sauti za USB na HDMI zinatumika katika miundo yote; Toleo la Bluetooth linapatikana kwenye miundo iliyo na Bluetooth. [1] -
Thibitisha vifaa:
arecord -l kucheza -l
Kisha jaribu kunasa na kucheza tena. Ikiwa viwango vinaonekana kuwa vya ajabu, angalia vichanganyaji na chaguo-msingi kabla ya kulaumu maikrofoni.

Usanifu kwa Muhtasari 🗺️
mwenye busara na mtiririko wa Raspberry Pi anaonekana kama hii:
Amka neno → kunasa sauti ya moja kwa moja → Unukuzi wa ASR → utunzaji wa kusudi au LLM → maandishi ya majibu → TTS → uchezaji sauti → vitendo vya hiari kupitia MQTT au HTTP.
-
Neno la kuamka : Nungu ni mdogo, sahihi, na huendeshwa ndani ya eneo hilo kwa udhibiti wa unyeti wa kila neno muhimu. [2]
-
ASR : Whisper ni mfumo wa ASR unaotumia lugha nyingi na kwa matumizi ya jumla uliofunzwa kwa takriban saa 680k; ni imara kwa lafudhi/kelele ya mandharinyuma. Kwa matumizi ya kifaa,
whisper.cpphutoa njia ya makadirio ya C/C++ isiyo na madhara. [3][4] -
Ubongo : Chaguo lako - LLM ya wingu kupitia API, injini ya sheria, au hitimisho la ndani kulingana na nguvu ya farasi.
-
TTS : Piper hutoa usemi wa asili ndani ya nchi, haraka vya kutosha kwa majibu ya haraka kwenye vifaa vya kawaida. [5]
Jedwali la Ulinganisho wa Haraka 🔎
| Zana | Bora Kwa | Bei ya juu | Kwa Nini Inafanya Kazi |
|---|---|---|---|
| Neno la Kuamka la Porcupine | Kichochezi cha kusikiliza kila wakati | Daraja la bure + | CPU ya chini, sahihi, na rahisi kufunga [2] |
| Whisper.cpp | ASR ya Karibu kwenye Pi | Chanzo wazi | Usahihi mzuri, rafiki kwa CPU [4] |
| Mnong'ono wa Haraka Zaidi | ASR ya haraka kwenye CPU/GPU | Chanzo wazi | Uboreshaji wa CTranslate2 |
| Piper TTS | Matokeo ya usemi wa ndani | Chanzo wazi | Sauti za haraka, lugha nyingi [5] |
| API ya LLM ya Wingu | Hoja tajiri | Kulingana na matumizi | Inapakia hesabu nzito |
| Nodi-NYEKUNDU | Vitendo vya kupanga | Chanzo wazi | Mitiririko ya kuona, rafiki kwa MQTT |
Muundo wa Hatua kwa Hatua: Kizunguko Chako cha Kwanza cha Sauti 🧩
Tutatumia Porcupine kwa neno la kuamka, Whisper kwa unukuzi, kitendakazi chepesi cha "ubongo" kwa jibu (badilisha na LLM yako uipendayo), na Piper kwa usemi. Weka kiwango kidogo, kisha rudia.
1) Vitegemezi vya usakinishaji
sudo apt install -y python3-pip portaudio19-dev sox ffmpeg pip3 install sounddevice numpy
-
Nungu: chukua SDK/vifungo kwa lugha yako na ufuate mwanzo wa haraka (ufunguo wa ufikiaji + orodha ya maneno muhimu + fremu za sauti →
.process). [2] -
Whisper (rafiki kwa CPU): build 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
Hapo juu inaonyesha mwanzo wa haraka wa mradi. [4]
Unapendelea Python?
Whisper ya haraka(CBtranslate2) mara nyingi huwa ya haraka zaidi kuliko vanilla Python kwenye CPU za kawaida.
2) Sanidi Piper TTS
git clone https://github.com/rhasspy/piper cd piper make # Pakua modeli ya sauti unayopenda, k.m., en_US-amy echo "Habari zenu." | ./piper --model voices/sw/en_US-amy-medium.onnx --output_file hello.wav aplay hello.wav
Piper imeundwa kwa ajili ya TTS ya kifaa yenye chaguo nyingi za sauti/lugha. [5]
3) Kitanzi kidogo cha msaidizi katika Python
Imechanganyika kimakusudi: inasubiri kauli ya kuamka (stub), rekodi, inanukuu kwa whisper.cpp , hutoa jibu (kishika nafasi), kisha huzungumza kupitia Piper. Badilisha kishika nafasi na LLM yako uipendayo au mantiki ya sheria.
import os, subprocess, wimbi import sounddevice as sd WAKE_WORD = "hey computer" # swap for Porcupine in production [2] RECORD_SECONDS = 6 SAMPLE_RATE = 16000 CHELEO = 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(sekunde * SAMPLE_RATE), samplerate=SAMPLE_RATE, channels=CHANNELS, dtype='int16') sd.wait() na wave.open(path, 'wb') kama 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 "Siwezi kuona mawingu, lakini inaweza kuwa sawa. Lete koti iwapo tu." rudisha "Ulisema: " + ongeza 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("Msaidizi yuko tayari. Andika kifungu cha kuamka ili kujaribu.") huku Kweli: typed = input("> ").strip().lower() ikiwa imechapwa == WAKE_WORD: wav_path = f"{WORKDIR}/input.wav" record_wav(wav_path) text = transcribe(wav_path) reply = generate_reply(text) print("Mtumiaji:", text); print("Msaidizi:", jibu) speak(resply) else: print("Andika kifungu cha kuamka ili kujaribu kitanzi.")
Kwa ugunduzi halisi wa neno la kuamka, unganisha kigunduzi cha utiririshaji cha Porcupine (CPU ya chini, unyeti wa kila neno muhimu). [2]
Urekebishaji wa Sauti Unaofaa 🎚️
Marekebisho machache madogo hufanya msaidizi wako kuhisi nadhifu zaidi ya 10×:
-
Umbali wa maikrofoni : 30–60 cm ni sehemu nzuri kwa maikrofoni nyingi za USB.
-
Viwango : epuka kunakili kwenye pembejeo na weka uchezaji sawa; rekebisha uelekezaji kabla ya kukimbiza vizuka vya msimbo. Kwenye Raspberry Pi OS, unaweza kudhibiti kifaa cha kutoa na viwango kupitia zana za mfumo au
raspi-config. [1] -
Sauti za chumba : kuta ngumu husababisha mwangwi; mkeka laini chini ya maikrofoni husaidia.
-
Kizingiti cha neno la kuamka : nyeti sana → vichochezi vya mizimu; kali sana → utakuwa unapiga kelele kwa plastiki. Nungu hukuruhusu kurekebisha unyeti kwa kila neno muhimu. [2]
-
Thermals : manukuu marefu kwenye Pi 5 hunufaika kutoka kwa kipoza amilifu rasmi kwa utendakazi endelevu. [1]
Kuanzia Toy Hadi Kifaa: Huduma, Kuanzisha Kiotomatiki, Afya 🧯
Wanadamu husahau kuendesha hati. Kompyuta husahau kuwa wazuri. Geuza mzunguko wako kuwa huduma inayosimamiwa:
-
Unda kitengo cha mfumo:
[Kitengo] Maelezo=Msaidizi wa Sauti wa DIY Baada=network.target sound.target [Huduma] Mtumiaji=pi WorkingDirectory=/home/pi/assistant ExecStart=/usr/bin/python3 /home/pi/assistant/assistant.py Anzisha upya=daima Anzisha upyaSec=3 [Sakinisha] WantedBy=multi-user.target
-
Iwezeshe:
sudo cp msaidizi.huduma /etc/systemd/system/ sudo systemctl daemon-reload sudo systemctl enable --now msaidizi.huduma
-
Mikia ya logi:
journalctl -u msaidizi -f
Sasa inaanza wakati wa kuwasha, inaanza tena wakati wa hitilafu, na kwa ujumla hufanya kazi kama kifaa. Inachosha kidogo, bora zaidi.
Mfumo wa Ujuzi: Uifanye Iwe Muhimu Nyumbani 🏠✨
Mara tu sauti ya kuingia na sauti ya kutoka zikiwa imara, ongeza vitendo:
-
Kipanga njia cha nia : njia rahisi za maneno muhimu kwa kazi za kawaida.
-
Smart home : chapisha matukio kwa MQTT au piga simu vituo vya mwisho vya HTTP vya Msaidizi wa Nyumbani.
-
Programu-jalizi : Python ya haraka hufanya kazi kama
set_timer,what_is_the_time,play_radio,run_scene.
Hata ukiwa na LLM ya wingu kwenye mzunguko, elekeza amri dhahiri za eneo lako kwanza kwa kasi na uaminifu.
Usaidizi wa Mtandaoni Pekee dhidi ya Wingu: Marekebisho Utakayohisi 🌓
za Ndani Pekee
: gharama za faragha, nje ya mtandao, na zinazoweza kutabirika.
Hasara: mifumo nzito inaweza kuwa polepole kwenye mbao ndogo. Mafunzo ya lugha nyingi ya Whisper husaidia kwa uthabiti ikiwa utaiweka kwenye kifaa au kwenye seva iliyo karibu. [3]
Usaidizi wa wingu
Faida: hoja zenye nguvu, madirisha makubwa ya muktadha.
Hasara: data huacha kifaa, utegemezi wa mtandao, gharama zinazobadilika.
Mseto mara nyingi hushinda: wake word + ASR local → piga API kwa hoja → TTS local. [2][3][5]
Utatuzi wa Matatizo: Gremlins Ajabu na Marekebisho ya Haraka 👾
-
Kuamsha vichocheo vya uongo vya neno : kupunguza unyeti au jaribu maikrofoni tofauti. [2]
-
Ucheleweshaji wa ASR : tumia modeli ndogo ya Whisper au jenga
whisper.cppna bendera za kutolewa (-j --config Release). [4] -
Choppy TTS : tengeneza misemo ya kawaida mapema; thibitisha kifaa chako cha sauti na viwango vya sampuli.
-
Hakuna maikrofoni iliyogunduliwa : angalia
arecord -lna vichanganyaji. -
Kupunguza joto : tumia Kipoeza Amilifu rasmi kwenye Pi 5 kwa utendaji endelevu. [1]
Maelezo ya Usalama na Faragha Unayopaswa Kusoma 🔒
-
Sasisha Pi yako ukitumia APT.
-
Ukitumia API yoyote ya wingu, andika unachotuma na fikiria kurekebisha vipande vya kibinafsi kwanza.
-
Endesha huduma kwa upendeleo mdogo; epuka
sudokatika ExecStart isipokuwa inahitajika. -
Toa hali ya ndani pekee kwa wageni au saa za utulivu.
Jenga Lahaja: Changanya na Ulinganishe Kama Sandwichi 🥪
-
Ultra-local : Porcupine + whisper.cpp + Piper + sheria rahisi. Binafsi na imara. [2][4][5]
-
Usaidizi wa wingu wa kasi : Nungu + (Whisper ndogo ya ndani au ASR ya wingu) + TTS ya ndani + LLM ya wingu.
-
Kituo cha otomatiki cha nyumbani : Ongeza mtiririko wa Node-RED au Msaidizi wa Nyumbani kwa ajili ya utaratibu, matukio, na vitambuzi.
Ujuzi wa Mfano: Kuwasha kupitia MQTT 💡
import paho.mqtt.client as mqtt MQTT_HOST = "192.168.1.10" TOPIC = "home/sebule/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() # if "washa taa" katika maandishi: set_light("on")
Ongeza mstari wa sauti kama: “washa taa ya sebuleni,” na utahisi kama mchawi.
Kwa Nini Mrundiko Huu Unafanya Kazi kwa Mazoezi 🧪
-
Nungu ni mzuri na sahihi katika kugundua maneno ya kuamka kwenye mbao ndogo, jambo linalofanya usikivu wa kila wakati uwezekane. [2]
-
Mafunzo makubwa ya Whisper ya lugha nyingi yanaifanya kuwa thabiti kwa mazingira na lafudhi mbalimbali. [3]
-
whisper.cpphuweka nguvu hiyo ikitumika kwenye vifaa vya CPU pekee kama vile Pi. [4] -
Piper huweka majibu kwa kasi bila kutuma sauti kwa TTS ya wingu. [5]
Muda Mrefu Sana, Sikuisoma
Unda Msaidizi wa kawaida wa DIY AI na Raspberry Pi kwa kuchanganya Porcupine kwa neno lake, Whisper (kupitia whisper.cpp ) kwa ASR, chaguo lako la ubongo kwa majibu, na Piper kwa TTS ya karibu. Ifunge kama huduma ya mfumo, tune sauti, na waya katika vitendo vya MQTT au HTTP. Ni nafuu zaidi kuliko unavyofikiria, na inafurahisha sana kuishi nayo. [1][2][3][4][5]
Marejeleo
-
Programu ya Raspberry Pi na Kupoeza - Raspberry Pi Imager (pakua na utumie) na maelezo ya bidhaa ya Pi 5 Active Cooler
-
Picha ya Raspberry Pi: soma zaidi
-
Active Cooler (Pi 5): soma zaidi
-
-
Neno la Kuamka kwa Porcupine – SDK na kuanza haraka (maneno muhimu, unyeti, hitimisho la ndani)
-
Whisper (modeli ya ASR) - ASR yenye lugha nyingi na imara iliyofunzwa kwa saa ~680k
-
Radford et al., Utambuzi wa Hotuba Imara kupitia Usimamizi wa Udhaifu wa Kiwango Kikubwa (Whisper): soma zaidi
-
-
whisper.cpp - Maelekezo ya Whisper yanayofaa kwa CPU na CLI na uunda hatua
-
Piper TTS - TTS ya neva ya haraka, ya ndani yenye sauti/lugha nyingi