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のスターを持ち、積極的にメンテナンスされています。

ソース

CrispStrobe/CrispASR: 多言語ASRおよびTTSモデルのためのC++ ggmlランタイムハブ:Cohere Transcribe、Parakeet TDT、Voxtral、Canary 1B v2など、さらにユニバーサル強制アライメントなど