Tamamen yerel çalışan anlık konuşma tanıma ve simultane çeviri
Apple Silicon (M1–M4) için saf Rust + MLX ile yazılmıştır. Hiçbir ses kaydı, transkript veya çeviri cihaz dışına çıkmaz.
CİBS, toplantı ve görüşme içeriklerinin bulut ortamına çıkmaması gereken kurumlar için tasarlanmıştır:
- Tüm işlem cihaz üzerinde: Konuşma tanıma da çeviri de Mac'in kendi GPU'sunda (Metal) çalışır. Google, OpenAI, DeepL gibi hiçbir dış servise istek atılmaz.
- İnternet yalnızca kurulumda gerekir: Modeller bir kez indirildikten sonra sistem tamamen çevrimdışı çalışır; ağ bağlantısı kesilse bile çalışmaya devam eder.
- Sunucu dışarıya kapalıdır: Varsayılan olarak yalnızca
127.0.0.1adresine bağlanır; ağdaki başka cihazlar erişemez. - Kayıt tutulmaz: Ses ve metinler bellekte işlenir, diske yazılmaz.
- Canlı mikrofon dinleme: konuştukça ekranda transkript ve seçilen dile anlık çeviri (tarayıcı arayüzü ile)
- 11 dilde konuşma tanıma (Türkçe, İngilizce, Arapça, Çince, Rusça, Almanca, Fransızca, İspanyolca, Japonca, Korece, ...) — otomatik dil algılama
- Yerel çeviri: Qwen3 instruct modeli aynı motorla çalışır
- Dosyadan transkripsiyon (wav/mp3/m4a/flac,
ffmpegüzerinden) - OpenAI uyumlu HTTP API (
POST /v1/audio/transcriptions) - Python/PyTorch gerektirmez; iki adet bağımsız binary:
cibs(CLI) vecibs-server(web arayüzü + API)
Performans: M serisi işlemcilerde 0.6B ASR modeli gerçek zamanın çok altında
çalışır (RTF ~0.1–0.2). 4-bit kuantize çeviri modeliyle (önerilen) çeviri
gecikmesi tipik olarak 0,5–1 saniyedir; MLX kuantize checkpoint'leri
(mlx-community/...-4bit) doğrudan yüklenir.
- Apple Silicon Mac (M1–M4), macOS 14+
- Rust 1.80+
- Xcode Command Line Tools ve CMake, ffmpeg:
xcode-select --install
brew install cmake ffmpeggit clone https://github.com/bugraayancom/cibs.git
cd cibs
cargo build --releaseBinary'ler target/release/cibs ve target/release/cibs-server olarak
oluşur. MLX kütüphanesi (vendor/mlx) repoyla birlikte gelir; ek kurulum
gerekmez.
pip install -U "huggingface_hub[cli]" # veya: brew install huggingface-cli
mkdir -p models
# Konuşma tanıma modeli (~2 GB)
huggingface-cli download Qwen/Qwen3-ASR-0.6B --local-dir ./models/Qwen3-ASR-0.6B
# Çeviri modeli — 4-bit kuantize (~1 GB, önerilen: 5-20x daha hızlı üretim)
huggingface-cli download mlx-community/Qwen3-1.7B-4bit --local-dir ./models/Qwen3-1.7B-4bitTam hassasiyetli (bf16) çeviri modeli tercih ederseniz
Qwen/Qwen3-1.7B (~4 GB) de kullanılabilir; motor, config.json içindeki
quantization alanına bakarak iki formatı da otomatik tanır.
Bu adımdan sonra internet bağlantısı gerekmez.
./target/release/cibs-server \
--model-dir ./models/Qwen3-ASR-0.6B \
--translator-dir ./models/Qwen3-1.7B-4bitTarayıcıda http://127.0.0.1:8080 adresini açın, Dinlemeye başla
düğmesine basın ve konuşun. Üst kutuda seçtiğiniz dile çeviri, alt kutuda
duyulan transkript anlık olarak güncellenir. İlk kullanımda macOS mikrofon
izni isteyecektir.
# Dosyadan transkripsiyon
./target/release/cibs ./models/Qwen3-ASR-0.6B kayit.mp3
# Transkripsiyon + Türkçeye çeviri
./target/release/cibs ./models/Qwen3-ASR-0.6B kayit.mp3 \
--translate-to tr --translator-dir ./models/Qwen3-1.7B-4bit
# Canlı mikrofon (terminalden)
./target/release/cibs ./models/Qwen3-ASR-0.6B --live \
--translate-to tr --translator-dir ./models/Qwen3-1.7B-4bitCanlı modda mevcut satır yerinde güncellenir; segment dolunca satır
sabitlenir ve altına → <çeviri> yazılır. --language tr ile konuşma dili
sabitlenebilir, --device N ile mikrofon seçilebilir
(listelemek için: ffmpeg -f avfoundation -list_devices true -i "").
OpenAI Whisper API'si ile uyumludur; mevcut istemciler doğrudan çalışır.
GET /health— durum kontrolüGET /v1/models— model listesiWS /v1/live— canlı akış (web arayüzünün kullandığı WebSocket; istemci ham PCM gönderir — 16 kHz mono f32le — sunucupartial/commitJSON mesajları döner; zorunlu önekli artımlı çözümleme sayesinde adım gecikmesi ~0,3-0,5 sn)POST /v1/translate— JSON{"text": "...", "target": "tr"}→{"translation": "..."}POST /v1/audio/transcriptions— multipart form:file(zorunlu): ses dosyasılanguage(isteğe bağlı): konuşma dili (tr,en, ... veya tam ad)translate_to(isteğe bağlı): hedef çeviri diliresponse_format:json(varsayılan) |text|verbose_json
curl -F file=@kayit.wav -F translate_to=tr \
http://127.0.0.1:8080/v1/audio/transcriptions
# → {"text":"...", "translation":"..."}from openai import OpenAI
client = OpenAI(base_url="http://127.0.0.1:8080/v1", api_key="kullanilmiyor")
with open("kayit.wav", "rb") as f:
r = client.audio.transcriptions.create(model="cibs", file=f)
print(r.text)İsteğe bağlı --api-key <anahtar> ile Bearer doğrulaması açılabilir.
mikrofon / dosya
→ ffmpeg (16 kHz mono PCM)
→ log-mel spektrogram (128 bant)
→ Qwen3-ASR ses kodlayıcı (Conv2D + transformer) ┐
→ Qwen3 çözücü (GQA, KV cache) → transkript │ MLX / Metal GPU
→ Qwen3-1.7B çeviri modeli → hedef dilde metin ┘
- Ağırlıklar HuggingFace safetensors formatından doğrudan yüklenir.
- Canlı mod, Qwen3-ASR'nin resmî akış reçetesini uygular: biriken ses her adımda yeniden kodlanır, önceki metin son 5 token hariç "zorunlu önek" olarak korunur.
- Çeviri, aynı Rust çözücü implementasyonuyla çalışan bağımsız bir Qwen3
instruct modelidir;
--translator-dirile istenen boyut seçilebilir (0.6B hızlı / 1.7B dengeli / 4B yüksek kalite). - 4/8-bit MLX kuantize ağırlıklar desteklenir: kuantize katmanlar
quantized_matmulile doğrudan paketlenmiş halde çalıştırılır (dequantize edilmez), bu da üretimi hızlandırıp belleği ~4'te 1'e indirir.
cargo test --release
# İndirilmiş model gerektiren uçtan uca testler:
cargo test --release --test e2e_test -- --ignored --nocaptureCİBS (CİB Simultane) is a fully local, real-time speech transcription and
translation tool for Apple Silicon, written in pure Rust on MLX. Audio,
transcripts, and translations never leave the device: both the Qwen3-ASR
speech model and the Qwen3 translation model run on the Mac's own GPU, the
bundled server binds to localhost only, and the network is needed just once
to download the models. Build with cargo build --release, download the two
models from HuggingFace, start cibs-server, and open
http://127.0.0.1:8080 in a browser.
MIT veya Apache-2.0 (dilediğinizi seçebilirsiniz). Ayrıntılar için LICENSE-MIT ve LICENSE-APACHE dosyalarına bakın. Model ağırlıkları (Qwen3-ASR, Qwen3) Alibaba/Qwen'in kendi lisanslarına tabidir.