Sizin komutlarınızı gerçekten takip eden, kendi donanımınızda çalışan ve sizi yanlış anladığı için yanlışlıkla on iki ananas sipariş etmeyecek minik bir sesli asistana mı ihtiyacınız var? Raspberry Pi ile kendi yapay zekanızı oluşturabileceğiniz bir asistan şaşırtıcı derecede mümkün, eğlenceli ve esnek. Bir uyandırma kelimesi, konuşma tanıma (ASR = otomatik konuşma tanıma), doğal dil için bir beyin (kurallar veya bir LLM) ve metinden sese dönüştürme (TTS) işlevlerini bağlayacaksınız. Birkaç komut dosyası, bir veya iki servis ve bazı dikkatli ses ayarları ekleyin ve kurallarınıza uyan, cebinizde taşıyabileceğiniz akıllı bir hoparlöre sahip olacaksınız.
Saçınızı yolmadan, sıfırdan Raspberry Pi'nizle konuşmaya kadar size rehberlik edelim. Parçaları, kurulumu, kodu, karşılaştırmaları, dikkat edilmesi gereken noktaları... her şeyi ele alacağız. 🌯
Bu makaleden sonra okumak isteyebileceğiniz diğer makaleler:
🔗 Yapay zekayı etkili bir şekilde nasıl inceleyebilirsiniz?
Bir çalışma yol haritası oluşturun, uygulama projeleri yapın ve ilerlemeyi takip edin.
🔗 Yapay zeka şirketi nasıl kurulur?
Sorunu doğrulayın, minimum uygulanabilir ürünü (MVP) oluşturun, ekibi kurun, ilk müşterileri edinin.
🔗 Yapay zekayı daha verimli olmak için nasıl kullanabilirsiniz?
Rutin görevleri otomatikleştirin, iş akışlarını kolaylaştırın ve yaratıcı çıktıyı artırın.
🔗 İşletmenize yapay zekayı nasıl entegre edebilirsiniz?
Yüksek etki yaratan süreçleri belirleyin, pilot uygulamalar gerçekleştirin, yatırım getirisini ölçün, ölçeklendirin.
Raspberry Pi ile İyi Bir Kendin Yap Yapay Zeka Asistanını Ne Oluşturur? ✅
-
Varsayılan olarak özeldir – mümkün olduğunca ses dosyalarını yerel tutun. Cihazdan neyin çıkacağına siz karar verirsiniz.
-
Modüler – Lego gibi bileşenleri değiştirebilirsiniz: uyandırma kelimesi motoru, ASR, LLM, TTS.
-
Uygun fiyatlı – çoğunlukla açık kaynaklı, piyasada bulunan mikrofonlar, hoparlörler ve bir Raspberry Pi.
-
Hacklenebilir – ev otomasyonu, kontrol panelleri, rutinler, özel beceriler mi istiyorsunuz? Çok kolay.
-
Güvenilir – servis tarafından yönetilir, otomatik olarak başlatılır ve dinlemeye başlar.
-
Eğlenceli olacak ; ses, süreçler ve olay odaklı tasarım hakkında çok şey öğreneceksiniz.
Küçük bir ipucu: Eğer Raspberry Pi 5 kullanıyorsanız ve daha ağır yerel modeller çalıştırmayı planlıyorsanız, sürekli yük altında klipsli bir soğutucu yardımcı olur. (Şüpheniz varsa, Pi 5 için tasarlanmış resmi Aktif Soğutucuyu seçin.) [1]
İhtiyacınız Olan Parçalar ve Aletler 🧰
-
Raspberry Pi : Performans açısından Pi 4 veya Pi 5 önerilir.
-
microSD kart : 32 GB ve üzeri önerilir.
-
USB mikrofon : Basit bir USB konferans mikrofonu harika iş görür.
-
Hoparlör : USB veya 3,5 mm hoparlör veya I2S amplifikatör HAT.
-
Ağ : Ethernet veya Wi-Fi.
-
İsteğe bağlı incelikler: kasa, aktif soğutucu , bas-konuş için basma düğmesi, LED halkası. [1]
İşletim Sistemi ve Temel Ayarlar
-
Raspberry Pi Imager ile Raspberry Pi OS'yi flaşlayın . Bu, istediğiniz ön ayarlarla önyüklenebilir bir microSD elde etmenin en basit yoludur. [1]
-
Öncelikle bilgisayarınızı başlatın, ağa bağlanın ve ardından paketleri güncelleyin:
sudo apt update && sudo apt upgrade -y
-
Ses temelleri
raspi-configaracılığıyla ayarlayabilirsiniz . USB ve HDMI ses, tüm modellerde desteklenir; Bluetooth çıkışı, Bluetooth'lu modellerde mevcuttur. [1] -
Cihazları doğrulayın:
arecord -l aplay -l
Ardından kayıt ve oynatmayı test edin. Ses seviyeleri garip görünüyorsa, mikrofonu suçlamadan önce mikserleri ve varsayılan ayarları kontrol edin.

