Otomatik Algılama Yanılıyor: Dilini Sabitle

Dikte sürekli yanlış dilde mi düşüyor? Otomatik algılama iki dilli konuşmada tasarımı gereği savruluyor. Dilini bir kez sabitle, sabit kalsın.

Teodor Deleanu10 Temmuz 20266 dk okuma

Birden fazla dilde dikte ediyorsan bu hatayı görmüşsündür. Rumence bir cümle söylüyorsun ve transkript sesletim olarak bozulmuş İngilizce dönüyor — gerçek kelimeler, hiçbiri seninki değil. Ya da cümlenin ortasında sapıyor: ilk yarı doğru dilde, ikinci yarı modelin geçtiğine karar verdiği bir şeyde. Ya da kişisel favorim, karışık alfabe çorbası — model harf harf riski dağıtmış gibi, aralarına birkaç Kiril harfi serpiştirilmiş Latin karakterler.

Bu, tek bir ürüne dair bir şikâyet değil. Keebye'ın İngilizceye göre ayarlı varsayılanı dahil, otomatik dil algılamanın öngörülebilir bir hata biçimi. Aksanlı İngilizce konuşanları ve gün boyu diller arasında geçen herkesi vuruyor. Slack'i Lehçe, commit mesajları İngilizce olan iki dilli bir geliştirici, otomatik algılamaya tam olarak en kötü kaldırdığı karışık sinyalleri veriyor.

Şikâyetin ikinci yarısı daha sessiz ama bir o kadar gerçek: bir dil ayarı var olduğunda bile çoğu zaman gömülü oluyor. Üç menü derinde, bir motor seçicinin arkasında, adında dil geçmeyen bir anahtarın ötesinde. Günde yirmi kez dil değiştiriyorsan gömülü bir ayar işlevsel olarak ayar değil demektir.

Savrulmanın neden olduğunu açıklamak istiyorum — kendi ürünümün savaş hikâyesiyle, çünkü Keebye'ın da çözümü bulmadan önce bu sorunu vardı — sonra da gerçek bir çözümün neye benzediğini göstermek.

Otomatik algılama neden savruluyor (ve neden tam olarak bir hata değil)

Dürüst mekaniği şöyle. Modern konuşma modelleri dil tanımlamayı çözümlemenin bir parçası olarak sessizce yapıyor. Model dinliyor, ne dilinde duyduğuna dair içsel bir tahmin oluşturuyor ve o tahmine göre çözümlüyor. Ses temiz, aksansız ve tek dilli olduğunda bu o kadar iyi çalışıyor ki hiç aklına gelmiyor.

Şimdi ona gerçek konuşmayı ver. Bir aksan ünlüleri başka bir dilin sesbirimlerine doğru kaydırıyor. Bir cümlede İngilizceden alınmış üç kelime geçiyor — her teknik konuşmada geçiyor. Arka planda bir çocuk var ya da dizüstü mikrofonundasın. Bunların her biri modelin içsel dil tahminini daha az güvenli kılıyor ve düşük güvenli bir tahmin kareler arasında sapabiliyor. Saptığında çözümleme de onunla sapıyor ve düşüncenin ortasında dil değiştiren bir transkript alıyorsun.

Kritik kısım: çoğu araçta o tahmini sabitleyen hiçbir şey yok. Model sessizce, ifade başına karar veriyor ve senin geçersiz kılma yolun yok. Bu, tek bir uygulamadaki bir hata değil — sessiz otomatik algılamanın kendisi bu. Düzeltemeyeceğin bir yargı kararı veren bir model.

Bunu yakından biliyorum, çünkü Keebye'ın varsayılan motoru tam olarak bu özelliğe sahip. İngilizceye göre ayarlı varsayılanımız Parakeet, çözümleme katmanında herhangi bir dil ipucunu yok sayıyor — ona ne konuşmak üzere olduğunu söyleyemiyorsun. Net İngilizcede mükemmel, varsayılan olmasının nedeni de bu. Net olmayan seste ise kategorideki her şey gibi diller arasında savrulabiliyor. Bunu önce kendi ürünüm hakkında söylüyorum, çünkü çözüm ancak sorunun bir rakibin özensizliğinde değil mimaride yaşadığını kabul ettiğinde anlam kazanıyor.

Bir dili sabitlemek gerçekte ne yapıyor?

Çözüm, modelden tahmin etmesini istemeyi bırakmak. Keebye ikinci bir cihaz üzerinde motorla geliyor — NVIDIA'nın Canary 1B v2'si, int8'e nicemlenmiş — ve tam olarak 25 dili kapsıyor: Bulgarca, Hırvatça, Çekçe, Danca, Felemenkçe, İngilizce, Estonca, Fince, Fransızca, Almanca, Yunanca, Macarca, İtalyanca, Letonca, Litvanca, Maltaca, Lehçe, Portekizce, Rumence, Slovakça, Slovence, İspanyolca, İsveççe, Rusça ve Ukraynaca. Varsayılan motorun aksine Canary bir dil talimatı kabul ediyor ve ona uyuyor.

Keebye bunu bir sabitleme olarak sunuyor: her ifade için Canary motoruna geçirilen açık bir dil ayarı. Rumenceyi sabitle; çözümleyici otomatik bir dil seçimi yapmak yerine Rumence kullanır. Tanıma yine yanlış olabilir, özellikle alıntı kelimeler ve gürültülü ses etrafında, ama dil seçimi artık denetlenmemiş bir tahmin değil.

