Speech Core

Motor de voz C++17 open source para agentes de voz — detección de actividad vocal, voz a texto por lotes y en streaming en tiempo real, diarización de hablantes y texto a voz, todo ejecutándose en el dispositivo en Linux, Windows y Android. Apache 2.0.

Qué es

Speech Core es un pequeño núcleo de orquestación — máquina de estados, detección de turnos, gestión de interrupciones, utilidades de audio, sin dependencias de ML — más un conjunto de interfaces abstractas para modelos de voz. La inferencia se ejecuta localmente en la CPU; el audio nunca sale de la máquina y no hay Python en tiempo de inferencia. La inferencia de modelos es opcional (opt-in) mediante dos backends intercambiables que puedes activar de forma independiente, o puedes aportar tus propias implementaciones de las interfaces.

Plataformas y backends

BackendPlataformasAceleración por hardware
ONNX Runtime (SPEECH_CORE_WITH_ONNX)Linux, macOS, Windows, AndroidNNAPI en Android, QNN en 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 ahora

Activa un backend, los dos o ninguno — el núcleo de orquestación compila sin ningún runtime de ML.

Modelos compatibles

ModeloTareaONNXLiteRT
Silero VAD v5Detección de actividad vocal
Parakeet TDT v3 (0.6B)Voz a texto (114 idiomas)
Nemotron Speech Streaming (0.6B)Voz a texto en streaming (inglés)
Nemotron-3.5 ASR Streaming Multilingual (0.6B)Voz a texto en streaming (multilingüe, condicionado por prompt)
Omnilingual ASR CTC (300M)Voz a texto (multilingüe)
Pyannote Segmentation 3.0Diarización (segmentación)
WeSpeaker ResNet34-LMEmbedding de hablante
VoxCPM2 (2B)Texto a voz (48 kHz, clonación de voz)
Kokoro 82MTexto a voz
DeepFilterNet3Mejora de voz
PersonaPlex 7BVoz a voz full-duplex (CUDA)

Inicio rápido

Compila el núcleo más el backend LiteRT (la librería del runtime se extrae del wheel ai-edge-litert — sin compilar 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

Después enlaza los targets que necesites:

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

Transcribir un búfer de audio son unas pocas líneas:

#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 embebido y de automoción

Un build de referencia para Linux — libspeech.so con una pequeña ABI en C, una CLI de demo con ALSA y herramientas de transcripción/síntesis/fonemización — vive en examples/linux. Está orientado a ARM64 embebido (Yocto, Qualcomm SA8295P / SA8255P) y a cualquier máquina de desarrollo Linux. Los pasos de configuración están en la guía Empezar — Linux.

¿Desarrollas para Android o Apple?

En Android, usa speech-android — un SDK Kotlin que empaqueta Speech Core tras un puente JNI (implementation("audio.soniqo:speech:0.0.9")). En macOS e iOS, usa speech-swift, que ejecuta los modelos en CoreML, MLX y el Apple Neural Engine.

Documentación

Feedback

Abre un issue en github.com/soniqo/speech-core/issues o únete al Discord.