Akıllı evlerde ve robotikte ses arayüzleri daha yaygın hale geldikçe, geliştiriciler giderek düşük gecikmeli, özel ve çevrimdışı AI ses asistanları arıyor. Bu eğitimde, NVIDIA Jetson platformunda tamamen yerel bir ses asistanı nasıl oluşturacağınızı göstereceğiz. Bulut tabanlı hizmetlerin aksine, bu asistan tamamen kenar donanımında çalışır, gerçek zamanlı performans, geliştirilmiş veri gizliliği ve internet bağımlılığı olmadan sunar. Burada nasıl inşa edeceğimize odaklanacağız:
- Mikrofon girişini yakalamak
- Bir hotword (uyandırma kelimesi) ile etkinleştirmek
- Whisper, açık kaynaklı bir ses tanıma modeli kullanarak konuşmayı metne dönüştürmek
Akıllı ev cihazları, hizmet robotları veya kenar AI prototipleri oluşturuyorsanız, bu kılavuz Jetson Orin ve açık kaynaklı araçlar kullanarak güçlü bir ses hattı dağıtmanıza yardımcı olacaktır.
🛠️ Gerekli Donanım
Takip etmek için şunlara ihtiyacınız olacak:
- NVIDIA Jetson kenar AI bilgisayarı (örneğin, reComputer Super Orin NX 16GB veya benzeri)
- Mikrofon dizisi (örneğin, ReSpeaker 4-Mic USB Array)
- Hoparlörler (USB veya HDMI çıkışı)


Tüm işleme tamamen çevrimdışı, doğrudan Jetson cihazında yapılacaktır.
🎙️ Adım 1: Ses Girişini Yakala & Uyanma Kelimesini Tespit Et
Mikrofon girişi ve hotword tespiti için hafif bir C++ uygulaması kullanacağız.
🔧 Bağımlılıkları Yükle
Jetson’unuzda aşağıdaki komutları çalıştırın:
sudo apt install nlohmann-json3-dev libcurl4-openssl-dev mpg123
git clone https://github.com/jjjadand/record-activate.git
🔧 Mikrofon Ayarlarını Yapılandır
respeaker.cpp dosyasını açın ve bu parametreleri mikrofonunuza ve kullanım durumunuza göre ayarlayın:
#define SAMPLE_RATE 44100
#define CHANNELS 2
#define RECORD_MS 20000
#define SILENCE_MS 4000
#define ENERGY_VOICE 2000
#define DEVICE_NAME "plughw:2,0" // Bunu almak için 'arecord -l' kullanın
ENERGY_VOICEtespitin ne kadar hassas olduğunu tanımlar- Mikrofonunuzun donanım kimliğine göre
DEVICE_NAME‘i değiştirin
🏗️ Kaydedici Oluştur
cd record-activate/build
cmake .. && make
Bu, ses tespiti için bir (record_lite) ve Whisper’a ses göndermek için bir diğeri (wav2text) olmak üzere iki ikili dosya oluşturacaktır.
🧠 Adım 2: Konuşmayı Metne Dönüştürmek için Whisper’ı Yerel Olarak Çalıştır
OpenAI’nin Whisper modelinin hafif ve hızlı bir C++ uygulaması olan whisper.cpp‘yı kullanacağız.
🔽 İndir & Derle
git clone https://github.com/ggerganov/whisper.cpp.git
cd whisper.cpp
sh ./models/download-ggml-model.sh base.en
cmake -B build && cmake --build build -j
🎯 İsteğe Bağlı: Modeli Kuantize Et
Hafıza kullanımını azaltmak için:
./build/bin/quantize models/ggml-base.en.bin models/ggml-base.en-q5_0.bin q5_0
Bu, İngilizce Whisper modelinin daha küçük ve daha hızlı bir versiyonunu oluşturur.
🔁 Adım 3: Ses Girişini Whisper Transkripsiyonu ile Bağla
🔌 Whisper Sunucusunu Başlat
./build/bin/whisper-server -m models/ggml-base.en-q5_0.bin -t 8
Bu, .wav dosyalarını kabul eden ve transkribe edilmiş metni döndüren yerel bir HTTP sunucusu çalıştırır.
🗣️ Ses Asistanı Hattını Başlat
record-activate klasörüne geri dönün:
pasuspender -- sudo ./wav2text
pasuspender -- sudo ./record_lite
- Hotword tespit edildiğinde, sistem ses girişini yakalar ve Whisper’a gönderir
- Transkribe edildikten sonra, asistan bir aktivasyon sesi çalar (
activate.mp3) - Daha sonra, transkribe edilen komutu AI eylemlerini tetiklemek veya yerel bir dil modeline göndermek için kullanabilirsiniz
✅ Şu Anda Çalışanlar
Bu noktada, aşağıdakileri yapan bir yerel ses asistanı oluşturdunuz:
- Bir hotword için dinler
- Sesinizi yakalar
- Bunu gerçek zamanlı olarak metne dönüştürür
- Tamamen çevrimdışı, bulut bağımlılığı olmadan çalışır
🧭 Sonraki Adımlar
- Komutları anlamak ve yanıt vermek için kuantize edilmiş bir LLM çalıştırmak
- metinden sese (TTS) çıktısı eklemek
- Ses kullanarak akıllı ev cihazlarını veya API’leri kontrol etmek
