Ana içeriğe atla

VibeASR.cpp ile CPU Üzerinde Yerel Konuşmadan Metne Nasıl Çalıştırılır

Microsoft VibeASR.cpp kullanarak CPU üzerinde yerelde hızlı, doğru ve çok dilli konuşmadan metne dönüştürmeyi; dosya deşifre etmeyi, gerçek zamanlı akışı ve Windows, Linux ve macOS'ta Gradio web arayüzünü nasıl çalıştıracağınızı öğrenin.
Güncel 10 Ağu 2026  · 9 dk. oku

Yapay Zekâyla Keşfet

ChatGPT'de açClaude'da açPerplexity'de aç

Otomatik konuşma tanıma son yıllarda önemli ölçüde gelişti. Eskiden güçlü GPU’lar gerektiren ve tutarsız sonuçlar üreten konuşmadan metne modelleri artık sıradan bilgisayarlarda doğru deşifre sağlayabiliyor. 

Aynı zamanda, model boyutları küçüldü, CPU çıkarımı hızlandı ve çok dilli destek genişledi; bu da kullanıcılara deşifre kalitesi, hız, erişilebilirlik ve gizliliğin daha iyi bir birleşimini sunuyor.

Microsoft’un VibeVoice-ASR-BitNet modeli bu ilerlemenin iyi bir örneğidir. 

Optimizasyonlu VibeASR.cpp çalışma zamanı, özel bir GPU’ya ihtiyaç duymadan veya kayıtları bir bulut hizmetine göndermeden Windows, Linux veya macOS bilgisayarda çok dilli konuşmadan metne işlemini yerelde çalıştırmayı mümkün kılar.

Bu kılavuzda, VibeASR.cpp’yi nasıl kurup derleyeceğinizi, quantize edilmiş modeli nasıl indireceğinizi, komut satırından ses dosyalarını nasıl deşifre edeceğinizi, kalıcı akış sunucusunu nasıl çalıştıracağınızı ve konuşmayı yüklemek ya da kaydetmek için Gradio web arayüzünü nasıl kullanacağınızı öğreneceksiniz. 

Microsoft VibeASR.cpp nedir? 

VibeASR.cpp, Microsoft’un VibeVoice-ASR-BitNet modeli için resmi C++ çıkarım çalışma zamanıdır; CPU’larda verimli yerel çıkarım için tasarlanmış sıkıştırılmış, çok dilli bir otomatik konuşma tanıma modelidir. 

Ayrı bir konuşma modeli olmak yerine, VibeASR.cpp modeli çalıştırmak için gereken optimize motoru sağlar ve özel bir GPU’ya ya da bulut tabanlı konuşma hizmetine ihtiyaç duymadan gerçek zamanlı deşifre yapılmasına olanak tanır. 

Bu sayede dizüstü bilgisayarlar, masaüstleri, uç cihazlar ve sınırlı hesaplama kaynaklarına sahip diğer sistemler için uygundur. 

VibeVoice-ASR-BitNet mimari diyagramı

Kaynak: microsoft/VibeVoice-ASR-BitNet

CPU dağıtımını pratik hale getirmek için Microsoft, özgün VibeVoice-ASR mimarisinde kullanılan Qwen2.5-7B dil modeli bileşenini çok daha küçük olan Qwen2.5-1.5B modeliyle değiştirdi. 

Ayrıca iki ana bileşene farklı quantization yöntemleri uygular:

  • I8_S VAE ses kodlayıcı için
  • I2_S dil modeli için; gömlemeler daha yüksek hassasiyettedir

Bu optimizasyonlar, toplam model boyutunu yaklaşık 4,62 GB’tan 1,58 GB’a düşürerek dizüstü ve masaüstü bilgisayarlarda çalıştırmayı pratik hale getirir. 

Boyutta önemli azalmaya rağmen, sıkıştırılmış model daha büyük mimariye kıyasla kelime hata oranında yalnızca yaklaşık %1–4 puanlık nispeten küçük bir artış gösterir. 

VibeASR.cpp, çıkarım hızını artırmak için ggml çerçevesini, özel CPU talimatlarını ve operatör füzyonunu kullanır. 

