Speech Core
Ses ajanları için açık kaynak C++17 konuşma motoru — ses etkinliği algılama, toplu ve gerçek zamanlı akışlı konuşmadan metne, konuşmacı ayrıştırma ve metinden konuşmaya; tamamı Linux, Windows ve Android üzerinde cihaz üstü çalışır. Apache 2.0.
Nedir
Speech Core, küçük bir orkestrasyon çekirdeği — durum makinesi, söz sırası algılama, kesinti yönetimi, ses yardımcı araçları, sıfır ML bağımlılığı — ve buna ek olarak konuşma modelleri için bir dizi soyut arayüzdür. Çıkarım, CPU üzerinde yerel olarak çalışır; ses asla makineden çıkmaz ve çıkarım sırasında Python yoktur. Model çıkarımı, birbirinden bağımsız etkinleştirebileceğiniz iki değiştirilebilir backend üzerinden isteğe bağlıdır; dilerseniz arayüzlerin kendi gerçekleştirimlerinizi de kullanabilirsiniz.
- Ses ajanı orkestrasyonu —
VoicePipeline; VAD, akışlı STT, bir LLM ve TTS'i araya girme (barge-in), söz sırası algılama ve araç çağrısı döngüsü içeren tam çift yönlü bir ajan döngüsünde birleştirir. docs/pipeline.md belgesine ve ses ajanları genel bakışına göz atın. - Saf C++ ile konuşmacı ayrıştırma —
DiarizationPipeline, bir bölütleyici ile bir gömme modelini konuşmacı etiketli segmentler üretecek şekilde birleştirir ve kendi başına hiçbir ML çalışma zamanı bağımlılığı taşımaz. - Yığının geri kalanını çalıştırır — speech-android, Speech Core üzerine kurulu bir Kotlin SDK + JNI köprüsüdür; Speech Studio ise Windows ve Linux'ta onun LiteRT VoxCPM2 motorunu kullanır. Apple platformlarındaki kardeş kütüphane speech-swift'tir.
Platformlar ve backend'ler
| Backend | Platformlar | Donanım hızlandırma |
|---|---|---|
ONNX Runtime (SPEECH_CORE_WITH_ONNX) | Linux, macOS, Windows, Android | Android'de NNAPI, Qualcomm Linux'ta QNN, isteğe bağlı NVIDIA CUDA / TensorRT (-DSPEECH_CORE_WITH_CUDA=ON) |
LiteRT (SPEECH_CORE_WITH_LITERT) | Linux x86_64, Windows x86_64, Android, macOS arm64 | Şimdilik CPU |
Backend'lerden birini, ikisini veya hiçbirini etkinleştirin — orkestrasyon çekirdeği hiçbir ML çalışma zamanı olmadan da derlenir.
Desteklenen modeller
| Model | Görev | ONNX | LiteRT |
|---|---|---|---|
| Silero VAD v5 | Ses etkinliği algılama | ✓ | ✓ |
| Parakeet TDT v3 (0.6B) | Konuşmadan metne (114 dil) | ✓ | ✓ |
| Nemotron Speech Streaming (0.6B) | Akışlı konuşmadan metne (İngilizce) | ✓ | ✓ |
| Nemotron-3.5 ASR Streaming Multilingual (0.6B) | Akışlı konuşmadan metne (çok dilli, prompt ile koşullandırılmış) | ✓ | ✓ |
| Omnilingual ASR CTC (300M) | Konuşmadan metne (çok dilli) | — | ✓ |
| Pyannote Segmentation 3.0 | Konuşmacı ayrıştırma (bölütleme) | — | ✓ |
| WeSpeaker ResNet34-LM | Konuşmacı gömmesi | — | ✓ |
| VoxCPM2 (2B) | Metinden konuşmaya (48 kHz, ses klonlama) | — | ✓ |
| Kokoro 82M | Metinden konuşmaya | ✓ | — |
| DeepFilterNet3 | Konuşma iyileştirme | ✓ | — |
| PersonaPlex 7B | Tam çift yönlü konuşmadan konuşmaya (CUDA) | ✓ | — |
Hızlı başlangıç
Çekirdeği LiteRT backend'i ile birlikte derleyin (çalışma zamanı kütüphanesi ai-edge-litert wheel'inden çıkarılır — TensorFlow derlemesi gerekmez):
git clone https://github.com/soniqo/speech-core && cd speech-core
scripts/fetch_litert.sh build/litert
cmake -B build -DCMAKE_BUILD_TYPE=Release \
-DSPEECH_CORE_WITH_LITERT=ON -DLITERT_DIR=$PWD/build/litert
cmake --build build
Ardından ihtiyacınız olan hedefleri bağlayın:
target_link_libraries(my_app PRIVATE speech_core) # orchestration only
target_link_libraries(my_app PRIVATE speech_core speech_core_models) # + ONNX models
target_link_libraries(my_app PRIVATE speech_core speech_core_models_litert) # + LiteRT models
Bir ses arabelleğini metne dönüştürmek birkaç satırdan ibaret:
#include <speech_core/models/litert_parakeet_stt.h>
speech_core::LiteRTParakeetStt stt(
"parakeet-encoder.tflite", "parakeet-decoder-joint.tflite", "vocab.json");
auto r = stt.transcribe(audio, n_samples, 16000); // r.text / r.language / r.confidence
Referans bir Linux yapısı — küçük bir C ABI'ına sahip libspeech.so, bir ALSA demo CLI'ı ve transcribe/synthesize/phonemize araçları — examples/linux altında bulunur. Gömülü ARM64'ü (Yocto, Qualcomm SA8295P / SA8255P) ve herhangi bir Linux geliştirme makinesini hedefler. Kurulum adımları Linux başlangıç kılavuzunda yer alır.
Android'de speech-android'i kullanın — Speech Core'u bir JNI köprüsünün arkasında paketleyen bir Kotlin SDK (implementation("audio.soniqo:speech:0.0.9")). macOS ve iOS'ta ise modelleri CoreML, MLX ve Apple Neural Engine üzerinde çalıştıran speech-swift'i kullanın.
Belgeler
- docs/ — depo içi belgelerin tamamı
- docs/pipeline.md —
VoicePipelinedurum makinesi, AEC entegrasyonu ve araç çağrısı döngüsü - docs/models.md — tam model envanteri
- huggingface.co/soniqo — dönüştürülmüş model ağırlıkları (ONNX, LiteRT)
Geri Bildirim
github.com/soniqo/speech-core/issues üzerinden issue açın veya Discord'a katılın.