novolis-audio / voice-models.md
Voice models (Sherpa ONNX)
SFX, voice, and live music
dotnetaudiottsminiaudionovolis
Novolis voice uses Sherpa-ONNX offline TTS.
Bundled speakers (in this repo)
Profile metadata is declared in `NovolisAudioVoiceModelsManifest.cs` and emitted as `VoiceModelCatalog.g.cs`.
| Model profile id | Folder | Sample rate |
|---|---|---|
en-us-piper-amy | `models/en-us-piper-amy/` | 16 kHz |
en-us-piper-lessac-low | `models/en-us-piper-lessac-low/` | 16 kHz |
en-us-piper-kristin-medium | `models/en-us-piper-kristin-medium/` | 22.05 kHz |
Git LFS is required for *.onnx. Clone with:
git lfs install
git clone https://github.com/Novolis-Platform/novolis-audio.gitNovolis.Audio.Voice.SherpaOnnx packs each model as models/{profileId}.zip and extracts at build time (buildTransitive/Novolis.Audio.Voice.SherpaOnnx.targets).
Archetypes (excitable_female, procedural_male, …) map to these speakers in `Novolis.Audio.Voice.Profiles`—they are not the same as model ids.
Fetch locally
pwsh -File scripts/fetch-voice-model.ps1 -ProfileId en-us-piper-amy
pwsh -File scripts/fetch-voice-model.ps1 -ProfileId en-us-piper-lessac-low
pwsh -File scripts/fetch-voice-model.ps1 -ProfileId en-us-piper-kristin-mediumOverride with another model
Point NOVOLIS_VOICE_MODEL_DIR at an alternate extracted folder (or pass VoiceSynthesisOptions.ModelDirectory).
Verify
dotnet test --project tests/Novolis.Audio.Unit/Novolis.Audio.Unit.csproj -c ReleaseSherpa synthesis tests run only when materialized ONNX files are present.