Skip to main content

Crate prani

Crate prani 

Source
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

FeatureDefaultDescription
stdYesStandard library support. Disable for no_std + alloc
loggingNoStructured 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.