Microsoft’un kıyaslamalarına göre, karşılaştırılabilir model boyutlarında Whisper.cpp’den 1,6–2,3 kat daha hızlı çalışabilir ve yeterli iş parçacığı kullanıldığında desteklenen CPU’larda gerçek zamandan daha hızlı deşifreye ulaşabilir.

Microsoft’un CPU kıyaslamalarında model, dört iş parçacığıyla 0,63 ve sekiz iş parçacığıyla 0,42 RTF’ye ulaştı; bu da yaklaşık olarak 1,59× ve 2,38× gerçek zaman hızına eşittir. 

Bildirilen WER değerleri arasında MLC English’te %8,25, AMI kulaklık sesinde %21,36, AMI uzak mikrofon sesinde %25,87 ve LibriSpeech clean’de %2,41 yer alır ve deşifre doğruluğu, model boyutu ve CPU performansı arasında güçlü bir denge gösterir. 

1. Gerekli Derleme Araçlarını Kurun

VibeASR.cpp tamamen CPU üzerinde çalışır; bu nedenle özel bir GPU’ya ihtiyacınız yoktur. Yalnızca desteklenen bir Windows, Linux veya macOS bilgisayara, Python 3.9 veya daha yenisine, Git’e, bir C++ derleyicisine ve kaynak kodu, derleme dosyaları ve model için yaklaşık 4 GB boş disk alanına ihtiyacınız vardır.

Derleme süreci ayrıca CMake ve Ninja gerektirir. 

Windows’ta en kolay seçenek, derleyici ve derleme araçlarını önceden yapılandırılmış bir terminalde sunan w64devkit’i kullanmaktır. 

Linux’ta gerekli paketler doğrudan sistem paket yöneticisiyle kurulabilir.

Windows

w64devkit yayınlar sayfasından en güncel x64 .exe dosyasını indirin.

en güncel w64devkit yayınlar sayfası

İndirilen dosya kendiliğinden açılan bir arşivdir. Çalıştırın ve klasörü şu gibi basit bir konuma çıkarın:

C:\w64devkit

Ardından şunu açın:

C:\w64devkit\w64devkit.exe

Bu işlem, GCC, CMake, Make ve Ninja içeren kullanıma hazır bir terminal başlatır. Ortam değişkenlerini manuel olarak yapılandırmadan Windows adımlarının geri kalanı için bu terminali kullanabilirsiniz.

Linux

Ubuntu, Debian ve türevi Linux dağıtımlarında gerekli derleyici ve derleme araçları tek bir komutla kurulabilir:

sudo apt update
sudo apt install build-essential cmake ninja-build git python3 python3-venv

Bu komut, GCC derleyicisini, CMake’i, Ninja’yı, Git’i, Python’u ve bir Python sanal ortamı oluşturmak için gereken paketi kurar.

macOS

macOS’ta Apple’ın komut satırı geliştirme araçlarını kurun:

xcode-select --install

Ayrıca Git, Python 3.9 veya daha yenisi, CMake ve Ninja’ya ihtiyacınız olacak. Kalan araçları kurmanın en kolay yolu Homebrew’dür:

brew install git python cmake ninja

2. VibeASR.cpp’yi Klonlayın ve Python Ortamını Kurun

Aşağıdaki kurulum süreci Windows, Linux ve macOS için aynıdır. 

Tek işletim sistemi özel adım, Python sanal ortamını etkinleştirmek için kullanılan komuttur.

Terminalinizi açın, projeyi saklamak istediğiniz klasöre gidin ve VibeASR.cpp deposunu klonlayın:

git clone --recursive https://github.com/microsoft/VibeASR.cpp.git
cd VibeASR.cpp

microsoft/VibeASR.cpp deposunu klonlama

--recursive seçeneği, gerekli llama.cpp alt modülünü de indirir. Bu olmadan çıkarım çalışma zamanını derlemek için gereken bazı dosyalar eksik kalır.

Proje klasörü içinde bir Python sanal ortamı oluşturun. 

python -m venv .venv

Kendi işletim sisteminiz için olan komutla etkinleştirin.

w64devkit terminaliyle Windows:

. .venv/Scripts/activate

Linux ve macOS:

source .venv/bin/activate

