CrispASR: 53のASRモデルと51のTTSモデルをサポートする単一のC++バイナリ
CrispASRは、ggml上に構築された統合C++音声エンジンで、53のASRモデルと51のTTSモデルをPython依存関係なしでサポートします。Cohere Transcribe、Parakeet、Voxtral、Qwen3などを単一のCLIから実行できます。
CrispASRとは?
CrispASRは、whisper.cppのフォークとして始まり、より大きなものへと進化したC++音声エンジンです。これは、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には別のライブラリ、Cohere TranscribeにはPython環境、TTSにはさらに別のセットアップが必要です。CrispASRは、数十のモデルに対して単一の一貫したインターフェースを提供することで、これを解消します。また、WebAssembly(4.3 MB)にコンパイルでき、ブラウザ内で完全にクライアントサイドで実行され、COOP/COEPヘッダーを使用したマルチスレッド推論をサポートします。
サポートされているバックエンド
ASR(53バックエンド)
ASRバックエンドのリストは広範囲にわたります。以下にハイライトを示します。
| バックエンド | モデル | アーキテクチャ | 言語 |
|---|---|---|---|
| whisper | すべてのOpenAI Whisperバリアント | エンコーダ-デコーダトランスフォーマー | 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サーバーモード
OpenAI互換APIを持つ永続的なHTTPサーバーを実行します:
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)
4つのVADバックエンドが利用可能です:Silero(デフォルト、約885 KB)、FireRedVAD(推奨)、MarbleNet(439 KB)、Whisper-VAD-EncDec(実験的)。
言語識別
ネイティブ言語検出がないバックエンドの場合、CrispASRは複数のLIDプロバイダーで-l autoをサポートしています:Whisper(デフォルト、99言語)、Silero(95言語)、ECAPA-TDNN(推奨、107言語)、FireRedLID(120言語)。
後処理
CrispASRには、句読点復元(FireRedPunc、fullstop-punc、punctuate-all)、Truecasing(統計的、CRF、BiLSTM)、テキスト言語識別(CLD3、GlotLID-V3、LID-176)が含まれています。
パフォーマンスに関する考慮事項
- 音声LLMバックエンド(qwen3、voxtral、granite)は、完全なトランスフォーマーデコーダースタックを実行するため、CPUでは低速です。CPUのみのハードウェアでは、moonshine(16倍RT)、fc-ctc(10倍RT)、parakeet(2.9倍RT)、またはwhisperを優先してください。
- モデルをQ4_KまたはQ5_Kに量子化して、メモリと計算を削減します。
--flush-after 1を使用すると、ファイル全体を待たずに結果を段階的に表示できます。
アーキテクチャ
CrispASRは、すべての言語ラッパー(Python、Rust、Dart、Go、Java、JavaScript、Ruby)で使用される安定したC-ABIとしてsrc/に構造化されています。モデルごとのランタイムはsrc/{whisper,parakeet,canary,...}.cppにあり、src/core/(メル、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のスターを持ち、積極的にメンテナンスされています。