日本語版
最新ニュース
科学&テクノロジー

GitHub – TrevorS/voxtral-mini-realtime-rs

ネイティブおよびブラウザーで実行されるストリーミング音声認識。純粋な Rust 実装 ミストラルの Voxtral Mini 4B リアルタイム を使用したモデル やけど ML フレームワーク。 第 4 四半期の GGUF 量子化パス (2.5 GB) は、WASM + WebGPU を介してブラウザー タブで完全にクライアント側で実行されます。 ライブで試してみてください。 # Download model weights (~9 GB) uv run --with huggingface_hub hf download mistralai/Voxtral-Mini-4B-Realtime-2602…

GitHub – TrevorS/voxtral-mini-realtime-rs

1770694368
2026-02-10 01:26:00


ライブデモ

ネイティブおよびブラウザーで実行されるストリーミング音声認識。純粋な Rust 実装 ミストラルの Voxtral Mini 4B リアルタイム を使用したモデル やけど ML フレームワーク。

第 4 四半期の GGUF 量子化パス (2.5 GB) は、WASM + WebGPU を介してブラウザー タブで完全にクライアント側で実行されます。 ライブで試してみてください。

# Download model weights (~9 GB)
uv run --with huggingface_hub 
  hf download mistralai/Voxtral-Mini-4B-Realtime-2602 --local-dir models/voxtral

# Transcribe an audio file (f32 SafeTensors path)
cargo run --release --features "wgpu,cli,hub" --bin voxtral-transcribe -- 
  --audio audio.wav --model models/voxtral

# Or use the Q4 quantized path (~2.5 GB)
cargo run --release --features "wgpu,cli,hub" --bin voxtral-transcribe -- 
  --audio audio.wav --gguf models/voxtral-q4.gguf --tokenizer models/voxtral/tekken.json

# Build WASM package
wasm-pack build --target web --no-default-features --features wasm

# Generate self-signed cert (WebGPU requires secure context)
openssl req -x509 -newkey ec -pkeyopt ec_paramgen_curve:prime256v1 
  -keyout /tmp/voxtral-key.pem -out /tmp/voxtral-cert.pem 
  -days 7 -nodes -subj "/CN=localhost"

# Start dev server
bun serve.mjs

開ける https://localhost:8443をクリックし、証明書を受け入れて、 サーバーからのロード モデルのシャードをダウンロードします。マイクから録音するか、WAV ファイルをアップロードして文字起こしします。

HuggingFace Spaces でホストされたデモ ローカルセットアップをスキップしたい場合。

Audio (16kHz mono) -> Mel spectrogram [B, 128, T] -> Causal encoder (32 layers, 1280 dim, sliding window 750) -> Conv 4x downsample -> Reshape [B, T/16, 5120] -> Adapter [B, T/16, 3072] -> Autoregressive decoder (26 layers, 3072 dim, GQA 32Q/8KV) -> Token IDs -> Text

F32 (ネイティブ) Q4 GGUF (ネイティブ + ブラウザ)
重み SafeTensor (~9 GB) GGUF Q4_0 (~2.5 GB)
線形運用 テンソルマットムルの書き込み カスタム WGSL シェーダ (融合 dequant + matmul)
埋め込み f32 テンソル (1.5 GiB) Q4 の GPU (216 MB) + ルックアップ用の CPU バイト
ブラウザ いいえ はい (WASM + WebGPU)

アップストリームの mistral-common ライブラリは、32 個の無音トークン (12.5 Hz) でオーディオを左パッドします。 mel/conv/reshape パイプラインの後、これにより、38 個のデコーダー プレフィックス位置のうち 16 個のみが無音でカバーされ、残りの 22 個には実際のオーディオが含まれます。 f32 モデルはこれを適切に処理しますが、Q4_0 量子化により、デコーダはプレフィックス内の音声コンテンツに敏感になります。音声ですぐに始まるオーディオ (マイク録音、先頭に無音部分がないクリップ) は、テキストの代わりにオールパッド トークンを生成します。

