Maskinöversättning · Engelskt original
Speech Core
Open-source C++17 talmotor för röstagenter – röstaktivitetsdetektering, batch och realtid streaming tal-till-text, högtalardiagnos och text-till-tal, alla kör på-enhet på Linux, Windows, och Android. Apache 2.0.
Vad det är
Speech Core är en liten orkestreringskärna - statlig maskin, vrid detektering, avbrottshantering, ljudverktyg, med noll ML-beroende - plus en uppsättning abstrakta gränssnitt för talmodeller. Inference körs lokalt på CPU; ljud lämnar aldrig maskinen, och det finns ingen Python vid inferenstid. Modell inferens är opt-in genom två utbytbara backends du kan aktivera självständigt, eller du kan ta med egna implementeringar av gränssnitten.
- Röst-agent orkestrering —
VoicePipelinekomponerar VAD, streaming STT, en LLM och TTS till en full-duplex agent loop med barge-in, vrid detektering och en verktygs-call loop. Docs/pipeline.md och röstagenter Översikt. - Speaker diarization i rena C++ --
DiarizationPipelinekomponerar en segmenterare och en inbäddare i högtalare-märkta segment, utan ML-löptidsberoende av sin egen. - Krafter resten av stacken — speech-android är en Kotlin SDK + JNI-bro över talkärnan, och Speech Studio använder sin LiteRT VoxCPM2 motor på Windows och Linux. På Apple plattformar, syskon bibliotek är speech-swift.
Plattformar & backends
| Backend | Plattformar | Hårdvaruacceleration |
|---|---|---|
ONNX Runtime (SPEECH_CORE_WITH_ONNX) | Linux, macOS, Windows, Android | NNAPI på Android, QNN på Qualcomm Linux, valfritt NVIDIA CUDA/TensorRT (-DSPEECH_CORE_WITH_CUDA=ON) |
LiteRT (SPEECH_CORE_WITH_LITERT) | Linux x86_64, Windows x86_64, Android, macOS arm64 | CPU idag |
Aktivera antingen backend, både eller varken - orkestreringskärnan bygger utan ML-löptid alls.
Stödda modeller
| Modell | Uppgifter | ONNX | LiteRT |
|---|---|---|---|
| Silero VAD v5 | Röstaktivitetsdetektering | ✓ | ✓ |
| Smart Turn v3.2 | End-of-turn detektion (23 språk) | ✓ | — |
| Parakeet TDT v3 (0,6B) | Tal-till-text (114 språk) | ✓ | ✓ |
| Nemotron Speech Streaming (0,6B) | Streaming talk-to-text (engelska) | ✓ | ✓ |
| Nemotron-3.5 ASR Streaming Multilingual (0.6B) | Streaming talk-to-text (multilingual, prompt-conditioned) | ✓ | ✓ |
| Whisper Small v3 | Tal-till-text (multilingual Whisper v3) | ✓ | — |
| Whisper Medium v3 | Tal-till-text (multilingual Whisper v3) | ✓ | — |
| Whisper Large v3 | Tal-till-text (multilingual Whisper v3) | ✓ | — |
| Whisper Large-v3 Turbo | Tal-till-text (multilingual Whisper v3) | ✓ | — |
| Omnilingual ASR CTC (300M) | Tal-till-text (flerspråkig) | — | ✓ |
| FunctionGemma 270M | On-device LLM - strukturerad funktion / verktygssamtal (LiteRT-LM; CoreML på Apple) | — | ✓ |
| Pyannote Segmentering 3.0 | Diarization (segmentering) | — | ✓ |
| WeSpeaker ResNet34-LM | Högtalare inbäddning | — | ✓ |
| VoxCPM2 (2B) | Text-till-tal (48 kHz, röst kloning) | — | ✓ |
| Kokoro 82M | Text-till-tal | ✓ | — |
| Pocket TTS 100M | Streaming text-till-tal (engelska, fast Alba röst) | ✓ | — |
| DeepFilterNet3 | Tal förbättring | ✓ | — |
| PersonaPlex 7B | Full-duplex tal-till-tal (CUDA) | ✓ | — |
Snabbstart
Bygg kärnan plus LiteRT backend (löptidsbiblioteket extraheras från ai-edge-litert-hjulet - ingen TensorFlow-byggnad):
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
Länka sedan de mål du behöver:
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
Transkribera en ljudbuffert är några rader:
#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
En referens Linux bygger libspeech.so med en liten C ABI, en ALSA demo CLI, och transkribera / synthesize / telefonmize verktyg - bor på exempel/linux. Det riktar sig inbäddade ARM64 (Yocto, Qualcomm SA8295P / SA8255P) och alla Linux dev box. Inställningssteg är i Linux blir startad guide.
På Android, använd speech-android - en Kotlin SDK som paketerar Speech Core bakom en JNI-bro (JNI)implementation("audio.soniqo:speech:0.0.9")På macOS och iOS, använd speech-swift, som kör modellerna på CoreML, MLX och Apple Neural Engine.
Dokumentation
- docs/ – full dokumentation i-repo
- docs/pipeline.md --
VoicePipelinestatsmaskin, AEC-integration och verktygssamtalsloop - docs/models.md — full modellinventering
- Soniqo ONNX kollektion Whisper, Kokoro och DeepFilterNet3 PersonaPlex samt andra ONNX-paket
- huggingface.co/soniqo -- konverterade modellvikter (ONNX, LiteRT)
Feedback
Öppna ett problem på github.com/soniqo/speech-core/issues, eller gå med i Discord.