Whisper Morph — User Guide
Smooth vocal transformation: gradually transitions between original voice and whisper synthesis using LPC-based resynthesis and time-varying crossfades.
What this does
This script implements whisper morph synthesis — a vocal transformation technique that creates smooth transitions between normal voice and synthesized whisper. Unlike simple filtering, this method uses: (1) LPC analysis/resynthesis: Extracts vocal tract filter characteristics. (2) Noise excitation: Replaces periodic glottal source with noise. (3) Dynamic envelope shaping: Preserves amplitude contours from original. (4) Time-varying crossfades: Smooth transitions between vocal modes. Process analyzes source voice, creates whisper version using LPC+noise, then applies time-based mixing between original and whisper. Result: natural-sounding vocal transformations that gradually shift between normal phonation and whisper.
Key Features:
- 3 Morph Types — Dry→Wet, Wet→Dry, Dry→Wet→Dry transitions
- LPC-Based Whisper — Authentic whisper synthesis preserving vocal tract
- Intensity Preservation — Maintains original amplitude envelope
- Smooth Crossfades — Time-varying mixing for natural transitions
- Automatic Processing — Single parameter controls entire transformation
- Voice-Specific — Optimized for vocal sounds with formant structure
Technical Implementation: (1) Source analysis: Check intensity, copy original sound. (2) Pre-processing: Apply noise gate, add micro-noise for stability. (3) LPC analysis: Extract vocal tract filter coefficients (Burg method). (4) Whisper synthesis: Create noise source, filter through LPC coefficients. (5) Envelope shaping: Extract intensity contour, apply to whisper signal. (6) Morph application: Time-varying crossfade between original and whisper based on morph type. (7) Post-processing: DC removal, peak normalization. Key insight: LPC separates vocal tract filter from glottal source, allowing replacement of periodic source with noise while preserving articulation and formant structure.
Quick start
- In Praat, select exactly one Sound object (preferably vocal content).
- Run script… →
whisper_morph.praat. - Choose Morph_type: Dry→Wet, Wet→Dry, or Dry→Wet→Dry.
- Click OK — whisper synthesis and morphing applied automatically.
- Result named "originalname-whisper-morph" appears in Objects window.
Whisper Synthesis Theory
Vocal Production Model
Source-Filter Theory
Traditional voice production:
Why LPC for Whisper Synthesis?
Linear Predictive Coding advantages:
- Separates source and filter: Exactly what we need for whisper conversion
- Efficient representation: Small number of coefficients capture formants
- Stable synthesis: Guaranteed filter stability
- Automatic order selection: Based on sampling rate and vocal tract length
LPC Analysis Process
Technical Implementation
Step-by-step LPC processing:
LPC Order Selection
Why sampling_rate/1000 + 2?
8000 Hz → order = 8 + 2 = 10 (telephone quality)
16000 Hz → order = 16 + 2 = 18 (speech recognition)
44100 Hz → order = 44 + 2 = 46 (audio quality)
48000 Hz → order = 48 + 2 = 50 (professional audio)
Rationale:
- 2 poles per formant (complex conjugate pairs)
- Human speech: ~4-5 formants below Nyquist
- 2×5 = 10 poles minimum
- Extra poles model spectral tilt, nasal zeros, etc.
- Formula: 2 poles per kHz + 2 extra poles
Result: Automatic adaptation to audio quality
🎤 Acoustic Intuition
Normal voice:
Vocal folds vibrate → periodic pulses
Clear pitch, harmonic structure
Vocal tract shapes spectrum → formants
Whispered voice:
Air turbulence at constrictions → noise
No pitch, broadband spectrum
Same vocal tract shaping → same formants
LPC magic: Preserves the shaping, replaces the source
Morphing Mathematics
Crossfade Functions
Time-varying mixing formulas:
Why These Crossfade Functions?
Perceptual advantages:
- Linear ramps: Simple, predictable, smooth
- Energy consideration: Approximately power-preserving
- Natural progression: Gradual changes sound intentional
- Flexible patterns: Different shapes for different effects
Complete Processing Pipeline
Morph Types
Type 1: Dry to Wet
🎭 Gradual Transformation to Whisper
Pattern: Original voice → Whisper (linear progression)
Crossfade: Mix goes from 0% whisper to 100% whisper
Use case: Voice gradually losing power, fading into whisper
Applications:
| Scenario | Effect | Example Usage |
|---|---|---|
| Narrative fade | Voice gradually becomes confidential | "And then she said... [whisper] come closer" |
| Energy depletion | Voice loses strength, becomes breathy | Exhausted character, dying speech |
| Distance effect | Voice recedes into background | Off-screen narration fading out |
| Mystery build | Normal speech → confidential whisper | Storytelling, secret revelation |
Type 2: Wet to Dry
🎭 Gradual Transformation from Whisper
Pattern: Whisper → Original voice (linear progression)
Crossfade: Mix goes from 100% whisper to 0% whisper
Use case: Whisper gradually gaining strength, becoming normal voice
Applications:
| Scenario | Effect | Example Usage |
|---|---|---|
| Awakening | Whisper gains strength, becomes normal | Character waking up, gaining confidence |
| Approach effect | Distant whisper becomes clear speech | Voice coming closer, emerging from background |
| Revelation | Secret → public announcement | Whispered secret becoming public statement |
| Energy gain | Weak voice gaining power | Character recovering strength |
Type 3: Dry to Wet to Dry
🎭 Temporary Whisper Effect
Pattern: Original → Whisper → Original (triangular progression)
Crossfade: Mix goes 0%→100%→0% whisper
Use case: Temporary whisper insertion within normal speech
Applications:
| Scenario | Effect | Example Usage |
|---|---|---|
| Parenthetical whisper | Brief whispered aside in normal speech | "The meeting is at eight [whisper: don't be late] okay?" |
| Ghostly intervention | Supernatural whisper overlay | Normal speech interrupted by ghostly whisper |
| Conspiratorial aside | Quick secret within conversation | Public speech with quick private comment |
| Dream sequence | Reality → dream state → reality | Normal voice drifting into dreamy whisper |
Morph Type Selection Guide
🎯 Choosing the Right Morph Type
For linear transformations: Type 1 or Type 2
For temporary effects: Type 3
For narrative progression: Match to story direction
For musical phrasing: Align with musical structure
Parameters
Morph Control Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
| Morph_type | option | Dry to Wet | Transformation direction and pattern |
Automatic Processing Parameters
| Parameter | Value | Description |
|---|---|---|
| LPC frame length | 0.025 s | Analysis window duration |
| LPC frame shift | 0.010 s | Analysis hop size |
| LPC pre-emphasis | 50 Hz | High-pass filter cutoff |
| LPC order | sf/1000 + 2 | Automatic based on sampling rate |
| Intensity cutoff | 400 Hz | Low-pass filter for envelope |
| Noise gate threshold | ±0.01 | Quiet sample removal |
| Micro-noise amplitude | ±0.00001 | Numerical stability noise |
Applications
Sound Design and Film
Use case: Vocal transformations for character effects
Technique: Use Type 3 for ghostly interventions, Type 1 for fading effects
Example: Ghost character voice emerging from normal speech
Music Production
Use case: Vocal processing for dramatic effects
Technique: Apply to vocal tracks at phrase boundaries
Workflow:
- Type 1: Verse → whisper chorus transition
- Type 2: Whisper intro → powerful verse
- Type 3: Whispered words within normal phrases
- Layer with reverb for ethereal effects
Theater and Performance
Use case: Enhanced vocal delivery for dramatic impact
Advantages:
- Preserves vocal identity and articulation
- Natural-sounding transformations
- Flexible timing control
- Consistent level matching
Example: Recorded theater voice-overs with whisper effects
Experimental Music and Audio Art
Use case: Textural vocal manipulations
Technique: Process vocal samples with different morph types
Application: Acousmatic composition, vocal texture layers
Practical Workflow Examples
🎬 Film: Ghostly Apparition
Goal: Normal voice interrupted by ghostly whisper
Settings:
- Source: Actor's line reading
- Morph type: Type 3 (Dry→Wet→Dry)
- Timing: Whisper centered on key words
- Post-processing: Add subtle reverb to whisper portion
Result: Supernatural vocal effect preserving intelligibility
🎵 Music: Ethereal Vocal Transition
Goal: Smooth transition from powerful singing to breathy whisper
Settings:
- Source: Vocal track phrase
- Morph type: Type 1 (Dry→Wet)
- Timing: Entire musical phrase
- Post-processing: Layer with ambient reverb
Result: Dramatic vocal transition for song bridge or ending
🎭 Theater: Character Transformation
Goal: Weak character gaining confidence through speech
Settings:
- Source: Monologue recording
- Morph type: Type 2 (Wet→Dry)
- Timing: Align with character arc progression
- Post-processing: Match room acoustics
Result: Vocal performance enhancing character development
Advanced Techniques
- Layered morphs: Process same source with different morph types
- Time-stretching: Apply morph to time-stretched vocal for extended effects
- Spatial processing: Add stereo panning to whisper component
- Reverb tails: Apply different reverb to whisper vs normal sections
- Format manipulation: Process LPC coefficients before resynthesis
Combine with other Praat tools for enhanced effects
- Clean recordings: Minimal noise for best LPC analysis
- Consistent level: Avoid extreme dynamics for stable processing
- Clear articulation: Well-formed vowels and consonants
- Appropriate duration: 1-10 seconds works well
- Vocal sounds: Speech, singing, vocalizations work best
Troubleshooting Common Issues
Cause: Sound too quiet for intensity detection
Solution: Increase input level, check recording quality
Cause: Poor LPC analysis, background noise, or non-vocal source
Solution: Use clean vocal recordings, check for noise
Cause: Sharp transitions in source sound
Solution: Use sounds with smooth amplitude envelope
Cause: LPC order inappropriate for source
Solution: Use vocal sounds with clear formant structure
Technical Deep Dive
LPC Analysis Mathematics
Linear Prediction Fundamentals
LPC model equation:
Automatic Parameter Selection
Why these specific values?