Tłumaczenie automatyczne · Oryginał angielski
Rdzeń przemowy
Open- source C + + 17 silnik mowy dla środków głosowych - wykrywanie aktywności głosu, transmisja wiadomości w czasie rzeczywistym i w czasie rzeczywistym - tekst, diaryzacja głośników, i text- to- mowy, wszystkie uruchomione na-urządzeniu Linux, Windows i Android. Apache 2.0.
Co to jest?
Mowa Core jest małym rdzeniem orkiestracyjnym - maszyną stanową, wykrywaniem skrętu, obsługą przerywaną, narzędziami audio, z zależnościami od 0 ML - oraz zestawem abstrakcyjnych interfejsów dla modeli mowy. Prośba działa lokalnie na CPU; audio nigdy nie opuszcza maszyny, a nie ma Python w czasie wnioskowania. Model jest opt- w ciągu dwóch wymiennych oparć można włączyć niezależnie, lub można przynieść własne implementacje interfejsów.
- Orchestracja czynnika głosowego —
VoicePipelinekomponuje VAD, streaming STT, LLM i TTS w pętlę pełno- duplex z barge- w, wykrywanie skrętu i pętlę wywołania narzędzi. Zobacz docs / indexine.md oraz środki do wytwarzania głosu Przegląd. - Diaryzacja głośnika w czystej C++ —
DiarizationPipelinekomponuje segmenter i osadzony w segmentach oznaczonych etykietą głośnika, bez własnej zależności od czasu ML- runtime. - Powers reszta stosu — speech-android jest Kotlin SDK + JNI most nad rdzenia mowy, i Speech Studio używa swojego silnika LiteRT VoxCPM2 na Windows i Linux. Na platformach Apple biblioteka jest speech-swift.
Platformy i oparcia
| Wstecz | Platformy | Przyspieszenie sprzętowe |
|---|---|---|
ONNX Runtime (SPEECH_CORE_WITH_ONNX) | Linux, macOS, Windows, Android | NNAPI na Android, QNN na Qualcomm Linux; opcjonalne NVIDIA CUDA / TensorRT (-DSPEECH_CORE_WITH_CUDA=ON) |
LiteRT (SPEECH_CORE_WITH_LITERT) | Linux x86_64, Windows x86_64, Android, macOS arm64 | CPU dzisiaj |
Włącz albo oparcie, albo żadne - rdzeń orkiestracji buduje się bez biegania ML.
Obsługiwane modele
| Wzór | Zadanie | ONNX | LiteRT |
|---|---|---|---|
| Silero VAD v5 | Wykrywanie aktywności głosu | ✓ | ✓ |
| Smart Turn v3.2 | Wykrywanie zakrętów (23 języki) | ✓ | — |
| Parakeet TDT v3 (0.6B) | Przemówienie do tekstu (114 języków) | ✓ | ✓ |
| Nemotron Speech Streaming (0.6B) | Streaming speech- to- text (angielski) | ✓ | ✓ |
| Nemotron-3.5 ASR Streaming Multilingual (0.6B) | Streaming przemówień-to- tekst (wielojęzyczny, prompt- uwarunkowany) | ✓ | ✓ |
| Whisper małe v3 | Tekst w języku polskim (wielojęzyczny Whisper v3) | ✓ | — |
| Whisper Średnia v3 | Tekst w języku polskim (wielojęzyczny Whisper v3) | ✓ | — |
| Whisper duży v3 | Tekst w języku polskim (wielojęzyczny Whisper v3) | ✓ | — |
| Whisper Large-v3 Turbo | Tekst w języku polskim (wielojęzyczny Whisper v3) | ✓ | — |
| ASR CTC (300M) | Przemówienie do tekstu (wielojęzyczny) | — | ✓ |
| FunctionGemma 270M | On- device LLM - ustrukturyzowane wywołania funkcji / narzędzi (LiteRT- LM; CoreML na Apple) | — | ✓ |
| Segmentacja Pyannote 3.0 | Diaryzacja (segmentacja) | — | ✓ |
| WeSpeaker ResNet34-LM | Włączenie głośnika | — | ✓ |
| VoxCPM2 (2B) | Text- to- mowy (48 kHz, klonowanie głosu) | — | ✓ |
| Kokoro 82M | Test- to- przemówienie | ✓ | — |
| Pocket TTS 100M | Streaming text- to- mowy (angielski, stały głos Alba) | ✓ | — |
| DeepFilterNet3 | Wzmocnienie mowy | ✓ | — |
| PersonaPlex 7B | Pełna przemowa duplex-to- przemówienie (CUDA) | ✓ | — |
Szybki start
Zbuduj rdzeń plus oparcie LiteRT (biblioteka runtime jest pobierana z ai-edge-litert koło - bez budowy TensorFlow):
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
Następnie połączyć cele, których potrzebujesz:
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
Transkrybowanie bufora audio to kilka linii:
#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
Linux build - libspeech.so z małym C ABI, ALSA demo CLI, i transkrypcji / syntezy / phonemize narzędzia - mieszka w przykłady / linux. Celuje osadzony ARM64 (Yocto, Qualcomm SA8295P / SA8255P) i wszelkie Linux dev box. Przewodnik po uruchomieniu Linux.
Na Android należy użyć speech-android - Kotlin SDK, który pakuje Mowa za mostem JNI (implementation("audio.soniqo:speech:0.0.9")). Na macOS i iOS speech-swift, który obsługuje modele na CoreML, MLX i Apple Neural Engine.
Dokumentacja
- dok / - pełna dokumentacja in- repo
- docs / indexine.md -
VoicePipelinestate machine, AEC integration, and tool- call pętla - docs / models.md - pełny model inwentaryzacji
- Kolekcja Soniqo ONNX — Whisper, Kokoro, DeepFilterNet3, PersonaPlexoraz inne ONNX pęczki
- huggingface.co / soniqo - przeliczane wagi modelu (ONNX, LiteRT)
Informacje zwrotne
Otwarcie problemu na github.com /soniqo/speech-core/ Kwestie, lub dołączyć do Niezgoda.