Speech Core

음성 에이전트를 위한 오픈소스 C++17 음성 엔진 — 음성 활동 감지, 배치 및 실시간 스트리밍 음성-텍스트 변환, 화자 분리, 텍스트-음성 변환을 모두 Linux, Windows, Android에서 온디바이스로 실행합니다. Apache 2.0.

개요

Speech Core는 작은 오케스트레이션 코어입니다 — 상태 머신, 턴 감지, 인터럽트 처리, 오디오 유틸리티를 ML 의존성 전혀 없이 제공하며 — 여기에 음성 모델용 추상 인터페이스 세트가 더해집니다. 추론은 CPU에서 로컬로 실행되어 오디오가 기기 밖으로 나가지 않으며, 추론 시점에 Python이 전혀 필요 없습니다. 모델 추론은 독립적으로 활성화할 수 있는 두 가지 교체 가능한 백엔드를 통한 옵트인 방식이며, 인터페이스를 직접 구현해 가져올 수도 있습니다.

플랫폼 및 백엔드

백엔드플랫폼하드웨어 가속
ONNX Runtime (SPEECH_CORE_WITH_ONNX)Linux, macOS, Windows, AndroidAndroid에서 NNAPI, Qualcomm Linux에서 QNN, 선택적 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 kHz, 음성 복제)
Kokoro 82M텍스트-음성 변환
DeepFilterNet3음성 향상
PersonaPlex 7B풀듀플렉스 음성-음성 변환 (CUDA)

빠른 시작

코어와 LiteRT 백엔드를 함께 빌드합니다 (런타임 라이브러리는 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 빌드 — 작은 C ABI를 갖춘 libspeech.so, ALSA 데모 CLI, transcribe/synthesize/phonemize 도구 — 는 examples/linux에 있습니다. 임베디드 ARM64 (Yocto, Qualcomm SA8295P / SA8255P)와 모든 Linux 개발 머신을 대상으로 합니다. 설정 단계는 Linux 시작하기 가이드를 참조하세요.

Android나 Apple용으로 빌드하시나요?

Android에서는 speech-android를 사용하세요 — Speech Core를 JNI 브리지 뒤에 패키징한 Kotlin SDK입니다 (implementation("audio.soniqo:speech:0.0.9")). macOS와 iOS에서는 CoreML, MLX, Apple Neural Engine에서 모델을 실행하는 speech-swift를 사용하세요.

문서

피드백

github.com/soniqo/speech-core/issues에 issue를 열거나 Discord에 참여하세요.