Etkinleştirdikten sonra terminalde komut isteminden önce (.venv) görünmelidir. Python’ın erişilebilir olduğunu doğrulayın: 

python --version

pip’i yükseltin ve proje bağımlılıklarını kurun: 

python -m pip install --upgrade pip

pip install -r requirements.txt

Bu bağımlılıklar kurulum betiği, model indirme süreci ve yerel Gradio web arayüzü tarafından kullanılan Python paketlerini içerir. 

3. VibeASR.cpp’yi Derleyin ve Modeli İndirin

VibeASR.cpp, hem C++ derleme sürecini hem de model indirmeyi yöneten bir kurulum betiği içerir.

Komut satırı ve akış yürütülebilir dosyalarını derler, gereken GGUF paketini kurar ve önceden quantize edilmiş model dosyalarını proje dizinine indirir.

Kurulum betiğini çalıştırmadan önce Python sanal ortamının etkin olduğundan emin olun.

Linux ve macOS’te şunu çalıştırın:

python setup_env.py

Windows’ta w64devkit terminali içinde şu komutu çalıştırın:

CMAKE_GENERATOR=Ninja python setup_env.py

CMAKE_GENERATOR=Ninja ayarı, CMake’in w64devkit ortamında bulunmayan Microsoft Visual C++ yerine Ninja derleme sistemini kullanmasını sağlar.

Kurulum betiği şunları yapacaktır:

  • Gerekli gguf Python paketini kurar.
  • VibeASR.cpp’yi yapılandırır ve derler.
  • Çıkarım ve akış yürütülebilir dosyalarını oluşturur.
  • Önceden quantize edilmiş VibeASR model dosyalarını indirir.
  • İndirilen modelleri models/vibeasr içine kaydeder.

İşlem tamamlandıktan sonra ana çıkarım yürütülebilir dosyası aşağıdaki konumda bulunacaktır.

Windows’ta:

build/bin/asr_infer.exe

Linux ve macOS’ta:

build/bin/asr_infer

Kullanılabilir komut satırı seçeneklerini görüntüleyerek yürütülebilir dosyanın başarıyla derlendiğini doğrulayın.

Windows’ta:

./build/bin/asr_infer.exe --help

Linux ve macOS’ta:

./build/bin/asr_infer --help

VibeASR.cpp yardım menüsü

4. Dosya ve Akış Deşifresini Test Edin

Artık çalışma zamanı ve model hazır olduğuna göre iki deşifre yöntemini test edebilirsiniz. 

Standart çıkarım yürütülebiliri bir ses dosyasını işler ve tamamlanmış deşifreyi döndürür; akış sunucusu ise modeli yüklenmiş halde tutar ve belirteçler oluşturuldukça deşifreyi kademeli olarak görüntüler.

Önce, VibeASR.cpp proje klasörü içinden kısa bir örnek kaydı indirin:

curl -L "https://homepages.inf.ed.ac.uk/htang2/notes/speech-samples/103-1240-0000.wav" -o recording.wav

Ses dosyası mevcut proje dizininde recording.wav adıyla kaydedilecektir.

Bir ses dosyasını deşifre edin

Standart çıkarım komutu ses kodlayıcıyı ve dil modelini yükler, kaydı işler ve tamamlanmış deşifreyi yazdırır.

Windows’ta şunu çalıştırın:

./build/bin/asr_infer.exe \
  --vae-model models/vibeasr/vibeasr-vae-encoder-i8_s.gguf \
  --lm-model models/vibeasr/vibeasr-lm-i2_s-embed-q6_k.gguf \
  --audio recording.wav \
  -t 6 \
  --greedy

Linux ve macOS’ta, aynı komutu .exe uzantısı olmadan kullanın:

./build/bin/asr_infer \
  --vae-model models/vibeasr/vibeasr-vae-encoder-i8_s.gguf \
  --lm-model models/vibeasr/vibeasr-lm-i2_s-embed-q6_k.gguf \
  --audio recording.wav \
  -t 6 \
  --greedy

VibeASR.cpp kullanarak bir Ses Dosyasını Deşifre Etme

-t 6 seçeneği çıkarıma altı CPU iş parçacığı atar. İşlemcinize bağlı olarak bu sayıyı artırabilir veya azaltabilirsiniz. 