Mimariye Genel Bakış 🗺️
Raspberry Pi ile mantıklı bir şu şekilde görünür:
Uyandırma kelimesi → canlı ses yakalama → ASR transkripsiyonu → niyet işleme veya LLM → yanıt metni → TTS → ses oynatma → MQTT veya HTTP üzerinden isteğe bağlı işlemler.
-
Uyandırma kelimesi : Porcupine küçük, doğru ve yerel olarak, anahtar kelime başına hassasiyet kontrolüyle çalışır. [2]
-
ASR : Whisper, ~680 bin saat boyunca eğitilmiş çok dilli, genel amaçlı bir ASR modelidir; aksanlara/arka plan gürültüsüne karşı dayanıklıdır. Cihaz içi kullanım için
whisper.cppyalın bir C/C++ çıkarım yolu sağlar. [3][4] -
Beyin : Seçim sizin – işlem gücüne bağlı olarak API üzerinden bulut tabanlı bir LLM, kural motoru veya yerel çıkarım.
-
TTS : Piper, mütevazı donanımlarda hızlı yanıtlar için yeterince hızlı bir şekilde yerel olarak doğal konuşma üretir. [5]
Hızlı Karşılaştırma Tablosu 🔎
| Alet | En İyisi İçin | Fiyatı yaklaşık olarak | Neden İşe Yarıyor? |
|---|---|---|---|
| Kirpi Uyanış Sözü | Sürekli dinleme tetikleyicisi | Ücretsiz seviye + | Düşük CPU, doğru, kolay bağlantılar [2] |
| Fısıltı.cpp | Pi üzerinde yerel ASR | Açık kaynak | İyi doğruluk, CPU dostu [4] |
| Daha Hızlı Fısıltı | CPU/GPU'da daha hızlı ASR | Açık kaynak | CTranslate2 optimizasyonları |
| Piper TTS | Yerel konuşma çıktısı | Açık kaynak | Hızlı sesler, birçok dil [5] |
| Bulut LLM API'si | Zengin akıl yürütme | Kullanıma dayalı | Yoğun işlem yükünü azaltır |
| Node-RED | Eylemleri düzenlemek | Açık kaynak | Görsel akışlar, MQTT uyumlu |
Adım Adım Oluşturma: İlk Ses Döngünüz 🧩
Uyandırma kelimesi için Porcupine, transkripsiyon için Whisper, yanıt için hafif bir "beyin" fonksiyonu (tercih ettiğiniz LLM ile değiştirin) ve konuşma için Piper kullanacağız. Basit tutun, sonra geliştirin.
1) Bağımlılıkları yükleyin
sudo apt install -y python3-pip portaudio19-dev sox ffmpeg pip3 install sounddevice numpy
-
Porcupine: diliniz için SDK/bağlantıları alın ve hızlı başlangıç talimatlarını izleyin (erişim anahtarı + anahtar kelime listesi + ses çerçeveleri →
.process). [2] -
Whisper (CPU dostu): 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
Yukarıdakiler projenin hızlı başlangıcını yansıtıyor. [4]
Python'ı mı tercih ediyorsunuz?
faster-whisper(CTranslate2), orta seviye işlemcilerde genellikle standart Python'dan daha hızlı çalışır.
2) Piper TTS'yi kurun
git clone https://github.com/rhasspy/piper cd piper make # İstediğiniz bir ses modelini indirin, örneğin en_US-amy echo "Merhaba." | ./piper --model voices/en/en_US-amy-medium.onnx --output_file hello.wav aplay hello.wav
Piper, birden fazla ses/dil seçeneğiyle cihaz içi metin okuma (TTS) için tasarlanmıştır. [5]
3) Python'da minimal bir yardımcı döngü
Bilinçli olarak kompakt: uyandırma ifadesini (taslak) bekler, kaydeder, whisper.cpp , bir yanıt (yer tutucu) oluşturur ve ardından Piper aracılığıyla konuşur. Yer tutucuyu favori LLM'niz veya kural mantığınızla değiştirin.
import os, subprocess, wave import sounddevice as sd WAKE_WORD = "hey computer" # üretimde Porcupine ile değiştirin [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(saniye * ÖRNEKLEME_ORANI), örnekleme_oranı=ÖRNEKLEME_ORANI, kanallar=KANALLAR, veri_türü='int16') sd.wait() with wave.open(path, 'wb') as w: w.setnchannels(KANALLAR); 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 "Bulutları göremiyorum ama hava güzel olabilir. Her ihtimale karşı bir ceket getirin." "Şöyle dediniz: " + prompt döndür 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("Asistan hazır. Test etmek için uyandırma ifadesini yazın.") 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("Kullanıcı:", text); print("Asistan:", reply) speak(reply) else: print("Döngüyü test etmek için uyandırma ifadesini yazın.")
Gerçek uyandırma kelimesi tespiti için Porcupine'ın akış dedektörünü entegre edin (düşük CPU, anahtar kelime başına hassasiyet). [2]
Gerçekten Önemli Ses Ayarları 🎚️
Birkaç küçük düzeltme, asistanınızın 10 kat daha akıllı hissetmesini sağlayacak:
-
Mikrofon mesafesi : Birçok USB mikrofon için ideal mesafe 30-60 cm'dir.
-
Seviyeler
raspi-configaracılığıyla çıkış aygıtını ve seviyelerini yönetebilirsiniz . [1] -
Oda akustiği : Sert duvarlar yankıya neden olur; mikrofonun altına yumuşak bir mat koymak yardımcı olur.
-
Uyandırma kelimesi eşiği : çok hassas → hayalet tetikleyiciler; çok katı → plastiğe bağıracaksınız. Porcupine, hassasiyeti anahtar kelime başına ayarlamanıza olanak tanır. [2]
-
Termaller : Pi 5'te uzun süreli transkripsiyonlar, sürekli performans için resmi aktif soğutucudan faydalanır. [1]
Oyuncaktan Ev Aletine Geçiş: Servisler, Otomatik Çalıştırma, Sağlık Kontrolleri 🧯
İnsanlar komut dosyalarını çalıştırmayı unutur. Bilgisayarlar ise nazik olmayı unutur. Döngünüzü yönetilen bir hizmete dönüştürün:
-
Bir systemd birimi oluşturun:
[Unit] Description=DIY Voice Assistant After=network.target sound.target [Service] User=pi WorkingDirectory=/home/pi/assistant ExecStart=/usr/bin/python3 /home/pi/assistant/assistant.py Restart=always RestartSec=3 [Install] WantedBy=multi-user.target
-
Etkinleştirin:
sudo cp assistant.service /etc/systemd/system/ sudo systemctl daemon-reload sudo systemctl enable --now assistant.service
-
Kütük kuyrukları:
journalctl -u assistant -f
Artık açılışta otomatik olarak başlıyor, çökme durumunda yeniden başlıyor ve genel olarak bir ev aleti gibi davranıyor. Biraz sıkıcı, ama çok daha iyi.
Beceri Sistemi: Evde Gerçekten Faydalı Hale Getirin 🏠✨
Sesli giriş ve çıkış işlemleri tamamlandıktan sonra, eylemleri ekleyin:
-
Niyet yönlendirici : Yaygın görevler için basit anahtar kelime yönlendirmeleri.
-
Akıllı ev : Olayları MQTT'ye yayınlayın veya Home Assistant'ın HTTP uç noktalarını çağırın.
-
Eklentiler
set_timer,what_is_the_time,play_radio,run_scenegibi hızlı Python fonksiyonları .
Bulut tabanlı bir LLM (Yerel Öğrenme Modülü) devrede olsa bile, hız ve güvenilirlik için öncelikle belirgin yerel komutları yönlendirin.
Yalnızca Yerel Bağlantı mı Yoksa Bulut Desteği mi: Farklarını Hissedeceğiniz Değiş tokuşlar 🌓
Yalnızca yerel
Artıları: özel, çevrimdışı, öngörülebilir maliyetler.
Eksileri: daha ağır modeller küçük kartlarda yavaş olabilir. Whisper'ın çok dilli eğitimi, onu cihazda veya yakındaki bir sunucuda tutarsanız sağlamlığa yardımcı olur. [3]
Bulut tabanlı destek
: Artıları: güçlü mantıksal çıkarım, daha geniş bağlam pencereleri.
Eksileri: verilerin cihazdan ayrılması, ağ bağımlılığı, değişken maliyetler.
Genellikle hibrit bir çözüm kazanır: uyandırma kelimesi + ASR yerel → akıl yürütme için bir API çağrısı → TTS yerel. [2][3][5]
Sorun Giderme: Garip Hatalar ve Hızlı Çözümler 👾
-
Uyandırma kelimesi yanlış tetiklemeler : Hassasiyetleri düşürün veya farklı bir mikrofon deneyin. [2]
-
ASR gecikmesi : daha küçük bir Whisper modeli kullanın veya
whisper.cppyayın bayraklarıyla derleyin (-j --config Release). [4] -
Kesik kesik metin okuma : Sık kullanılan ifadeleri önceden oluşturun; ses cihazınızı ve örnekleme hızınızı onaylayın.
-
Mikrofon algılanmadı :
arecord -lve mixers komutlarını kontrol edin. -
Termal kısıtlama : Sürekli performans için Pi 5'te resmi Aktif Soğutucuyu kullanın. [1]
Mutlaka Okumanız Gereken Güvenlik ve Gizlilik Notları 🔒
-
APT ile Pi'nizi güncel tutun.
-
Bulut API'lerinden herhangi birini kullanıyorsanız, gönderdiğiniz verileri kaydedin ve kişisel bilgilerinizi öncelikle yerel olarak gizlemeyi düşünün.
-
Hizmetleri en az ayrıcalıkla çalıştırın; gerekmedikçe ExecStart'ta
sudo -
yalnızca yerel erişim modu veya sessiz saatler sağlayın
Farklı Yapım Seçenekleri: Sandviç Gibi Karıştırıp Eşleştirin 🥪
-
Ultra-yerel : Kirpi + whisper.cpp + Piper + basit kurallar. Özel ve sağlam. [2][4][5]
-
Hızlı bulut desteği : Porcupine + (daha küçük yerel Whisper veya bulut ASR) + yerel TTS + bulut LLM.
-
Ev otomasyon merkezi : Rutinler, sahneler ve sensörler için Node-RED veya Home Assistant akışları ekleyin.
Örnek Beceri: MQTT ile Işıkları Açma 💡
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() # if "turn on the lights" in text: set_light("on")
"Oturma odası lambasını aç," gibi bir seslendirme ekleyin ve kendinizi bir sihirbaz gibi hissedeceksiniz.
Bu Yığın Pratikte Neden İşe Yarıyor? 🧪
-
Porcupine, küçük panolarda uyandırma kelimesi algılamada verimli ve doğru olduğundan sürekli dinlemeyi mümkün kılıyor. [2]
-
Whisper'ın geniş, çok dilli eğitimi onu çeşitli ortamlara ve aksanlara karşı dayanıklı hale getiriyor. [3]
-
whisper.cpp,bu gücü Pi gibi yalnızca CPU kullanan cihazlarda kullanılabilir halde tutar. [4] -
Piper, bulut tabanlı bir TTS'ye ses göndermeden yanıtları hızlı tutar. [5]
Çok uzundu, okumadım
Raspberry Pi ile modüler, özel bir DIY yapay zeka asistanı oluşturmak için, uyandırma kelimesi için Porcupine'ı, ASR için Whisper'ı ( whisper.cpp ), yanıtlar için seçtiğiniz beyni ve yerel TTS için Piper'ı birleştirin. Bunu bir systemd servisi olarak paketleyin, sesi ayarlayın ve MQTT veya HTTP eylemlerini bağlayın. Sandığınızdan daha ucuz ve garip bir şekilde kullanımı keyifli. [1][2][3][4][5]
Referanslar
-
Raspberry Pi Yazılımı ve Soğutma – Raspberry Pi Imager (indir ve kullan) ve Pi 5 Aktif Soğutucu ürün bilgileri
-
Raspberry Pi Imager: daha fazla bilgi edinin
-
Aktif Soğutucu (Pi 5): daha fazla bilgi edinin
-
-
Porcupine Wake Word – SDK ve hızlı başlangıç (anahtar kelimeler, hassasiyet, yerel çıkarım)
-
Whisper (ASR modeli) – Çok dilli, sağlam ASR modeli, yaklaşık 680 bin saatlik eğitimle geliştirilmiştir.
-
Radford ve diğerleri, Büyük Ölçekli Zayıf Denetim (Whisper) Yöntemiyle Sağlam Konuşma Tanıma: daha fazla bilgi edinin
-
-
whisper.cpp – Komut satırı arayüzü ve derleme adımlarıyla işlemci dostu Whisper çıkarımı
-
Piper TTS – Çoklu ses/dil desteğiyle hızlı, yerel sinirsel metinden metne dönüştürme (TTS) hizmeti.