Teknoloji

NVIDIA Jetson Üzerinde Bir AI Ses Asistanı Oluşturma – Ses Aktifleştirme & Konuşmadan Metne

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:

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_VOICE tespitin 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

Leave a Reply

Your email address will not be published. Required fields are marked *