Raspberry Pi 4 Üzerinde Tamamen Çevrimdışı Bir Sesli Asistan İnşa Etmek

İçindekiler
Ne İnşa Ediyoruz?
Bulut servislerine, harici API anahtarlarına veya dakika başına faturalandırmaya ihtiyaç duymadan, tamamen Raspberry Pi 4 üzerinde çalışan çevrimdışı bir sesli asistan geliştiriyoruz. Kullanıcı "Hey Assistant" diyerek cihazı uyandırır ve ardından gelen isteği iletir. Sistem iki temel etkileşim yolu sunar:
- Kullanıcı 14 sabit komuttan birini ("ışıkları aç", "müzik çal", "durdur" vb.) söyler; cihaz bunu anında tanıyıp ilgili aksiyonu çalıştırır.
- Kullanıcı bu kümenin dışındaki serbest ifadeleri ("haberleri oku", "mağaza kaçta açılıyor") söyler; cihaz konuşmayı metne dönüştürerek açık uçlu sorguyu işler.
Bu mimaride üç farklı model birlikte görev alır:
- Wake-Word (Uyandırma Kelimesi) Dedektörü: Mikrofonu 7/24 kesintisiz dinleyen, her zaman açık ve işlemci maliyeti son derece düşük temel modeldir.
- Keyword Spotter (KWS - Anahtar Kelime Yakalayıcı): Uyandırma kelimesinin ardından 1-2 saniye devreye girerek sabit kelime dağarcığıyla hızlı eşleşme arar.
- Akış Tabanlı ASR (Otomatik Konuşma Tanıma): Yalnızca KWS eşleşme bulamadığında açık uçlu konuşmayı metne döker; daha ağır bir modeldir ancak sadece gerektiğinde çalışır.
Bileşenler üç basit pip install komutuyla kurulur ve internet gerektirmeden 35 dolarlık bir Raspberry Pi 4 donanımında koşar. Python, Node.js, Go ve C kodlarıyla desteklenen bu yaklaşım, tek bir çalışma zamanında üç ayrı SDK kullanarak maliyeti minimumda tutmanın pratik bir yazılım mimarisini sunar.
Neden Sıralı Ayıklama (Triage: WW -> KWS -> ASR) Deseni?
Yazılım geliştirme ve uç bilişim (edge computing) optimizasyonunda temel prensip, en ağır hesaplama yükünü sadece zorunlu anlarda devreye sokmaktır. Wake-word modeli yaklaşık 100 KB boyutundadır ve Pi Zero 2 W üzerinde tek bir A53 çekirdeğinin sadece %5,3'ünü tüketir; Pi 4'ün 64-bit Cortex-A72 çekirdeklerinde bu maliyet daha da düşerek diğer süreçleri etkilemeden kesintisiz arka plan dinlemesi sağlar.
Wake-word yalnızca tetikleyici kelimenin söylenip söylenmediğini anlar. Ardından doğrudan ASR başlatmak, basit bir dize karşılaştırması (strcmp) yerine karmaşık bir regex çalıştırmak gibidir. Kullanıcı isteklerinin büyük bölümü dar bir komut kümesinde kaldığı için, 16 kHz mono sesi 32 ms çerçevelerle 14 sınıfa ayıran KWS işlemi ucuza ve hızla sonuçlandırır.
Triage (sıralı ayıklama) akış mantığı şu adımları izler:
- WW Dinleme Durumu: Wake-word arka planda sürekli çalışarak "Hey Assistant" ifadesini bekler.
- WW Tetiklendi: Sistem KWS moduna geçer; kullanıcıya komutu söylemesi için yaklaşık 2 saniye tanınır.
- KWS Eşleşti: Komut aksiyonu çalıştırılır (ışıkları aç, durdur vb.) ve sistem yeniden 1. duruma döner.
- KWS Eşleşmedi: Sistem ASR modeline geri düşer (fallback); sessizlik veya zaman aşımına kadar açık uçlu konuşma metne çevrilir.
- ASR Tamamlandı: Elde edilen metin yerel bir dil modeline, parser'a veya arka uca iletilir; işlem bitince sistem yeniden 1. duruma döner.
Bu yapı, bilinen durumlar için doğrudan dallanma, bilinmeyenler içinse default çalışan bir switch-case mantığı sunarak edge cihazlarda maksimum kaynak verimliliği sağlar.
Orijinal kaynağa buradan ulaşabilirsiniz.
Bu konuyu derinlemesine öğrenmek isterseniz: Modeller: Hangisi, Ne Zaman? modülüne göz atın.
Bu konuyu daha derinlemesine öğrenmek ister misin?
Edumints'teki ücretsiz kursları incele ve bugün başla.
Kurslara Göz At →