Prosodic Reiterant Speech — KlattGrid Prosody Synth
Reiterant / "gibberish speech" synthesis using a continuous KlattGrid. Extracts pitch, intensity, and syllable timing from a source recording, then resynthesises it with a chosen consonant-vowel pattern (ma, la, na, ba, de) — preserving the source's prosodic contour while removing lexical content.
What this does
This script implements reiterant / "gibberish speech" synthesis using a continuous KlattGrid. It extracts pitch, intensity, and syllable timing from a source recording, then resynthesises it with a chosen consonant-vowel pattern (ma, la, na, ba, de) — preserving the source's prosodic contour while removing lexical content. The result is a "gibberish" version of the speech that retains the original prosody (F0 contour, loudness envelope, rhythm) but replaces the phonetic content with a neutral, reiterant pattern.
Key Features:
- 5 Presets — Default, Robotic, Natural Speech, Expressive, Minimal
- 7 Syllable Patterns — ma, la, na, ba, de_schwa, alternating, random
- Speaker profiles — male, female, auto/broad
- Naturalness continuum — 0 (robotic) to 1 (natural) with jitter, shimmer, OQ, formant drift
- Pitch_strength — intonation gradient: 1 = natural contour, 0 = monotone at median
- Consonant classes — nasal (/m/, /n/), lateral (/l/), plosive (/b/, /d/), with place cues
- Research reproducibility — fixed seed for stochastic variation; 0 = unpredictable
- Quality Control (QC) — F0 correlation, semitone RMSE, intensity shape RMSE, speech/pause agreement
- Visualisation — source waveform with syllable boundaries, F0 overlay, intensity contour, output spectrogram/waveform, QC summary
Quick start
- In Praat, select exactly one Sound object (speech recording).
- Run script… →
Prosodic_Reiterant_Speech.praat. - Choose Output_mode (reiterant_synth or lowpass_comparison).
- Select a preset (Default, Robotic, Natural Speech, Expressive, Minimal, or Custom).
- Choose Syllable_pattern (ma, la, na, ba, de_schwa, alternating, random).
- Set Speaker_profile (male, female, auto/broad).
- Adjust Naturalness (0 = robotic, 1 = natural) and Pitch_strength (1 = natural contour, 0 = monotone).
- Click OK — the script analyses the source, builds a KlattGrid, synthesises, and outputs a new Sound.
5 Presets
| Preset | Naturalness | Jitter | OQ | Silence (dB) | Min Pause (s) | Min Syll (s) | Max Syll (s) | Character |
|---|---|---|---|---|---|---|---|---|
| Default | 1.0 | 0.4 | 0.70 | 25 | 0.12 | 0.08 | 0.45 | Balanced natural synthesis |
| Robotic | 0.0 | 0.0 | 0.50 | 25 | 0.12 | 0.08 | 0.45 | No variation — flat, synthetic |
| Natural Speech | 1.0 | 0.4 | 0.75 | 20 | 0.10 | 0.07 | 0.40 | More natural, tighter timing |
| Expressive | 1.0 | 0.8 | 0.85 | 18 | 0.08 | 0.06 | 0.50 | High variation, expressive |
| Minimal | 0.3 | 0.15 | 0.60 | 30 | 0.15 | 0.10 | 0.45 | Fast, low-quality |
Syllable Patterns — 7 Options
ma
Bilabial nasal + open vowel /a/. Nasal murmur with F2 locus ~1000 Hz.
la
Lateral approximant + /a/. F1 locus 250 Hz, F2 locus 1100 Hz, raised F3.
na
Alveolar nasal + /a/. Nasal murmur with F2 locus ~1750 Hz.
ba
Voiced plosive + /a/. Closure gap (35 ms) + VOT burst, F2 locus 800 Hz.
de_schwa
Alveolar plosive + schwa. F1 500 Hz, F2 1500 Hz, F2 locus 1800 Hz.
alternating
Cycles through ma, la, na, ba in order.
random
Randomly selects from ma, la, na, ba, de per syllable.
Controls — Human/Robotic Continuum
Naturalness (0–1)
Master control for voice quality. 0 = robotic (all stochastic variation suppressed), 1 = natural (full jitter, shimmer, OQ variation, formant drift).
Jitter_amount (0–1)
Syllabic F0 microvariation depth. At Naturalness=1, 0.4 = ±1.6%, 0.8 = ±3.2%. Controls per-syllable pitch perturbation, not cycle-to-cycle jitter.
OQ_flat (0.3–0.9)
Baseline open quotient (glottal open phase). Higher = breathier voice. OQ swings with intensity (pressed voice at high intensity).
Pitch_strength (0–2)
Intonation gradient. 1 = natural contour from source, 0 = strictly monotone at median F0 (Parsons-style monotonisation). 0.5 = half the natural contour range.
Research_seed
Fixed seed for reproducibility. 0 = unpredictable run; non-zero = deterministic (same random variation each run).
Gate_long_unvoiced_runs
Opt-in V/UV gating. If enabled, only contiguous source-unvoiced runs longer than Minimum_unvoiced_gate_s (default 50 ms) can mute the synthetic signal. Prevents short tracker dropouts from punching holes in the output.
Naturalness scaling
Jitter: max ±4% × jitter_amount × naturalness
Shimmer: max ±7% × naturalness (amplitude perturbation)
OQ swing: 0.15 × naturalness (intensity-driven open quotient variation)
Formant drift: F1: ±3% × naturalness, F2: ±2% × naturalness
Applications
Prosody research stimuli
Use case: Generate reiterant speech stimuli for prosody perception experiments. The output preserves the source's F0 contour, intensity envelope, and rhythm while removing lexical content.
Settings: Natural Speech preset, Pitch_strength=1.0. The output is a "gibberish" version of the source that can be used to test prosodic perception without segmental cues.
Monotonisation control (Parsons 2025)
Use case: Create a monotone version of a speech utterance at the speaker's median F0.
Settings: Pitch_strength=0, Robotic preset. The output is a flat, monotone synthesis — useful as a baseline for prosody manipulation studies.
Low-pass comparison baseline
Use case: Generate an F0-individualised low-pass filtered version of the source (Parsons et al., Interspeech 2025).
Settings: Output_mode=lowpass_comparison. The cutoff is 420.2 × (1 − e^{−0.0124 × meanF0}) with transition bandwidth = meanF0/4. Reuses the original waveform (filtered).
Expressive / robotic voice continuum
Use case: Explore the human-to-robotic voice quality continuum for sound design or synthesis research.
Settings: Adjust Naturalness from 0 to 1, with Expressive preset for maximum variation. The output ranges from flat, robotic speech to expressive, natural-sounding gibberish.
Workflow: Voice recording → Reiterant speech
Source: Spoken sentence.
Settings: Natural Speech preset, pattern=alternating (ma, la, na, ba).
Result: The source's prosody is preserved, but the lexical content is replaced with alternating CV syllables — a "gibberish" version of the original utterance.
Workflow: Monotonisation control
Source: Any speech recording.
Settings: Robotic preset, Pitch_strength=0.
Result: The output is a flat, monotone synthesis at the speaker's median F0 — no intonation contour.
Workflow: Low-pass comparison
Source: Speech recording.
Settings: Output_mode=lowpass_comparison.
Result: A low-pass filtered version of the original with an F0-individualised cutoff. Intended as a comparison/baseline condition for prosody obfuscation studies.
• No speech detected: Lower Silence_threshold_dB_below_peak (e.g., 25 → 18). If the recording is very quiet, the script may find no speech regions.
• Output has clicks or discontinuities: The continuous KlattGrid should avoid the "chunking" artifacts of per-syllable concatenation. If clicks occur, check that the source duration is long enough (>0.5 s) and that the pitch range is appropriate.
• Pitch tracking fails: Adjust Pitch_floor and Pitch_ceiling to match the speaker. For female voices, use floor=100, ceiling=500. For male voices, floor=75, ceiling=300.
• Naturalness not audible: Set Naturalness=1 and use the Expressive preset. The stochastic variation (jitter, shimmer, OQ, formant drift) may be subtle; increase Jitter_amount to 0.8 for more noticeable variation.
• Plosive closure not audible: The closure gap is 35 ms by default. For longer closures, edit the
plosClosed constant in the script (currently 0.035 s).• Output is too quiet: Increase Output_peak (0.85 → 0.95). The final Scale peak sets the global output level.
Quality Control (QC)
- Panel A: Source waveform with syllable boundaries (dotted) and nuclei (ticks).
- Panel B: F0 (Hz) — source vs output overlay, with median reference.
- Panel C: Intensity contour — source vs output shape (global level removed).
- Panel D: Output spectrogram (with F0 overlaid) or output waveform.
- Summary strip: F0 preservation (source-output correlation), synthesis accuracy (target-output correlation + RMSE), intensity shape RMSE, speech/pause agreement, seed.