Whisper Morph — User Guide

Smooth vocal transformation: gradually transitions between original voice and whisper synthesis using LPC-based resynthesis and time-varying crossfades.

Author: Shai Cohen Affiliation: Department of Music, Bar-Ilan University, Israel Version: 0.1 (2025) License: MIT License Repo: https://github.com/ShaiCohen-ops/Praat-plugin_AudioTools
Contents:

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:

What is whisper morph synthesis? Traditional vocal effects: Static filtering, pitch shifting, or simple mixing. Whisper morph synthesis: Advanced vocal transformation that preserves the articulatory content while changing the excitation source. Key characteristics: (1) LPC preservation: Maintains formant structure and vocal tract filtering. (2) Source replacement: Periodic glottal pulses → aperiodic noise. (3) Dynamic control: Time-varying mixing creates evolving transformations. (4) Natural results: Sounds like actual whispering rather than filtered speech. Advantages: (1) Authentic whisper: Preserves vocal identity and articulation. (2) Smooth transitions: Gradual changes sound more natural. (3) Flexible timing: Different morph patterns for different effects. (4) Preserves intelligibility: Formant structure maintained for clear speech. Use cases: Sound design (vocal transformations, ghost effects), music production (vocal processing, special effects), film/TV (voice modulation, supernatural voices), experimental music (vocal texture manipulation), speech processing (vocal mode studies).

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

  1. In Praat, select exactly one Sound object (preferably vocal content).
  2. Run script…whisper_morph.praat.
  3. Choose Morph_type: Dry→Wet, Wet→Dry, or Dry→Wet→Dry.
  4. Click OK — whisper synthesis and morphing applied automatically.
  5. Result named "originalname-whisper-morph" appears in Objects window.
