Voice Pro’nun ilk sürümleri, resmi Qwen ASR ONNX dosyalarıyla birlikte ONNX Runtime kullanıyordu. Bu yöntem işe yarıyordu, ancak uygulamayı piyasaya sürmek zorlayıcıydı. Karşılaştığımız sorunlar ve uygulamanın şimdi neden farklı şekilde çalıştığı şöyle: llama.cpp GGUF ile quantize edilmiş modellerle.
Sorun 1: kurulum boyutu
ONNX Runtime + DirectML sağlayıcısı + CUDA sağlayıcısı + model ağırlıkları içeren Voice Pro’nun Windows sürümü piyasaya sürüldü 430 MB. Linux da benzerdi. Henüz denemedikleri bir dikte aracı için birinden bunu indirmesini istemek çok fazla şey istemektir.
GGUF build’i Windows’ta 83 MB. Derlenmiş llama.cpp binary’si oldukça küçüktür; quantize edilmiş temel model yaklaşık 60 MB’dır (fp16 ONNX olarak yaklaşık 200 MB) ve CPU, CUDA, DirectML ve Vulkan için ayrı execution-provider DLL’leri göndermiyoruz — llama.cpp tüm dördünü tek bir binary ile halleder.
Sorun 2: soğuk başlatma
Soğuk bir Windows yüklemesinde DirectML ile birlikte kullanılan ONNX Runtime’ın tahmin oturumunu başlatması 3–5 saniye sürdü. Kullanıcı, yeniden başlatmadan sonra ilk kez ilgili kısayolu kullanmaya çalıştığında her seferinde bu gecikmeyle karşılaştı. “Hemen konuşma” olmasının temel amacı olan bir dikte aracı için bu durum kabul edilemezdi.
llama.cpp, aynı donanımda GGUF modelini yaklaşık 400 ms soğuk başlatma süresinde yükler. Bellek eşlemeli ağırlıklar, grafik derleme adımı yok, başlatmak için başlatılacak wheel yok.
Sorun 3: paketleme cehennemi
ONNX Runtime, bir Python wheel olarak gelir; bu da şu anlama gelir: Python sürümü, işletim sistemi ve CPU mimarisine göre farklı wheel dosyaları. GPU hızlandırması eklenirse, bu değer CUDA sürümü ve DirectML sürümü ile çarpılır. Nuitka (paketleyicimiz) yanlış varyantı paketlemeye devam ediyordu. Altı koşullu dalı olan derleme betiklerimiz vardı.
llama.cpp tek bir C++ ikili dosyasıdır. Platform başına bir kez derlenir (Windows x64, Linux x64) ve Voice Pro’nun çağırdığı yerel bir yürütülebilir dosya olarak gönderilir. Çıkarım için Python çalışma zamanı bağımlılığı yoktur; Python sadece yapıştırıcı görevi görür.
Sorun 4: düşük boyutlardaki kalite
Kuantizasyonla ilgili endişe doğruluk kaybıdır. Pratikte, temel modelimiz Qwen3-ASR 0.6B’nin Q5_K_M quantize hali, iç değerlendirme setimizde tam fp16 ONNX sürümüne kıyasla %0,3 WER içinde ölçülmektedir. Q4_0 belirgin şekilde daha kötüdür, bu yüzden varsayılan olarak Q5_K_M gönderiyoruz. Maksimum doğruluk isteyen kullanıcılar model yöneticisinden fp16 katmanını indirebilir.
Vazgeçtiklerimiz
llama.cpp’nin ASR desteği, ONNX Runtime’ınkinden daha yenidir. Bazı egzotik model mimarileri için henüz GGUF dönüştürücüleri yok. Şimdilik bu önemli değil — Qwen3-ASR temiz bir şekilde dönüştürüyor — ancak gelecekte köklü olarak farklı bir ASR modeli denemek istersek yedek olarak ONNX yolunu korumamız gerekebilir.
Net sonuç: 5 kat daha küçük bir kurulum, yaklaşık 10 kat daha hızlı soğuk başlatma süresi ve on iki yerine sadece bir tane ikili dosya gerekiyor. Bunu en başından beri yapmalıydık.