左側のパディングは 76 トークンに増加し、正確に 38 個の無音デコーダー トークンにマッピングされ、完全なストリーミング プレフィックスをカバーします。見る src/audio/pad.rs 詳細については。

ブラウザ タブで 4B モデルを実行するには、次の 5 つの厳しい制約を解決する必要がありました。

  1. 2GBの割り当て制限ShardedCursor 複数の読み取り Vec バッファ
  2. 4GBのアドレス空間 — 2 段階のロード: 重みを解析し、リーダーをドロップし、その後ファイナライズします
  3. 1.5 GiB 埋め込みテーブル — GPU 上の Q4 エンベディング + CPU 側の行ルックアップ
  4. 同期GPUリードバックなし — すべての tensor 読み取りは次を使用します into_data_async().await
  5. 256 ワークグループ呼び出し制限 — カーネルワークグループを制限するためにパッチを適用した cubecl-wgpu

# Native (default features: wgpu + native-tokenizer)
cargo build --release

# With all features
cargo build --release --features "wgpu,cli,hub"

# WASM
wasm-pack build --target web --no-default-features --features wasm

特徴 説明
wgpu (デフォルト) Burn/CubeCL 経由の GPU バックエンド (WebGPU、Vulkan、Metal)
native-tokenizer (デフォルト) Tekken トークナイザー (C deps、WASM 非互換)
wasm ブラウザのサポート: wasm-bindgen、WebGPU デバイス初期化、JS バインディング
cli clap + indicatif を使用した CLI バイナリ
hub HuggingFace Hub モデルのダウンロード

# Unit + integration tests (requires GPU for full suite)
cargo test --features "wgpu,cli,hub"

# Lint
cargo clippy --features "wgpu,cli,hub" -- -D warnings
cargo clippy --no-default-features --features wasm --target wasm32-unknown-unknown -- -D warnings

# E2E browser test (requires Playwright + model shards)
bunx playwright test tests/e2e_browser.spec.ts

GitHub Actions ランナーには GPU アダプターがないため、GPU に依存するテスト (モデル レイヤー形状、Q4 matmul、WGSL シェーダーの正確性) は CI ではスキップされます。これらのテストは、Vulkan、Metal、または WebGPU をサポートする任意のマシン上でローカルに実行されます。

Q4 GGUF シャーディング (ブラウザ用)

GGUF ファイルは、ブラウザーの管理下に留まるように、512 MB 以下のシャードに分割する必要があります。 ArrayBuffer 制限:

split -b 512m models/voxtral-q4.gguf models/voxtral-q4-shards/shard-

開発サーバーと E2E テストは、シャードを自動的に検出します。 models/voxtral-q4-shards/

近日提供予定: ネイティブ ターゲットとブラウザ ターゲットにわたる精度 (WER) と推論速度のベンチマーク。

src/
  audio/          # Mel spectrogram, chunking, resampling, padding
  models/         # F32 model: encoder, decoder, adapter, attention, RoPE, KV cache
  gguf/           # Q4 GGUF: reader, loader, model, tensor, WGSL shader, tests
  web/            # WASM bindings: VoxtralQ4, initWgpuDevice, async decode loop
  tokenizer/      # Tekken tokenizer wrapper (native only)
  bin/transcribe  # CLI binary

web/              # Browser demo: index.html, worker.js, voxtral-client.js
tests/            # Integration tests + Playwright E2E spec
scripts/          # Dev scripts: reference implementations, weight inspection, E2E helpers
patches/          # cubecl-wgpu workgroup size fix for WebGPU

アパッチ-2.0

#GitHub #TrevorSvoxtralminirealtimers

執筆者について: nipponese

Nipponese News編集部は、国内外のニュースを日本語で分かりやすくお届けします。