Speech Core

Motor de fala C++17 open source para agentes de voz — detecção de atividade de voz, fala para texto em lote e em streaming em tempo real, diarização de falantes e texto para fala, tudo rodando no dispositivo em Linux, Windows e Android. Apache 2.0.

O que é

O Speech Core é um núcleo de orquestração compacto — máquina de estados, detecção de turnos, tratamento de interrupções, utilitários de áudio, com zero dependências de ML — mais um conjunto de interfaces abstratas para modelos de fala. A inferência roda localmente na CPU; o áudio nunca sai da máquina, e não há Python em tempo de inferência. A inferência de modelos é opt-in por meio de dois backends intercambiáveis que você pode ativar de forma independente, ou você pode trazer suas próprias implementações das interfaces.

Plataformas e backends

BackendPlataformasAceleração de hardware
ONNX Runtime (SPEECH_CORE_WITH_ONNX)Linux, macOS, Windows, AndroidNNAPI no Android, QNN em Linux Qualcomm, NVIDIA CUDA / TensorRT opcional (-DSPEECH_CORE_WITH_CUDA=ON)
LiteRT (SPEECH_CORE_WITH_LITERT)Linux x86_64, Windows x86_64, Android, macOS arm64CPU por enquanto

Ative um dos backends, ambos ou nenhum — o núcleo de orquestração compila sem nenhum runtime de ML.

Modelos suportados

ModeloTarefaONNXLiteRT
Silero VAD v5Detecção de atividade de voz✓✓
Smart Turn v3.2Detecção de fim de turno (23 idiomas)✓—
Parakeet TDT v3 (0.6B)Fala para texto (114 idiomas)✓✓
Nemotron Speech Streaming (0.6B)Fala para texto em streaming (inglês)✓✓
Nemotron-3.5 ASR Streaming Multilingual (0.6B)Fala para texto em streaming (multilíngue, condicionado por prompt)✓✓
Whisper Small v3fala para texto (Whisper v3 multilíngue)✓—
Whisper Medium v3fala para texto (Whisper v3 multilíngue)✓—
Whisper Large v3fala para texto (Whisper v3 multilíngue)✓—
Whisper Large-v3 Turbofala para texto (Whisper v3 multilíngue)✓—
Omnilingual ASR CTC (300M)Fala para texto (multilíngue)—✓
Pyannote Segmentation 3.0Diarização (segmentação)—✓
WeSpeaker ResNet34-LMEmbedding de falante—✓
VoxCPM2 (2B)Texto para fala (48 kHz, clonagem de voz)—✓
Kokoro 82MTexto para fala✓—
Pocket TTS 100MTexto para fala em streaming (inglês, voz Alba fixa)✓—
DeepFilterNet3Aprimoramento de fala✓—
PersonaPlex 7BFala para fala full-duplex (CUDA)✓—

Início rápido

Compile o núcleo mais o backend LiteRT (a biblioteca de runtime é extraída do wheel ai-edge-litert — sem build do 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

Depois, linke os targets de que você precisa:

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

Transcrever um buffer de áudio leva poucas linhas:

#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 embarcado e automotivo

Um build Linux de referência — libspeech.so com uma pequena ABI em C, uma CLI de demonstração ALSA e ferramentas de transcrição/síntese/fonemização — vive em examples/linux. Tem como alvo ARM64 embarcado (Yocto, Qualcomm SA8295P / SA8255P) e qualquer máquina de desenvolvimento Linux. Os passos de configuração estão no guia de primeiros passos para Linux.

Desenvolvendo para Android ou Apple?

No Android, use o speech-android — um SDK Kotlin que empacota o Speech Core atrás de uma ponte JNI (implementation("audio.soniqo:speech:0.0.9")). No macOS e no iOS, use o speech-swift, que roda os modelos em CoreML, MLX e no Apple Neural Engine.

Documentação

Feedback

Abra um issue em github.com/soniqo/speech-core/issues ou entre no Discord.