CrispASR:一个C++二进制文件,支持53个ASR和51个TTS模型
CrispASR是一个基于ggml的统一C++语音引擎,支持53个ASR和51个TTS模型,零Python依赖。通过单个CLI即可运行Cohere Transcribe、Parakeet、Voxtral、Qwen3等模型。
什么是CrispASR?
CrispASR是一个C++语音引擎,最初是whisper.cpp的一个分支,后来发展成为一个更大的项目。它是一个统一的运行时中心,支持53个自动语音识别(ASR)后端和51个文本转语音(TTS)引擎,全部运行在ggml张量库上。核心理念很简单:一个二进制文件,一个一致的CLI,运行时零Python依赖。
# 使用任何后端进行转录
crispasr -m ggml-base.en.bin -f samples/jfk.wav # OpenAI Whisper
crispasr -m parakeet-tdt-0.6b.gguf -f samples/jfk.wav # NVIDIA Parakeet
crispasr -m canary-1b-v2.gguf -f samples/jfk.wav # NVIDIA Canary
crispasr -m voxtral-mini-3b-2507.gguf -f samples/jfk.wav # Mistral Voxtral
crispasr --backend qwen3 -m auto -f samples/jfk.wav # 自动下载
# 文本转语音
crispasr --backend kokoro -m auto --tts "Hello world" --tts-output out.wav
无需Python、PyTorch或单独的每个模型二进制文件。只需要一个C++二进制文件和一个GGUF文件。
为什么这很重要
大多数语音AI工具都是碎片化的。你需要一个库用于Whisper,另一个用于Parakeet,一个Python环境用于Cohere Transcribe,以及另一个设置用于TTS。CrispASR通过为数十个模型提供单一、一致的接口来消除这种碎片化。它还可以编译为WebAssembly(4.3 MB),完全在浏览器客户端运行,并支持带有COOP/COEP头的多线程推理。
支持的后端
ASR(53个后端)
ASR后端列表非常广泛。以下是重点:
| 后端 | 模型 | 架构 | 语言 |
|---|---|---|---|
| whisper | 所有OpenAI Whisper变体 | 编码器-解码器Transformer | 99 |
| parakeet | NVIDIA Parakeet TDT 0.6b/1.1b | FastConformer + TDT | 25 EU |
| canary | NVIDIA Canary 1B v2 | FastConformer + Transformer解码器 | 25 EU |
| cohere | Cohere Transcribe 03-2026 | Conformer + Transformer | 13 |
| voxtral | Mistral Voxtral Mini 3B/4B | Whisper编码器 + Mistral LLM | 8/13 |
| qwen3 | Qwen3-ASR 0.6B/1.7B | Whisper编码器 + Qwen3 LLM | 30 + 22种中文方言 |
| granite | IBM Granite Speech 3.2/3.3/4.0 | Conformer + Q-Former + Granite LLM | 6 |
| wav2vec2 | 任何Wav2Vec2ForCTC模型 | CNN + Transformer + CTC | 每个模型 |
| omniasr | OmniASR CTC 1B/300M | wav2vec2 CNN + Transformer + CTC | 1600+ |
| sensevoice | FunAudioLLM SenseVoiceSmall | SANM编码器 + CTC | 50+ |
| gigaam | ai-sage/GigaAM-v3 | Rotary Conformer + CTC/RNN-T | 俄语 |
TTS(51个引擎)
TTS后端包括Kokoro、Qwen3-TTS、VibeVoice、Orpheus、Chatterbox、IndexTTS、CosyVoice3、CSM、Dia、Zonos、Bark、Piper、MeloTTS等。许多支持通过参考音频进行语音克隆。
入门指南
从源码构建
git clone --recursive https://github.com/CrispStrobe/CrispASR
cd CrispASR
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j$(nproc)
对于GPU加速:
cmake -B build -DCMAKE_BUILD_TYPE=Release -DGGML_CUDA=ON # NVIDIA
cmake -B build -DCMAKE_BUILD_TYPE=Release -DGGML_METAL=ON # Apple Silicon
cmake -B build -DCMAKE_BUILD_TYPE=Release -DGGML_VULKAN=ON # 跨供应商
快速ASR示例
Whisper:
./models/download-ggml-model.sh base.en
./build/bin/crispasr -m models/ggml-base.en.bin -f samples/jfk.wav
Parakeet(多语言,快速):
curl -L -o parakeet.gguf https://huggingface.co/cstr/parakeet-tdt-0.6b-v3-GGUF/resolve/main/parakeet-tdt-0.6b-v3-q4_k.gguf
./build/bin/crispasr -m parakeet.gguf -f samples/jfk.wav
Voxtral(语音-LLM,自动下载):
./build/bin/crispasr --backend voxtral -m auto -f samples/jfk.wav
Qwen3-ASR(30种语言 + 中文方言):
./build/bin/crispasr --backend qwen3 -m auto -f audio.zh.wav
文本转语音
# VibeVoice(自动下载约636 MB)
crispasr --backend vibevoice-tts -m auto --tts "Hello world" --tts-output hello.wav
# CosyVoice3在GPU上
crispasr --backend cosyvoice3-tts -m auto --tts "Hello world" --tts-output cosy.wav
关键特性
流式与实时转录
CrispASR支持来自麦克风输入的流式传输、滑动窗口分块以及每个标记的置信度输出。使用--stream、--mic或--live标志。
HTTP服务器模式
运行一个持久的HTTP服务器,带有OpenAI兼容的API:
crispasr --server -m model.gguf --port 8080
curl -F "[email protected]" http://localhost:8080/v1/audio/transcriptions
强制对齐
CrispASR包含一个通用的强制对齐功能,适用于所有后端。你可以在不运行ASR的情况下将文本与音频对齐:
crispasr -m parakeet.gguf -f audio.wav --align-only -t transcript.txt
语音活动检测(VAD)
有四个VAD后端可用:Silero(默认,约885 KB)、FireRedVAD(推荐)、MarbleNet(439 KB)和Whisper-VAD-EncDec(实验性)。
语言识别
对于没有原生语言检测的后端,CrispASR支持-l auto,并提供多个LID提供者:Whisper(默认,99种语言)、Silero(95种语言)、ECAPA-TDNN(推荐,107种语言)和FireRedLID(120种语言)。
后处理
CrispASR包括标点恢复(FireRedPunc、fullstop-punc、punctuate-all)、真大小写转换(统计、CRF、BiLSTM)和文本语言识别(CLD3、GlotLID-V3、LID-176)。
性能考虑
- 音频-LLM后端(qwen3、voxtral、granite)运行完整的Transformer解码器堆栈,在CPU上较慢。对于仅CPU的硬件,优先选择moonshine(16× RT)、fc-ctc(10× RT)、parakeet(2.9× RT)或whisper。
- 量化模型到Q4_K或Q5_K以减少内存和计算。
- 使用
--flush-after 1以逐步查看结果,而不是等待整个文件处理完成。
架构
CrispASR结构化为一个稳定的C-ABI,位于src/中,供所有语言包装器(Python、Rust、Dart、Go、Java、JavaScript、Ruby)使用。每个模型的运行时位于src/{whisper,parakeet,canary,...}.cpp中,共享来自src/core/的原语(mel、FFN、注意力、GGUF加载器、FastConformer块)。
生态系统
CrispASR是一个更大生态系统的一部分:
- CrisperWeaver — 基于CrispASR的跨平台Flutter转录应用
- CrispEmbed — 具有相同理念的文本嵌入引擎
- Susurrus — 带有9个后端的Python ASR GUI
结论
CrispASR是一个卓越的项目,它将碎片化的语音AI模型领域统一到一个精心设计的C++二进制文件中。凭借53个ASR后端、51个TTS引擎、通用强制对齐和零Python依赖,它是开发人员构建语音应用程序的强大工具。该项目采用MIT许可,并积极维护,在GitHub上有75个版本和490颗星。