Voxa.Audio.Onnx 0.7.2-alpha

This is a prerelease version of Voxa.Audio.Onnx.
dotnet add package Voxa.Audio.Onnx --version 0.7.2-alpha
                    
NuGet\Install-Package Voxa.Audio.Onnx -Version 0.7.2-alpha
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Voxa.Audio.Onnx" Version="0.7.2-alpha" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Voxa.Audio.Onnx" Version="0.7.2-alpha" />
                    
Directory.Packages.props
<PackageReference Include="Voxa.Audio.Onnx" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Voxa.Audio.Onnx --version 0.7.2-alpha
                    
#r "nuget: Voxa.Audio.Onnx, 0.7.2-alpha"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Voxa.Audio.Onnx@0.7.2-alpha
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Voxa.Audio.Onnx&version=0.7.2-alpha&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=Voxa.Audio.Onnx&version=0.7.2-alpha&prerelease
                    
Install as a Cake Tool

Voxa.Audio.Onnx

The shared ONNX Runtime session host for Voxa's local-speech tier (VLS-006). Every ONNX model in Voxa — VAD, TTS, ASR, enhancement — loads its weights through this host instead of constructing an InferenceSession itself, so a model loads once per (path, device) and is shared across every connection on the process.

This package ships the host + the device seam + the model-descriptor shape — not a model. Consuming engines bring their own pinned catalogs (a ParakeetCatalog, a SidonCatalog, …) the same way Kokoro and whisper.cpp do.

What's in the box

  • OnnxModelHost — a process-wide (path, device)-keyed session cache. Load(path, device, hook) returns a shared IOnnxSession; concurrent loads of the same key resolve to one instance. Sessions are process-lifetime (they hold shared weights); OnnxModelHost.EvictAll() disposes and clears them for tests and Studio's "unload models."
  • IOnnxSession — a thin, test-fakeable handle exposing the InferenceSession (for engines that bind OrtValues directly — the zero-allocation steady-state pattern), the input/output names, and the EP that actually loaded.
  • OnnxDevice + OnnxDeviceParser — the shared Device config convention (cpu / auto / cuda / directml / coreml), parsed identically across every ONNX engine.
  • OnnxModelDescriptor + ResolveAsync — an ONNX model self-describes as a graph artifact + pinned sidecars (tokenizer / vocab / config / extra graphs) and resolves through the unchanged VoxaModelCache.

CPU by default; GPU is opt-in and never bundled

The base package references only the CPU Microsoft.ML.OnnxRuntime (pinned to the same 1.26.0 as SileroVad / Kokoro, with PrivateAssets so it isn't re-flowed onto consumers). Device=cpu is the default and the only target the bundled runtime supports.

To use a GPU, the consuming app adds the matching ORT package itself — Voxa never ships GPU natives, and the ORT CPU/GPU packages conflict if both land in one process:

<PackageReference Include="Microsoft.ML.OnnxRuntime.Gpu" Version="1.26.0" /> 

With that present, Device=cuda (or directml / coreml) loads the matching EP. Without it, an explicit GPU device fails at session creation with a copy-pasteable remediation, and Device=auto falls back to CPU with a warning — it never hard-fails.

Not yet here

  • The OnnxTensors convenience run-helper (the KokoroTtsEngine.RunInference shape, lifted) lands with the first consumer that needs it, once its dtype matrix is known. Today engines use the direct Session tier.
  • VLS-006 ships no model catalog; pinned models (and their SHA-256s + cleared licences) live in the consuming engine packages (VLS-004 / 005 / 007 / 008, VRT-005).
Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on Voxa.Audio.Onnx:

Package Downloads
Voxa.Speech.Kokoro

Local/offline high-quality text-to-speech for the Voxa pipeline using Kokoro-82M (Apache-2.0) on ONNX Runtime, in-process. No API key, no network after the first-run model download. The quality tier of Voxa's local speech stack — speech that rivals commercial cloud voices, on your own CPU. Phonemization runs out-of-process (espeak-ng CLI per sentence); this package links no GPL code and must never reference KokoroSharp (which bundles espeak-ng natives).

Voxa.Audio.Diarization.Onnx

Reference ONNX implementations for Voxa speaker diarization (VLS-005 WS2). Ships PyannoteOnnxSegmentation — an ISpeakerSegmentation backed by the MIT-licensed pyannote segmentation-3.0 model on the shared Voxa.Audio.Onnx host. The model takes raw 16 kHz audio (SincNet front-end is inside the graph) and emits speaker activity; the package decodes powerset → speech regions in pure C#. Pin is the sherpa-onnx export (MIT).

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 77 7/10/2026
0.7.0-alpha 75 7/10/2026
0.6.0-alpha 91 6/22/2026