Ayar dikte başına, canlı okunuyor. Değiştir; sıradaki basılı tut ve dikte, uygulamayı yeniden başlatmadan yeni dili kullanır. Bu, kulağa geldiğinden daha önemli: bir dil kontrolü, onu değiştirmek işi kesmediğinde çok daha kullanışlı.

Ve Canary da Keebye'daki her şey gibi cihaz üzerinde çalıştığı için sabitleme sana gizlilik hikâyesine mal olmuyor. Model yaklaşık 1,3 GB, bir kez indiriliyor; ondan sonra Rumencen, Lehçen, Ukraynacan makineyi hiç terk etmiyor. (Yerel çok dilli diktenin neden önemli olduğunu düşündüğümüz kendi yazısında — geliştiriciler için dikte yalnızca İngilizce olmamalı. Bu yazı onun pratik devamı: o yazı diller için savunma yapıyor, bu yazı onları gerçekten kullanılabilir kılmakla ilgili.)

Üç menü derinde değil, iki tık

Ulaşamadığın bir sabitleme, kullanmayacağın bir sabitlemedir; o yüzden geçiş menü çubuğunda duruyor. Keebye'ın menü çubuğu simgesinde, özenle seçilmiş 11 dillik kısa listeyle bir "Dictation Language" menüsü var — İngilizce, Rumence, Fransızca, Almanca, İspanyolca, İtalyanca, Portekizce, Felemenkçe, Lehçe, Rusça, Ukraynaca. Herhangi bir uygulamadan iki tık: menü çubuğuna tıkla, dile tıkla. Ayarlar'ı açmıyorsun, çalıştığın pencereden ayrılmıyorsun.

Tam 25 dillik liste, kısa listenin dışındaki diller için Ayarlar'da. Ama kısa liste, iki dilli çalışmanın günlük gerçekliğini kapsıyor: ekibine bir dilde, bir müşteriye ya da bir AI agent'ına başka bir dilde yazıyorsun ve geçişin hiçbir şeye mal olmaması gerekiyor.

Bilmeye değer bir seçenek daha var, çünkü bazı insanların sabitlemeyi kullanma biçimini tamamen değiştiriyor: İngilizceye çevir anahtarı. Kendi dilinde konuş, imlece İngilizce düşsün — aynı motor, aynı cihaz üzerinde çalışma. İç sesin Rumence akıyor ama çıktının İngilizce olması gerekiyorsa (commit mesajları, bir kodlama agent'ına prompt'lar, uluslararası bir ekibe yanıtlar) bu, kafanda yaptığın çeviri adımını çökertiyor. Beklediğimden çok kullanıyorum.

Sabitlemenin bedeli

25 dil 25 dildir. Bulut dikte araçları çok daha fazlasını listeliyor, çünkü sesi büyük bir sunucu tarafı modele göndermek dil eklemenin ucuz yolu. Cihaz üzerinde çalışmanın gerçek dengesi bu: Mac'ine sığan bir model, bir veri merkezini dolduran modelden daha azını kapsıyor. Dilin 25'lik listede yoksa Keebye'ın çok dilli motoru bugün seni kapsamıyor ve bunu yuvarlamak yerine söylemeyi tercih ederim.

Sabitleme sabitlemedir. Bu, belirlenimciliğin öteki yüzü ve konusunda açık olmak istiyorum: Rumenceyi sabitleyip sonra İngilizce konuşursan Keebye, sen değiştirene kadar İngilizceni sadakatle Rumence olarak yanlış çözümleyecek. Motor tam olarak ona söylediğini yapıyor. Otomatik algılamanın bütün cazibesi bunu hiç düşünmek zorunda kalmamandı — sabitleme o kolaylığı öngörülebilirlikle takas ediyor. Deneyimime göre takas buna değer, çünkü kontrol edemediğin yanlış bir tahmin, iki tıkla düzeltebileceğin yanlış bir ayardan kötüdür. Ama bu bir takas, bedava öğle yemeği değil.

Menü çubuğu kısa listesi 25 değil 11 dil. Günlük ikilin diyelim ki Fince ya da Yunanca içeriyorsa bir tarafı için Ayarlar'a gidiyorsun. Seçki, birilerinin dilinin hızlı menüye girmediği anlamına geliyor.

Bu, şikâyeti nereye bırakıyor

Kategori düzeyindeki şikâyet — "diktem sürekli yanlış dilde çıkıyor" — aslında sessiz kararlara dair bir şikâyet. Model tahmin etti, tahmin yanlıştı ve ona aksini söylemenin yolu yoktu. Tahmini yerinde bırakan her çözüm (daha iyi algılama, daha uzun ses pencereleri, güven eşikleri) hatayı yalnızca daha seyrek ve daha tuhaf yapıyor. Şikâyeti gerçekten bitiren çözüm, kararı kullanıcıya geri vermek.

Bunu şu an başka bir araçla yaşıyorsan karşılaştırma sayfalarımız hangi aracın nereye uyduğu konusunda dürüst — Keebye vs Superwhisper ve Keebye vs Wispr Flow diğerlerinin yanı sıra dil sorusunu da ele alıyor. Sabitlemenin kendisini denemek için ücretsiz denemeni aşağıdan başlat, bu yazının başındaki Rumence ya da Lehçe cümleyi yeniden oynat ve savrulmanın ne kadarının aksanından değil denetlenmemiş bir tahminden geldiğini gör.

Gerçekten kullandığın dili sabitle

Ücretsiz denemeni başlat ve otomatik algılamanın daha önce bozduğu bir ana dil yanıtını yeniden oynat.

Start free trial

Early access: we'll email you the moment the macOS build is ready — your 14 days start when you first sign in from the app.

Okumaya devam et