speech-core icon

speech-core

speech-core 是一款用于本地端语音编排的 C++17 库,支持 VAD、流式与批量 STT、说话人分离、TTS 和语音代理流水线。可本地运行,支持可选 ONNX Runtime 或 LiteRT 后端进行模型推理。

speech-core

C++17 中的本地端语音编排

speech-core 是一款用于构建本地端语音系统和语音代理流水线的 C++17 库。它将编排逻辑与语音转文本、文本转语音、语音活动检测、说话人分离、增强、回声消除以及可选语言模型钩子的抽象接口结合在一起。

该项目设计为在 CPU 上本地运行,并通过可选的 ONNX Runtime 或 LiteRT 后端添加模型推理。文档将其定位为适用于 Linux、Windows 和 Android 的可移植核心,Apple 支持则通过一个单独的 Swift 兄弟库提供。

核心能力

语音代理编排

该库提供一个用于本地端语音处理的 C++17 语音代理流水线,包括轮次检测、中断处理、音频工具和对话跟踪。

一个核心支持多种语音任务

它在同一个核心包中支持本地语音活动检测、批量转写、实时流式转写、说话人分离和文本转语音。

后端灵活性

模型推理通过 ONNX Runtime 或 LiteRT 按需启用,文档还列出了各后端可用的具体模型。

接口驱动设计

编排层只依赖抽象接口,因此调用方可以接入自定义实现,例如 CPU、GPU、CoreML/MLX 或远程 API。

跨平台部署

仓库包含面向 Linux、Windows、Android 和 macOS 的平台与后端指南,并说明了 CUDA、TensorRT、NNAPI 和 QNN 等硬件加速路径。

已文档化的集成模式

文档中的示例代码展示了直接使用 C++ 接口进行转写、流式部分结果、说话人分离和 TTS 合成。

适用场景

  • 语音代理应用

    构建一个本地助手流水线,检测语音、流式输出转写、将事件传给 LLM,并生成响应,而无需通过云服务路由音频。

  • 流式语音转文本

    为桌面或移动应用添加低延迟转写,包括音频仍在持续到达时的部分结果。

  • 说话人分离工作流

    按说话人对音频进行分段,用于会议纪要、访谈分析或感知说话人分离的后处理。

  • 本地端音频体验

    将 VAD 和 TTS 直接嵌入需要本地音频交互的产品中,例如离线助手或嵌入式语音功能。

  • 自定义后端集成

    仅集成编排层,并用自定义的 CPU、GPU、CoreML、MLX 或远程实现替换参考模型。

Pros and Cons

Pros

  • 可在本地运行,不会将音频发送到云服务,适合离线或注重隐私的工作流。
  • 通过纯 C++ 接口将编排与模型实现分离。
  • 支持多种语音任务,包括 VAD、流式 STT、说话人分离、TTS 和语音增强。
  • 提供两个可互换的模型后端,更便于选择与目标平台匹配的部署路径。

Cons

  • 模型后端是可选的,因此调用方仍需选择并接入后端,或自行提供端到端语音功能的实现。
  • 当前文档说明 LiteRT 仅支持 CPU,Hexagon 和 GPU delegate 目前尚未通过 C API 暴露。

FAQ

speech-core 的设计目标是什么?

它是一个用于本地语音代理工作流的 C++17 语音核心,模型实现可选使用 ONNX Runtime 和 LiteRT 后端。

它支持哪些平台?

仓库文档说明支持 Linux、Windows 和 Android,也提到可通过一个 Swift 兄弟库支持 Apple 平台。

我必须使用内置模型后端吗?

可以。核心编排层可以在没有模型后端的情况下运行;使用者可以启用 ONNX、LiteRT、两者都启用,或者都不启用,同时提供自己的实现。

它覆盖哪些工作流?

文档展示了批量转写、带部分结果的流式转写、语音活动检测、说话人分离、文本转语音,以及将这些部分组合起来的语音代理流水线。

Quick Facts

类别
开发者工具
语言
C++17
来源
GitHub: soniqo/speech-core
平台
Linux, Windows, Android, macOS
后端
ONNX Runtime, LiteRT
部署
本地端 / 本地推理