Speech Core

เอ็นจินเสียงพูด C++17 โอเพนซอร์สสำหรับเอเจนต์เสียง — การตรวจจับกิจกรรมเสียงพูด การถอดเสียงเป็นข้อความทั้งแบบแบตช์และสตรีมมิ่งเรียลไทม์ การแยกผู้พูด และการสังเคราะห์เสียงพูด ทั้งหมดทำงานบนอุปกรณ์บน Linux, Windows และ Android Apache 2.0

Speech Core คืออะไร

Speech Core เป็นแกนออร์เคสเตรชันขนาดเล็ก — สเตตแมชชีน การตรวจจับเทิร์น การจัดการการขัดจังหวะ ยูทิลิตีด้านเสียง โดยไม่มี dependency ด้าน 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 arm64CPU ในปัจจุบัน

เปิดใช้แบ็กเอนด์ใดแบ็กเอนด์หนึ่ง ทั้งสอง หรือไม่เปิดเลยก็ได้ — แกนออร์เคสเตรชันบิลด์ได้โดยไม่ต้องมี ML runtime เลย

โมเดลที่รองรับ

โมเดลงาน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เสียงพูดสู่เสียงพูดแบบ full-duplex (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 ที่คุณต้องการ:

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