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
Smart Turn v3.2Detección de fin de turno (23 idiomas)
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)
Whisper Small v3voz a texto (Whisper v3 multilingüe)
Whisper Medium v3voz a texto (Whisper v3 multilingüe)
Whisper Large v3voz a texto (Whisper v3 multilingüe)
Whisper Large-v3 Turbovoz a texto (Whisper v3 multilingüe)
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
Pocket TTS 100MTexto a voz en streaming (inglés, voz Alba fija)
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.