--greedy seçeneği her çözümleme adımında en olası belirteci seçerek tutarlı deşifre sonuçları üretir.

Bilgisayarımda 14,085 saniyelik kayıt yaklaşık 13,7 saniyede işlendi:

RTF: 0.9726
Speed: approximately 1.03× real time

Gerçek zaman faktörü (RTF), işlem süresini sesin süresiyle karşılaştırır. 

1,0’ın altındaki bir RTF, kaydın gerçek çalma süresinden daha hızlı deşifre edildiği anlamına gelir. Performans işlemciye, işletim sistemine, iş parçacığı sayısına ve kayıt uzunluğuna göre değişecektir.

Belirteç bazlı akışı test edin

VibeASR.cpp kalıcı bir akış sunucusu da içerir. İki model dosyasını bir kez yükler ve etkin kalır; böylece her seferinde yeniden başlatıp modeli yeniden yüklemeden birden fazla kaydı gönderebilirsiniz.

Çıktı, büyük bir dil modelinden akışa benzer şekilde çalışır. 

Tüm deşifre tamamlanmasını beklemek yerine, çözücü her belirteci ürettikçe metni görmeye başlarsınız. 

Bazı belirteçler tam kelimeleri, bazıları ise kelime parçalarını veya noktalamayı temsil edebilir; ancak deşifre tamamlanana kadar kademeli olarak görüntülenirler.

Windows’ta sunucuyu şu komutla başlatın:

./build/bin/asr_stream_server.exe \
  --vae-model models/vibeasr/vibeasr-vae-encoder-i8_s.gguf \
  --lm-model models/vibeasr/vibeasr-lm-i2_s-embed-q6_k.gguf \
  -t 6 \
  --greedy

Linux ve macOS’ta şunu çalıştırın:

./build/bin/asr_stream_server \
  --vae-model models/vibeasr/vibeasr-vae-encoder-i8_s.gguf \
  --lm-model models/vibeasr/vibeasr-lm-i2_s-embed-q6_k.gguf \
  -t 6 \
  --greedy

Belirteçten belirteçe akış modeli hazır.

Sunucunun modelleri yüklemeyi bitirmesini ve şunu görüntülemesini bekleyin:

---READY---

Ses dosyasının yolunu girin ve Enter’a basın:

recording.wav

Deşifre belirteç belirteç görünmeye başlayacaktır. Kayıt tamamen işlendiğinde sunucu şunu görüntüler:

---END---

VibeASR.cpp kullanarak Belirteçten Belirteçe Akış

Daha sonra modelleri yeniden yüklemeden başka bir ses dosyası yolu girebilirsiniz. Sunucuyu durdurmak için şunu yazın:

exit

Bu kalıcı iş akışı, özellikle birden fazla kaydı deşifre ederken veya kademeli deşifre çıktısına ihtiyaç duyan başka bir uygulamaya VibeASR.cpp bağlanırken faydalıdır.

5. Web Arayüzünü Başlatın ve Test Edin

VibeASR.cpp, ses dosyaları yüklemek veya mikrofonunuzla konuşma kaydetmek için yerel bir Gradio web arayüzü içerir. Süreç Windows, Linux ve macOS’ta aynıdır; ancak Windows’ta yürütülebilir dosyalar .exe ile biter.

Arayüz için gereken bağımlılıklar, Gradio, SoundFile ve NumPy dahil olmak üzere, zaten requirements.txt aracılığıyla kuruldu.

Önce sanal ortamın etkin olduğundan emin olun.

w64devkit terminaliyle Windows:

. .venv/Scripts/activate

Linux ve macOS:

source .venv/bin/activate

Windows’ta arayüzü şu komutla başlatın:

python demo/gradio_asr_demo.py \
  --port 7860 \
  --bin build/bin/asr_infer.exe \
  --server-bin build/bin/asr_stream_server.exe

Linux ve macOS’ta varsayılan yürütülebilir yollar otomatik olarak algılanır:

python demo/gradio_asr_demo.py --port 7860

Model yolları tüm işletim sistemleri için Gradio betiği içinde zaten yapılandırılmıştır; bu nedenle komuta eklemeniz gerekmez. 

