Speech Core

Open-source речевой движок на C++17 для голосовых агентов — детекция голосовой активности, пакетное и потоковое распознавание речи в реальном времени, диаризация спикеров и синтез речи, и всё это работает на устройстве на Linux, Windows и Android. Apache 2.0.

Что это

Speech Core — это компактное оркестрационное ядро: конечный автомат, определение очерёдности реплик, обработка перебиваний, аудиоутилиты — без единой ML-зависимости — плюс набор абстрактных интерфейсов для речевых моделей. Инференс выполняется локально на CPU; аудио никогда не покидает машину, а на этапе инференса нет Python. Инференс моделей подключается опционально через два взаимозаменяемых бэкенда, которые можно включать независимо, либо вы можете предоставить собственные реализации интерфейсов.

Платформы и бэкенды

БэкендПлатформыАппаратное ускорение
ONNX Runtime (SPEECH_CORE_WITH_ONNX)Linux, macOS, Windows, AndroidNNAPI на Android, QNN на Qualcomm Linux, опционально NVIDIA CUDA / TensorRT (-DSPEECH_CORE_WITH_CUDA=ON)
LiteRT (SPEECH_CORE_WITH_LITERT)Linux x86_64, Windows x86_64, Android, macOS arm64Пока CPU

Включайте любой из бэкендов, оба или ни одного — оркестрационное ядро собирается вообще без ML-рантайма.

Поддерживаемые модели

МодельЗадачаONNXLiteRT
Silero VAD v5Детекция голосовой активности
Parakeet TDT v3 (0.6B)Распознавание речи (114 языков)
Nemotron Speech Streaming (0.6B)Потоковое распознавание речи (английский)
Nemotron-3.5 ASR Streaming Multilingual (0.6B)Потоковое распознавание речи (многоязычное, управляется промптом)
Omnilingual ASR CTC (300M)Распознавание речи (многоязычное)
Pyannote Segmentation 3.0Диаризация (сегментация)
WeSpeaker ResNet34-LMЭмбеддинги спикеров
VoxCPM2 (2B)Синтез речи (48 кГц, клонирование голоса)
Kokoro 82MСинтез речи
DeepFilterNet3Улучшение речи
PersonaPlex 7BПолнодуплексная речь в речь (CUDA)

Быстрый старт

Соберите ядро вместе с бэкендом LiteRT (библиотека рантайма извлекается из wheel-пакета ai-edge-litert — сборка 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

Затем слинкуйте нужные вам таргеты:

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

Транскрипция аудиобуфера — это несколько строк:

#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

Референсная сборка для Linux — libspeech.so с компактным C ABI, демо-CLI на ALSA и инструментами transcribe/synthesize/phonemize — находится в examples/linux. Она ориентирована на встраиваемый ARM64 (Yocto, Qualcomm SA8295P / SA8255P) и любую Linux-машину разработчика. Шаги настройки — в руководстве по началу работы на Linux.

Разрабатываете под Android или Apple?

На Android используйте speech-android — Kotlin SDK, который упаковывает Speech Core за JNI-мостом (implementation("audio.soniqo:speech:0.0.9")). На macOS и iOS используйте speech-swift, который запускает модели на CoreML, MLX и Apple Neural Engine.

Документация

Обратная связь

Открывайте issue на github.com/soniqo/speech-core/issues или присоединяйтесь к Discord.