Speech Core

Moteur vocal C++17 open source pour les agents vocaux — détection d’activité vocale, reconnaissance vocale par lots et en streaming temps réel, diarisation de locuteurs et synthèse vocale, le tout exécuté en local sur Linux, Windows et Android. Apache 2.0.

Ce que c’est

Speech Core est un petit cœur d’orchestration — machine à états, détection de tour de parole, gestion des interruptions, utilitaires audio, sans aucune dépendance ML — accompagné d’un ensemble d’interfaces abstraites pour les modèles de parole. L’inférence s’exécute localement sur CPU ; l’audio ne quitte jamais la machine, et il n’y a pas de Python au moment de l’inférence. L’inférence des modèles est optionnelle, via deux backends interchangeables que vous pouvez activer indépendamment — ou apportez vos propres implémentations des interfaces.

Plateformes et backends

BackendPlateformesAccélération matérielle
ONNX Runtime (SPEECH_CORE_WITH_ONNX)Linux, macOS, Windows, AndroidNNAPI sur Android, QNN sur Linux Qualcomm, NVIDIA CUDA / TensorRT en option (-DSPEECH_CORE_WITH_CUDA=ON)
LiteRT (SPEECH_CORE_WITH_LITERT)Linux x86_64, Windows x86_64, Android, macOS arm64CPU pour l’instant

Activez l’un des backends, les deux, ou aucun — le cœur d’orchestration se compile sans aucun runtime ML.

Modèles pris en charge

ModèleTâcheONNXLiteRT
Silero VAD v5Détection d’activité vocale
Parakeet TDT v3 (0.6B)Reconnaissance vocale (114 langues)
Nemotron Speech Streaming (0.6B)Reconnaissance vocale en streaming (anglais)
Nemotron-3.5 ASR Streaming Multilingual (0.6B)Reconnaissance vocale en streaming (multilingue, conditionnée par prompt)
Omnilingual ASR CTC (300M)Reconnaissance vocale (multilingue)
Pyannote Segmentation 3.0Diarisation (segmentation)
WeSpeaker ResNet34-LMEmpreinte de locuteur
VoxCPM2 (2B)Synthèse vocale (48 kHz, clonage vocal)
Kokoro 82MSynthèse vocale
DeepFilterNet3Amélioration de la parole
PersonaPlex 7BParole-à-parole full-duplex (CUDA)

Démarrage rapide

Compilez le cœur plus le backend LiteRT (la bibliothèque d’exécution est extraite du wheel ai-edge-litert — pas de compilation de 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

Puis liez les cibles dont vous avez besoin :

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

Transcrire un buffer audio tient en quelques lignes :

#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 embarqué et automobile

Un build Linux de référence — libspeech.so avec une petite ABI C, une CLI de démonstration ALSA et des outils transcribe/synthesize/phonemize — se trouve dans examples/linux. Il cible l’ARM64 embarqué (Yocto, Qualcomm SA8295P / SA8255P) et toute machine de développement Linux. Les étapes d’installation sont dans le guide de premiers pas Linux.

Vous développez pour Android ou Apple ?

Sur Android, utilisez speech-android — un SDK Kotlin qui empaquette Speech Core derrière un pont JNI (implementation("audio.soniqo:speech:0.0.9")). Sur macOS et iOS, utilisez speech-swift, qui exécute les modèles sur CoreML, MLX et l’Apple Neural Engine.

Documentation

Retours

Ouvrez un issue à l’adresse github.com/soniqo/speech-core/issues, ou rejoignez le Discord.