Betik, standart çıkarım yürütülebiliri ile akış sunucusu için ayrı yolları da destekler.

Tarayıcınızda aşağıdaki adresi açın:

http://127.0.0.1:7860

Arayüzü keşfedin

Arayüz sayesinde şunları yapabilirsiniz:

  • CPU modelini seçin.
  • CPU iş parçacığı sayısını belirleyin.
  • Çevrimiçi ve Çevrimdışı işleme arasında geçiş yapın.
  • Greedy çözümlemeyi etkinleştirin veya sıcaklık ve Top-p değerlerini ayarlayın.
  • Bir ses dosyası yükleyin veya doğrudan mikrofonunuzdan kaydedin.
  • İsteğe bağlı sıcak kelimeler ekleyin; örneğin kişi adları veya teknik terimler.
  • Deşifreyi, ses süresini ve gerçek zaman faktörünü görüntüleyin.

Buradaki Çevrimiçi mod, sesinizin çevrimiçi bir hizmete gönderildiği anlamına gelmez.

Daha uzun kayıtları parçalara ayırarak kademeli olarak işler ve mevcutsa asr_stream_server kullanır. 

Çevrimdışı mod, sonucu görüntülemeden önce tam ses dosyasını işler.

VibASR.cpp WebUI arayüzü

Kısa bir kaydı test edin

İlk test için, kısa bir cümleyi doğrudan mikrofondan kaydettim ve Çevrimdışı modu ile dört CPU iş parçacığı seçtim.

VibASR.cpp WebUI, kısa kaydı çevrimdışı menüyle test ediyor

0,9584 RTF, modelin her bir saniyelik sesi işlemek için yaklaşık 0,96 saniyeye ihtiyaç duyduğu anlamına gelir. 

Bu yaklaşık olarak 1,04× gerçek zamandır; yani deşifre, kaydın gerçek süresinden biraz daha hızlı tamamlandı.

Daha uzun bir kaydı test edin

Yaklaşık 109,7 saniyelik konuşma içeren daha uzun bir kayıtla da arayüzü test ettim. Model, tamamlanmış deşifreyi başarıyla üretti ve şunu bildirdi:

RTF: 0.5305
Audio: 109.7s

VibASR.cpp WebUI, büyük sesi çevrimdışı seçenekle deşifre ediyor

Bu, modelin her bir saniyelik sesi işlemek için yaklaşık 0,53 saniyeye ihtiyaç duyduğu anlamına gelir. Tüm kaydın deşifresi yaklaşık 58 saniye sürdü ve yaklaşık 1,88× gerçek zaman hız sağladı.

Son Düşünceler

Yerel konuşma tanımanın ne kadar pratik hale geldiği beni etkiledi. 

Eski bir CPU’da bile VibeASR.cpp, GPU, büyük miktarda bellek veya fazla depolama gerektirmeden sese gerçek zamana yakın ya da daha hızlı deşifre yapabiliyor. 

Derlenmiş yürütülebilir dosya ayrıca bir Python uygulamasına entegre edilebilir, bir FastAPI uç noktasına sarılabilir veya daha büyük bir yerel aracın deşifre motoru olarak kullanılabilir.

Dikkate alınması gereken ana ayar, işleme atanan CPU iş parçacığı sayısıdır. 

Ayrıca, deşifreyi kademeli olarak akış halinde veren çevrimiçi mod ile sesi işledikten sonra tamamlanmış deşifreyi döndüren çevrimdışı mod arasında seçim yapmanız gerekir.

Kurulum yine de daha kolay olabilir; özellikle Windows, Linux ve macOS’ta. 

Proje hâlâ gelişmekte olduğundan, kurulumun ve önceden derlenmiş ikili dosya desteğinin zamanla iyileşmesini bekliyorum. Kararlı bir bağımsız ikili dosya mevcut olduğunda, bu modeli çok daha fazla yerel konuşmadan metne projesinde kullanabileceğimi düşünüyorum.

Ayrıca şu içeriğimize de göz atmanızı öneririm: GPT Live Transcribe API eğitimi.

SSS

VibeASR modeli gerçekte hangi dilleri destekliyor?

