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
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)
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
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.