Quick tip: Use vocal recordings with clear formant structure for best results — speech, singing, vocalizations. Choose morph type based on desired effect: Dry→Wet for normal voice gradually becoming whisper, Wet→Dry for whisper gradually becoming normal voice, Dry→Wet→Dry for temporary whisper effect. Processing preserves original duration and sampling rate. The script automatically handles all LPC analysis, whisper synthesis, and crossfading. Results are most convincing with vocal sounds that have strong formant structure — whispered results with non-vocal sounds may be less dramatic. Output maintains original intensity levels for consistent loudness.
Important: VOICE-OPTIMIZED — works best with vocal sounds containing clear formant structure. Non-vocal sounds may produce less dramatic transformations. Very quiet sounds (below Praat's intensity detection threshold) will be copied without processing. LPC analysis assumes vocal tract-like filtering — results with non-speech sounds may be unpredictable. The script uses automatic parameter selection based on sampling rate — no manual control over LPC order or analysis settings. Processing creates several temporary objects but cleans them up automatically. For best results, use clean vocal recordings without background noise or excessive reverberation. The whisper synthesis preserves the original vocal tract characteristics but replaces the glottal source with noise.

Whisper Synthesis Theory

Vocal Production Model

Source-Filter Theory

Traditional voice production:

Normal phonation: Voice = Glottal Source × Vocal Tract Filter Where: Glottal Source = Periodic pulse train (pitch) Vocal Tract Filter = Formant resonances (vowels) Example: "Ah" vowel at 100 Hz Source: 100 Hz pulse train Filter: F1=700Hz, F2=1100Hz, F3=2400Hz, etc. Whispered speech: Voice = Noise Source × Vocal Tract Filter Where: Noise Source = Aperiodic turbulence (no pitch) Vocal Tract Filter = Same formant resonances Example: Whispered "Ah" Source: Broadband noise Filter: Same F1=700Hz, F2=1100Hz, F3=2400Hz Key insight: Vocal identity and articulation preserved in filter Vocal mode (normal/whisper) determined by source

Why LPC for Whisper Synthesis?

Linear Predictive Coding advantages:

LPC Analysis Process

Technical Implementation

Step-by-step LPC processing:

1. Pre-processing: Original sound → Copy and scale peak to 0.99 Apply noise gate: remove very quiet sections Add micro-noise: randomUniform(-0.00001, 0.00001) (Prevents numerical issues in LPC analysis) 2. LPC Analysis (Burg method): Frame length: 0.025s (25ms) Frame shift: 0.01s (10ms) Pre-emphasis: 50 Hz (high-pass filter) LPC order: round(sampling_frequency / 1000) + 2 Example: 44100 Hz → order = 44 + 2 = 46 (Captures formants up to ~8 kHz) 3. Whisper Synthesis: Create noise: randomUniform(-1, 1) Filter noise through LPC coefficients Resample to ensure duration match Override sampling frequency back to original 4. Envelope Shaping: Extract intensity contour from original Convert to multiplicative envelope Apply envelope to whisper signal Scale to match original intensity level

LPC Order Selection

Why sampling_rate/1000 + 2?

Sampling rate vs LPC order:
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:

Variables: x = time position (0 to duration) dur = total duration original[x] = original sound at time x whisper[x] = whisper sound at time x Morph Type 1: Dry → Wet mix_weight = x / dur (0→1 linear ramp) output[x] = original[x] × (1 - mix_weight) + whisper[x] × mix_weight = original[x] × (1 - x/dur) + whisper[x] × (x/dur) Morph Type 2: Wet → Dry mix_weight = 1 - x/dur (1→0 linear ramp) output[x] = original[x] × mix_weight + whisper[x] × (1 - mix_weight) = original[x] × (x/dur) + whisper[x] × (1 - x/dur) Morph Type 3: Dry → Wet → Dry IF x < dur/2: mix_weight = x / (dur/2) (0→1 first half) ELSE: mix_weight = 1 - (x - dur/2) / (dur/2) (1→0 second half) output[x] = original[x] × (1 - mix_weight) + whisper[x] × mix_weight Properties: - Continuous functions (no clicks) - Energy-preserving crossfades - Linear amplitude mixing

Why These Crossfade Functions?

Perceptual advantages:

Complete Processing Pipeline

SETUP: Select vocal Sound object Choose morph_type (1, 2, or 3) Check intensity (skip if too quiet) WHISPER SYNTHESIS BRANCH: STEP 1: Pre-processing Copy original → workpre Scale peak: 0.99 Apply noise gate: remove samples < |0.01| Add micro-noise: ±0.00001 (numerical stability) STEP 2: LPC Analysis LPC order = round(sf/1000) + 2 Frame length = 0.025s, shift = 0.01s Pre-emphasis = 50 Hz Burg method LPC analysis STEP 3: Noise Excitation Create white noise (duration matched) Filter through LPC coefficients Resample to correct duration Restore original sampling rate STEP 4: Envelope Shaping Extract intensity from original (400 Hz cutoff) Convert to multiplicative envelope Apply envelope to whisper Subtract DC offset Scale to original intensity level MORPHING APPLICATION: Copy original → morphed Apply time-varying mix formula: Type 1: dry*(1-x/dur) + wet*(x/dur) Type 2: dry*(x/dur) + wet*(1-x/dur) Type 3: triangular crossfade (0→1→0) FINALIZATION: Rename: "original-whisper-morph" Clean up all temporary objects Play result OUTPUT: Vocal transformation with smooth whisper morphing

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:

ScenarioEffectExample Usage
Narrative fadeVoice gradually becomes confidential"And then she said... [whisper] come closer"
Energy depletionVoice loses strength, becomes breathyExhausted character, dying speech
Distance effectVoice recedes into backgroundOff-screen narration fading out
Mystery buildNormal speech → confidential whisperStorytelling, 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:

ScenarioEffectExample Usage
AwakeningWhisper gains strength, becomes normalCharacter waking up, gaining confidence
Approach effectDistant whisper becomes clear speechVoice coming closer, emerging from background
RevelationSecret → public announcementWhispered secret becoming public statement
Energy gainWeak voice gaining powerCharacter 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:

ScenarioEffectExample Usage
Parenthetical whisperBrief whispered aside in normal speech"The meeting is at eight [whisper: don't be late] okay?"
Ghostly interventionSupernatural whisper overlayNormal speech interrupted by ghostly whisper
Conspiratorial asideQuick secret within conversationPublic speech with quick private comment
Dream sequenceReality → dream state → realityNormal 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

ParameterTypeDefaultDescription
Morph_typeoptionDry to WetTransformation direction and pattern

Automatic Processing Parameters

ParameterValueDescription
LPC frame length0.025 sAnalysis window duration
LPC frame shift0.010 sAnalysis hop size
LPC pre-emphasis50 HzHigh-pass filter cutoff
LPC ordersf/1000 + 2Automatic based on sampling rate
Intensity cutoff400 HzLow-pass filter for envelope
Noise gate threshold±0.01Quiet sample removal
Micro-noise amplitude±0.00001Numerical 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:

Theater and Performance

Use case: Enhanced vocal delivery for dramatic impact

Advantages:

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

Creative processing strategies:
  • 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

Source material optimization:
  • 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

Problem: No transformation occurs (output identical to input)
Cause: Sound too quiet for intensity detection
Solution: Increase input level, check recording quality
Problem: Whisper sounds artificial or robotic
Cause: Poor LPC analysis, background noise, or non-vocal source
Solution: Use clean vocal recordings, check for noise
Problem: Clicks or artifacts at morph boundaries
Cause: Sharp transitions in source sound
Solution: Use sounds with smooth amplitude envelope
Problem: Formants sound wrong in whisper
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:

Time domain prediction: x[n] = Σₖ₌₁ᵖ aₖ x[n-k] + e[n] Where: x[n] = current sample aₖ = LPC coefficients (k = 1...p) e[n] = prediction error (excitation) p = LPC order Frequency domain interpretation: H(z) = 1 / (1 - Σₖ₌₁ᵖ aₖ z⁻ᵏ) This represents the vocal tract filter The excitation e[n] represents glottal source For whisper synthesis: Keep filter H(z) (vocal tract) Replace e[n] with noise (whisper source) Burg method: Minimizes forward and backward prediction error Guaranteed stable filter Efficient computation

Automatic Parameter Selection

Why these specific values?

Frame length (0.025s): - Short enough to capture formant movements - Long enough for stable spectral estimation - Typical for speech processing: 20-30ms Frame shift (0.010s): - Provides adequate temporal resolution - 60% overlap for smooth transitions - Standard for speech analysis Pre-emphasis (50Hz): - Compensates for natural spectral tilt - -6dB/octave typical for speech - High-pass filter emphasizes high frequencies LPC order (sf/1000 + 2): - 2 poles per formant (complex conjugate pairs) - Human speech: 4-5 formants below Nyquist - Extra poles for spectral tilt and fine structure - Adapts to sampling rate automatically Intensity cutoff (400Hz): - Captures amplitude envelope - Removes fine spectral detail - Preserves syllable-rate dynamics