Voxa.Speech.WhisperCpp
0.7.2-alpha
dotnet add package Voxa.Speech.WhisperCpp --version 0.7.2-alpha
NuGet\Install-Package Voxa.Speech.WhisperCpp -Version 0.7.2-alpha
<PackageReference Include="Voxa.Speech.WhisperCpp" Version="0.7.2-alpha" />
<PackageVersion Include="Voxa.Speech.WhisperCpp" Version="0.7.2-alpha" />
<PackageReference Include="Voxa.Speech.WhisperCpp" />
paket add Voxa.Speech.WhisperCpp --version 0.7.2-alpha
#r "nuget: Voxa.Speech.WhisperCpp, 0.7.2-alpha"
#:package Voxa.Speech.WhisperCpp@0.7.2-alpha
#addin nuget:?package=Voxa.Speech.WhisperCpp&version=0.7.2-alpha&prerelease
#tool nuget:?package=Voxa.Speech.WhisperCpp&version=0.7.2-alpha&prerelease
Voxa.Speech.WhisperCpp
Local/offline speech-to-text for the Voxa pipeline using whisper.cpp via the MIT-licensed Whisper.net bindings.
No API key. No network after the first-run model download. Develop without cloud accounts, run zero-cost CI conversations, deploy air-gapped.
Usage
With the Voxa meta-package the descriptor is pre-registered — configuration is all you need:
{
"Voxa": {
"Stt": "WhisperCpp",
"WhisperCpp": { "Model": "base.en" }
}
}
À la carte:
services.AddVoxa(configuration, voxa => voxa.AddProvider(WhisperCppDescriptors.Stt));
How it behaves
Whisper is an utterance transcriber, not a streaming recognizer. The Voxa VAD gates audio, and the
engine transcribes once per utterance when speech ends — so transcripts are final-only (no
interim hypotheses), arriving roughly RTF × utterance length after the user stops talking.
For interactive development use tiny.en or base.en with the LowLatency profile.
Model weights load once per process and are shared across connections.
Configuration (Voxa:WhisperCpp)
| Key | Default | Notes |
|---|---|---|
Model |
base.en |
tiny, tiny.en, base, base.en, small, small.en + -q5_1 quantized variants |
ModelPath |
– | Explicit GGML path; bypasses catalog + cache |
Language |
en |
auto/empty = language detection (slower) |
Threads |
min(4, cores) | whisper.cpp inference threads |
Translate |
false |
Translate-to-English mode |
InputSampleRate overrides are rejected at startup — whisper models are 16 kHz mono only.
Models are downloaded on first run (SHA-256-verified, cached under %LOCALAPPDATA%\voxa\models /
~/.cache/voxa/models, override with VOXA_MODEL_CACHE or Voxa:Models:CachePath). Air-gapped
hosts set Voxa:Models:Offline = true and pre-provision the cache — a miss is a startup error
whose message contains the exact provisioning instructions.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Microsoft.Extensions.Configuration.Binder (>= 10.0.7)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.7)
- Voxa.Core (>= 0.7.2-alpha)
- Voxa.Speech.Abstractions (>= 0.7.2-alpha)
- Whisper.net (>= 1.9.1)
- Whisper.net.Runtime (>= 1.9.1)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Voxa.Speech.WhisperCpp:
| Package | Downloads |
|---|---|
|
Voxa
Batteries-included Voxa package. One package reference: AddVoxa(cfg) + MapVoxaVoice("/voice").UseDefaults() gives a working voice bot with STT, TTS, VAD, and an OpenAI chat agent — no knowledge of frames required. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.7.2-alpha | 105 | 7/10/2026 |
| 0.7.1-alpha | 67 | 7/10/2026 |
| 0.7.0-alpha | 73 | 7/10/2026 |
| 0.6.0-alpha | 85 | 6/22/2026 |
| 0.5.0-alpha | 85 | 6/13/2026 |