VibeVoice-ASR modeli yerel olarak 50’den fazla dili destekler. Buna İngilizce, Çince, Fransızca, İtalyanca, Korece, Portekizce ve Vietnamca dahildir. Açık bir dil ayarı gerektirmez ve tek bir cümlede birden fazla dilin doğal olarak karıştığı “kod değiştirme”yi otomatik olarak yönetebilir.

MP3 veya video dosyalarımı deşifre etmeden önce dönüştürmem gerekir mi?

Doğrudan asr_infer komut satırı yürütülebilirini kullanıyorsanız, genellikle 16 kHz, 16 bit mono olan .wav dosyaları bekler. MP3, M4A veya FLAC gibi diğer biçimlerde sesiniz varsa, CLI’ye göndermeden önce FFmpeg gibi bir araçla bunları önce WAV’a dönüştürmeniz gerekir.

Model farklı konuşmacıları tanımlayabilir veya kelime düzeyinde zaman damgaları verebilir mi?

Temel VibeVoice-ASR mimarisi, tek bir geçişte “Kim” (konuşmacı ayrımı), “Ne zaman” (zaman damgaları) ve “Ne” (içerik) öğelerini içeren yapılandırılmış çıktılar üretmek üzere açıkça tasarlanmıştır. Ancak hafif C++ çıkarım yürütülebiliri (VibeASR.cpp) şu anda kademeli ham metin deşifresine odaklanmaktadır. Konuşmacı kimlikleri ve zaman damgaları içeren tam yapılandırılmış JSON çıktısını almak için genellikle modeli Python transformers kitablığıyla çalıştırmanız gerekir.


Abid Ali Awan's photo
Author
Abid Ali Awan
LinkedIn
Twitter

Sertifikalı bir veri bilimcisi olarak, yenilikçi makine öğrenimi uygulamaları oluşturmak için en son teknolojileri kullanmaya büyük ilgi duyuyorum. Konuşma tanıma, veri analizi ve raporlama, MLOps, konuşma yapay zekası ve NLP alanlarında güçlü bir geçmişe sahip olarak, gerçek bir etki yaratabilecek akıllı sistemler geliştirme becerilerimi geliştirdim. Teknik uzmanlığımın yanı sıra, karmaşık kavramları açık ve özlü bir dille ifade etme yeteneğine sahip, becerikli bir iletişimciyim. Sonuç olarak, veri bilimi konusunda aranan bir blog yazarı oldum ve giderek büyüyen veri profesyonelleri topluluğuyla görüşlerimi ve deneyimlerimi paylaşıyorum. Şu anda, içerik oluşturma ve düzenlemeye odaklanıyorum. Büyük dil modelleriyle çalışarak, hem işletmelerin hem de bireylerin verilerinden en iyi şekilde yararlanmalarına yardımcı olabilecek güçlü ve ilgi çekici içerikler geliştiriyorum.

Konular

Öne Çıkan DataCamp Kursları

Kurs

Python ile Konuşma Dili İşleme

4 sa
9.1K
Python'da ham ses dosyalarından konuşmayı yüklemeyi, dönüştürmeyi ve transkripsiyonunu yapmayı öğrenin.
Ayrıntıları GörRight Arrow
Kursa Başla
Devamını GörRight Arrow
İlgili

blog

Hızlı Sevkiyat İçin Pratik Vibe Kodlama Teknoloji Yığını

Ön uç, arka uç, veritabanları, kimlik doğrulama, depolama, e-posta, test, dağıtım ve izleme için en iyi araçları keşfedin.
Abid Ali Awan's photo

Abid Ali Awan

14 dk.

blog

2026’da En Popüler 40 Yazılım Mühendisi Mülakat Sorusu

Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Dario Radečić's photo

Dario Radečić

15 dk.

Eğitim

Python'da Listeyi String'e Nasıl Dönüştürürsünüz

Bu hızlı eğitimde, Python'da bir listeyi string'e nasıl dönüştüreceğinizi öğrenin.
Adel Nehme's photo

Adel Nehme

Eğitim

.gitignore Nasıl Kullanılır: Örneklerle Pratik Bir Giriş

Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
Kurtis Pykes 's photo

Kurtis Pykes

Devamını GörDevamını Gör