EYDefterEmre Yakut
← tüm yazılar
Ses & ışık · AI & Claude · Sistem · derin

Kim konuştu, nereden geldi, ne yapmalı — üçü ayrı soru

NEO evde sürekli dinleyen bir asistan. İlk hatam bu üç soruyu tek soru sanmaktı. Ayırınca hem doğruluk arttı hem de sistemin nerede yanıldığı görünür oldu.

mikrofon sürekli akış VAD uyarlanan eşik kim? konuşmacı ayrımı nereden? yön + yüz ne yapmalı? niyet üçünü tek soruda sormak, üçünü de yanlış cevaplamaktıreşik sabit olursa: klima açıkken sürekli konuşuyor sanır, fısıltıyı hiç duymaz.çözüm: gürültü tabanını sürekli ölç, eşiği tabanın üstünde gezdir — ölçümle kalibre et.

Evde sürekli açık duran, adını duyunca uyanan, konuştuğunda cevap veren bir asistan. Uzun vadeli bir proje; ilk faz ses döngüsüydü.

İlk sürüm şöyle çalışıyordu: mikrofonu dinle, ses varsa kaydet, metne çevir, cevapla. Ve sürekli yanlış yapıyordu.

Hata: üç soruyu tek soru sanmak

“Ses geldi mi?” sorusu aslında üç ayrı sorunun içine gizlenmişti:

  1. Konuşma var mı? — klima değil, televizyon değil, insan sesi.
  2. Kim konuşuyor? — ben mi, başkası mı, asistanın kendi sesi mi.
  3. Bana mı söylendi? — odadaki iki kişi kendi aralarında konuşuyor olabilir.

Üçünü tek eşikle çözmeye çalışınca hiçbiri düzgün çalışmıyordu. Ayırdım.

1. Konuşma var mı: eşiği sabitleme

İlk sürümde sabit bir enerji eşiği vardı. İki farklı şekilde bozuluyordu:

  • Klima açıkken taban gürültü eşiğin üstüne çıkıyor, sistem sürekli “konuşma var” sanıyor ve durmadan kayıt açıyordu.
  • Gece sessizlikte normal tonla söylenen bir cümle bazen eşiğin altında kalıyordu — çünkü eşik gürültülü ortama göre ayarlanmıştı.
uyarlanan eşik
eşik(t) = gürültü_tabanı(t) + pay

Gürültü tabanı, sessiz pencerelerin yavaş hareketli ortalamasından sürekli güncelleniyor. Klima açılınca taban yükseliyor, eşik onunla birlikte yükseliyor.

Bir de kalıcılık şartı: eşiğin üstünde kalan tek bir pencere yetmiyor, art arda birkaç pencere gerekiyor. Bu, kapı çarpması ve klavye sesi gibi ani tepe değerlerini eliyor.

Ama asıl kritik olan, eşiği tahmin etmeyi bırakıp ölçmek oldu. Birkaç ortamda gerçek kayıt aldım — sessiz oda, klima açık, televizyon açık, mutfakta su sesi — ve payı bu kayıtlar üzerinde belirledim. Uydurulmuş bir sabit yerine ölçülmüş bir sabit.

2. Kim konuşuyor

Burada kimlik tespiti gerekmiyordu — ayrım gerekiyordu. “Bu cümleyi A söyledi, şunu B” demek yeterli.

[00:03] konuşmacı_1 : yarın saat kaçta çıkıyoruz
[00:06] konuşmacı_2 : dokuz gibi
[00:09] konuşmacı_1 : neo, dokuza alarm kur

Üçüncü satır asistana ait; ilk ikisi değil. Ayrım olmadan üçü de aynı akışta geliyor ve sistem hepsine cevap vermeye çalışıyor.

en sinsi konuşmacı: sistemin kendisi

Asistan cevabını hoparlörden verdiğinde o ses mikrofona geri giriyor ve yeni bir komut olarak işleniyor. Sistem kendi kendisiyle konuşmaya başlıyor.

Çözüm iki katmanlı: konuşurken girişi bastırmak, ve kendi çıktısının metnini geldiğinde tanıyıp elemek. İkisi de gerekli — bastırma tek başına gecikmeli yankıyı yakalamıyor.

3. Bana mı söylendi

En zoru ve tek sinyalle çözülemiyor. Birkaç zayıf işaret birleştiriliyor:

işaretne söylergüvenilirlik
Uyandırma sözcüğüdoğrudan hitapyüksek
Yönses cihaza mı dönükorta
Yüzkamerada birisi cihaza mı bakıyororta
Cümle yapısıemir kipi mi, sohbet midüşük

Uyandırma sözcüğü en güçlüsü ama insanlar her cümlede kullanmıyor — bir kere söyleyip üç cümle konuşuyorlar. O yüzden uyandırmadan sonra kısa bir “dinleme penceresi” açılıyor ve o pencerede eşik düşüyor.

Hatırlamak ve doğrulamak

Konuşmalar ve asistanın kendi söyledikleri diske yazılıyor. Bir asistan söylediğini hatırlamıyorsa aynı şeyi iki kez söylüyor, çelişiyor ve güven kaybediyor.

Bir de çıktı tarafında bir süzgeç var. Ev kontrolüne bağlı bir sistemde bu teorik bir kaygı değil — “ışığı kapattım” deyip kapatmamak, kapatmamaktan daha kötü.

Kural: bir eylem bildirilmeden önce gerçekleştiği doğrulanır. Cihaz cevap vermediyse asistan “kapattım” demiyor, “ulaşamadım” diyor. Bu, “kaynağı olmayan alan ekrana çıkmaz” kuralının ses tarafındaki karşılığı.

Ve izin katmanı seçimlik değil

Bu sistemin eriştiği şeyler: mikrofon, kamera, e-posta, ev cihazları ve kod yazma yetkisi.

Bu birleşim izin katmanını ve denetim günlüğünü zorunlu kılıyor. Hangi eylemin ne zaman, hangi istek üzerine yapıldığı kayıt altında. “Sonra eklerim” denecek bir şey değil — sonradan eklenen denetim geçmişi kapsamıyor.

Ne öğrendim

Bir problem çözülmüyorsa, çoğu zaman yanlış bölünmüştür. “Ses geldi mi” tek bir soru gibi duruyordu; üçe ayırınca her parçanın kendi doğru çözümü ortaya çıktı.

Ve her parça ayrı ayrı ölçülebilir hale geldi. Birleşikken “bazen yanlış yapıyor” diyordum; ayrıldıktan sonra hangi katmanın yanıldığını görebiliyorum.

Ses & ışıkAI & ClaudeSistem