Expand description
§prani — Creature and Animal Vocal Synthesis
prani (Sanskrit: living being / creature) provides vocal synthesis for non-human creatures: animals, fantasy beings, and alien species. Built on svara’s formant synthesis engine with species-specific vocal tract models, call pattern generators, and behavioral vocalization mapping.
§Architecture
CreatureVoice (species params)
|
v
svara::GlottalSource → CreatureTract → Call Pattern → Output
(excitation) (species tract) (vocalization)§Key Concepts
- Species: Defines vocal tract geometry, f0 range, and available call types
- CreatureVoice: Instance of a species with individual variation
- Vocalization: A call pattern (growl, chirp, howl, roar, hiss, purr)
- CallIntent: Why the creature is vocalizing (alarm, territorial, mating, pain, idle)
§Quick Start
use prani::prelude::*;
// Create a wolf voice and synthesize a howl
let voice = CreatureVoice::new(Species::Wolf);
let samples = voice.vocalize(
&Vocalization::Howl,
44100.0,
2.0, // 2 seconds
).expect("synthesis should succeed");§Feature Flags
| Feature | Default | Description |
|---|---|---|
std | Yes | Standard library support. Disable for no_std + alloc |
logging | No | Structured logging via tracing-subscriber |
Modules§
- error
- Error types for the prani crate.
- prelude
- Convenience re-exports for common usage.
- preset
- Named voice presets — specific individuals within a species.
- sequence
- Call sequencing: bouts, phrases, and chorus synthesis.
- spatial
- Spatial audio effects for creature vocalizations.
- species
- Species definitions with vocal tract parameters.
- tract
- Creature-specific vocal tract models.
- vocalization
- Vocalization types and call intent mapping.
- voice
- Creature voice — combines species, individual variation, and synthesis.