串流語音辨識與文字轉語音,可在原生環境與瀏覽器中運行。這是 Mistral 的 Voxtral Mini 4B Realtime (ASR) 和 Voxtral 4B TTS 模型之純 Rust 實作,使用 Burn ML 框架。

「The quick brown fox jumps over the lazy dog」(9 個 token),使用 casual_female 語音:

試試演示:ASR (語音轉文字) | TTS (文字轉語音)

開啟 https://localhost:8443,接受憑證,然後點擊「從伺服器載入」以下載模型分片。可從您的麥克風錄製或上傳 WAV 檔案進行轉錄。

託管演示:HuggingFace Spaces 上的 ASR | HuggingFace Spaces 上的 TTS

提供 20 種預設語音,涵蓋 9 種語言。TTS 流程包含骨幹(Mistral 3B)的自迴歸解碼、流匹配聲學預測和編解碼器合成,以產生 24 kHz 的音訊。

上游的 mistral-common 函式庫會以 32 個靜音 token(以 12.5 Hz 計算)進行左填充。在 mel/conv/reshape 流程後,這僅涵蓋了 38 個解碼器前綴位置中的 16 個為靜音——其餘 22 個包含實際音訊。f32 模型能正常處理此情況,但 Q4_0 量化會使解碼器對前綴中的語音內容變得敏感:直接以語音開始的音訊(麥克風錄音、無前導靜音的片段)會產生全靜音 token 而非文字。

左填充增加至 76 個 token,這正好對應 38 個解碼器 token 的靜音,並涵蓋了完整的串流前綴。詳情請參閱 src/audio/pad.rs。

在瀏覽器分頁中運行 4B 模型需要解決五個嚴格的限制:

依賴 GPU 的測試(模型層形狀、Q4 矩陣乘法、WGSL 著色器正確性)在 CI 中被跳過,因為 GitHub Actions 運行器缺乏 GPU 介面卡。這些測試可在任何支援 Vulkan、Metal 或 WebGPU 的本機機器上運行。

GGUF 檔案必須分割成 512 MB 或更小的分片,以符合瀏覽器的 ArrayBuffer 限制:

開發伺服器會從 models/voxtral-q4-shards/ (ASR) 和 models/voxtral-tts-q4-shards/ (TTS) 中發現分片。

Voxtral ASR 與 TTS 可在原生環境與瀏覽器中運行。這是 Mistral 的 Voxtral mini realtime ASR / TTS 之 Rust 實作,使用 Burn ML 框架。