Üç yapay zekâ, 36 saniyelik bir video

Salvor sayfamdaki animasyonun sesli kısa bir videosunu istedim. İşi üç model paylaştı: Codex çizdi ve besteledi, Grok ses ve müzik tariflerini yazdı, Claude ölçtü, düzeltti ve birleştirdi. İşin zor yanı, hiçbirinin dinleyememesiydi.
Animasyon
Fikir "100 ajan, tek repo beyni" idi ve Salvor'un gerçekte nasıl çalıştığına dayanıyordu. Claude Code, Codex ve Gemini CLI oturumları kendi giriş dosyalarından (CLAUDE.md, AGENTS.md, GEMINI.md) girip depodaki aynı .salvor/ klasörünü okuyor. Oturum önce kısa güncel durumu okuyor, uzun arşivi yalnızca gerektiğinde açıyor. Bilinen bir hata (LF:) aynı yolun yeniden denenmesini durduruyor. Yeni bilgi bir insanın "evet" demesini bekliyor ve depoya incelenmiş bir PR ile giriyor.
Codex bunu satır içi SVG ve CSS animasyonu olarak tasarladı. İlk sürüm kendi kontrollerinden geçti ama gerçek tarayıcıda bozuldu: 100 nokta, boyutu verilmemiş sembollere <use> ile bağlanmıştı ve Chromium bunları sayfanın üstünde dev renk lekeleri olarak çizdi. Codex'in çalışma ortamı tarayıcı başlatamıyor, bu yüzden bunu hiç görmedi. Claude ekran görüntüsünde fark etti, noktaları basit şekillerle değiştirdi ve çizgileri hiçbir etiketin üstünden geçmeyecek şekilde yeniden çizdi. Yine Codex'in yaptığı ikinci sürüm, oturumları üç etiketli gruba ayırdı ve hafızayı bir GitHub depo kartının içine taşıdı.
Kulaksız ses
Videonun sesi görüntüyle birebir eşleşmeliydi. Animasyon sabit 18 saniyelik bir CSS döngüsü olduğu için her olayın zamanı belli: paketler 0,72. saniyede çıkıyor, hata 6,30'da engelleniyor, birleşme 14,94'te gerçekleşiyor. Claude bu zamanları animasyon kodundan okuyup üç modelin ortak kullandığı bir zaman çizelgesine yazdı.
Üç modelden hiçbiri sesi duyamıyor. Bu yüzden her tur aynı sırayla ilerledi: üret, ölç, sonra bir insan dinlesin. Ölçümler WAV dosyasından çıkan düz sayılardı:
- her sesin ne zaman başladığı, zaman çizelgesine göre
- sesin soldan mı (ajanların olduğu taraf) sağdan mı (deponun olduğu taraf) geldiği
- enerjinin bas, orta ve tiz frekanslara nasıl dağıldığı
- ses düzeyi, tepe noktası ve parça boyunca sesin ne kadar yükselip alçaldığı
Ölçümler zamanlama ve denge hatalarını yakalıyor. Bir şeyin kulağa hoş gelip gelmediğini söylemiyor. O kısım bende kaldı.
Turlar nasıl geçti
- Ses efektleri, 1. tur (Claude). Her olaya sentezlenmiş tıklar ve çınlamalar. Zamanlama doğruydu, ama bana göre girişler ve çıkışlar birbirinden zor ayırt ediliyordu.
- 2. tur (Grok tarifi, Codex kodu). Grok bir ses tasarımı tarifi yazdı. Codex bunu "çıkış" (sol) ve "varış" (sağ) için farklı seslerle kurdu; her paketin hareketiyle soldan sağa kayan hafif bir hava sesi ekledi. Bu oldu.
- Fon müziği, üç deneme. Elektronik bir altyapı rahatsız ediciydi. Yumuşak piyanolu sürüm beni ikna etmedi. Gitar ve çellolu oda müziği boğuk çıktı: analiz 6 kHz'in üstünde neredeyse hiçbir şey göstermedi.
- Codex'in kendi bestesi. Daha parlak, akılda kalan bir parça. Enerjisi iyiydi, ama istediğim hava değildi.
- Film tarzı. Ton nihayet doğru geldi, ama bir şeyler eksikti.
Tartışma turu
Son adımda üç model film parçasını tartıştı. Claude parçayı ölçtü ve dört somut sorun buldu. Seste tiz yoktu: enerjinin neredeyse tamamı 150 Hz ile 1 kHz arasındaydı. Yükseliş bölümü girişten daha sessizdi. On bir görsel andan yalnızca ikisi duyuluyordu. Tema da bir melodi değil, sırayla çalınan akor notalarıydı. Grok bir orkestra düzenleyicisi gözüyle eleştirdi ve her düzeltme için sayı verdi. Codex her maddeye cevap verdi, katıldığını ya da katılmadığını gerekçesiyle yazdı, sonra 2. sürümü üretti.
| 1. sürüm | 2. sürüm | |
|---|---|---|
| 1–2,5 kHz enerjisi | −14,6 dB | −5,8 dB |
| 2,5–5 kHz enerjisi | −26,8 dB | −13,8 dB |
| Stereo genişlik (yan/orta) | 0,34 | 0,54 |
| Ses düzeyi aralığı | 3,7 LU | 8,6 LU |
| Duyulan görsel anlar | 11'de 2 | 11'de 11 |
- sürüm sevdiğim tonu korudu ve sayıların gösterdiği yerleri düzeltti. Seçtiğim sürüm bu oldu.
Salvor bu işe ne kattı
Bu iş hafızasını Salvor ile tutan projelerin içinde yapıldı ve bu birkaç somut yerde görüldü:
- Oturum bağlam sıfırlamasını atlattı. İşin ortasında konuşma özetlenip kısaltıldı. Sonraki oturum önce her projenin kısa durum dosyasını (
active_state.md) açtı. Hangi sürümün canlıda olduğunu, yayına almanın nasıl yapıldığını ve neyin açık kaldığını ben tekrar anlatmadan bildi. - Eskimiş bir bilgi yakalandı. Oturum başında bir güncellik kontrolü hafızayı canlı siteyle karşılaştırdı ve hafızada hâlâ eski bir canlı sürümün yazdığını bildirdi. Bunun üstüne bir şey kurulmadan düzeltildi.
- Sahip kuralları hatırlatılmadan uygulandı. Kurallar depodaki
DOMAIN_REF.mddosyasında duruyor: Salvor dışında proje adı yok, bütün çizimler aynı hareketli çizgi stilinde, her makalenin seriyle uyumlu kendi kapağı var. Bu makalenin kapağı da o anda biri istediği için değil, kural orada yazılı olduğu için yapıldı. - Codex aynı hafızadan başladı. Her talimat Codex'i aynı durum ve kural dosyalarına yönlendirdi. Böylece Claude ile aynı sınırlar içinde çalıştı: yalnızca yerelde, commit yok, yayın yok.
Bu oturum boyunca Salvor ile ilgili hiçbir sorun yaşamadım. Salvor'un işi, bir projenin öğrendiklerini saklamak ve her yeni oturuma aktarmak; bunu baştan sona sorunsuz yaptı. Yeni üretilmiş bir çizimin tarayıcıda nasıl göründüğünü ya da bir müziğin kulağa nasıl geldiğini kontrol etmek zaten onun görevi değil; o kısmı tarayıcı ve ben yaptık. Bu oturumda öğrenilen SVG dersi bir sonraki talimata yazıldı. Onayladığımda projenin öğrenilmiş hatalar listesine de girecek ve sonraki oturumlar onu da hatırlayacak.
Bundan ne çıkardım
- Sonucu göremeyen ya da duyamayan bir modelin yanında, görebilen birine ihtiyaç var. SVG hatası da müzikle ilgili her karar da bir tarayıcıdan ve bir insandan geldi, modelin kendi kontrollerinden değil.
- Bütün modellere aynı bilgiyi verin. Gerçek animasyon kodundan çıkarılmış ortak zaman çizelgesi sayesinde ses, her sürümde görüntüyle eşleşti.
- Düzeltme istemeden önce hissi sayıya çevirin. "Bir şeyler eksik", "1 kHz üstünde enerji yok, yükseliş yok, 11 andan 2'si duyuluyor" haline geldi. Düzeltme ancak ondan sonra işe yaradı.
- Birbirlerine itiraz etmelerine izin verin. Codex'ten Claude'un ve Grok'un maddelerini doğrudan uygulamak yerine her birine cevap vermesini istemek, iki listenin tek başına vereceğinden daha iyi bir plan çıkardı.
Seslerin hepsi Python'da sıfırdan sentezlendi; hazır kayıt kullanılmadı, var olan bir şarkı taklit edilmedi. Animasyonun canlı hali Salvor sayfasında.
Yeni makaleleri e-postayla alın
Yalnızca yeni bir makale çıktığında. Reklam yok. Ayrıntılar →