IRCAM SuperVP Transform — User Guide
Spectral voice transformation bridge from Praat to the SuperVP engine (AudioSculpt / Ircam). Supports 11 transform modes: Age, Gender, Flatten pitch, Time stretch, Tremolo, Cross synthesis, Vibrato, Breathiness, Formant shift, Harmoniser, De‑noise, and Age+Gender chain. Exports F0 + Intensity BPFs, builds SuperVP parameter files, calls the command‑line engine, and imports the result.
What this does
SuperVP Transform is a bridge between Praat and the SuperVP spectral processing engine (part of AudioSculpt / Ircam). The workflow:
- Praat exports the selected sound(s) to WAV.
- If needed, Praat extracts F0 and Intensity contours as BPF files.
- A Python script builds SuperVP command lines, calls
supervp.exe(or the appropriate binary), and writes the processed WAV. - Praat imports the result and optionally displays waveforms and spectrograms.
- Age – voice aging / rejuvenation (‑age).
- Gender – male ↔ female morph (‑male / ‑female + extra formant shift).
- Flatten pitch – normalise F0 to median or target pitch.
- Time stretch – F0‑adaptive time dilation (‑D + ‑Mauto).
- Tremolo – intensity‑envelope tremolo (‑trmdle).
- Cross synth – spectral cross‑synthesis between two sounds (‑Gcross).
- Vibrato – sinusoidal pitch modulation (via ‑transke).
- Breathiness – blend spectral noise (breathy/whisper) via ‑Gnoise.
- Formant shift – shift vocal tract resonances (‑transenv).
- Harmoniser – add parallel voice at fixed interval (‑transke + mixing).
- De‑noise – spectral gate via intensity‑derived BPF (‑ggain).
- Age + Gender – chain age then gender in two passes.
Quick start
- Install SuperVP (AudioSculpt / Ircam) and ensure
supervp.exeis in the expected location (defaultC:\Users\User\SuperVP\bin\supervp.exe). - Place the Python helper script
supervp_transform.pyin theplugin_AudioTools/py/folder. - In Praat, select 1 or 2 Sound objects (depending on mode).
- Run script… →
SuperVP_Transform.praat. - Choose a transform mode from the list.
- Adjust mode‑specific parameters (age years, gender direction, stretch factor, etc.).
- Click Run. Praat exports WAVs, extracts F0/Intensity if needed, calls Python, and SuperVP processes the sound.
- The result is imported as
originalname_svp_modenameand optionally played.
supervpExe$ in the script if needed.
Transform modes (12)
| Mode | SuperVP flags | Parameters | Description | |||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Age | ‑age | age_years | 。||||||||||||||||||||||||||||||||
| Gender | ‑female / ‑male + ‑transenv | gender_dir, gender_amount | 。||||||||||||||||||||||||||||||||
| Flatten pitch | ‑transke (BPF) | target_f0_hz | 。||||||||||||||||||||||||||||||||
| Time stretch | ‑D + ‑Mauto | stretch_factor | 。||||||||||||||||||||||||||||||||
| Tremolo | ‑trmdle | tremolo_freq_hz, tremolo_depth_cents | 。||||||||||||||||||||||||||||||||
| Cross synth | ‑Gcross | cross_mix | 。||||||||||||||||||||||||||||||||
| Vibrato | ‑transke (sinusoidal BPF) | vibrato_freq_hz, vibrato_depth_cents | 。||||||||||||||||||||||||||||||||
| Breathiness | ‑Gnoise + ‑ggain | breathiness_amount | 。||||||||||||||||||||||||||||||||
| Formant shift | ‑transenv | formant_shift_cents | 。||||||||||||||||||||||||||||||||
| Harmoniser | ‑transke + mixing | harmoniser_interval_cents, harmoniser_mix | 。||||||||||||||||||||||||||||||||
| De‑noise | ‑ggain (gate BPF) | denoise_threshold_db | 。||||||||||||||||||||||||||||||||
| Age + Gender | 。<‑age + ‑female/‑maleage_years, gender_dir, gender_amount | 。
Pipeline
Stage 2 – Analysis (Praat) – if mode requires F0 or Intensity, extract contours via
To Pitch / To Intensity and write BPF files (time, value).Stage 3 – Python bridge – read BPFs, build transform‑specific BPFs (e.g., flatten pitch transposition, vibrato sinusoid, denoise gate), assemble SuperVP command line.
Stage 4 – SuperVP processing – run
supervp.exe with the constructed arguments, write output WAV.Stage 5 – Import (Praat) – read result, rename, visualise.
BPF (BreakPoint Function) files
SuperVP uses BPF text files with two columns: time (seconds) and value (Hz for F0, dB for intensity, or cents for transposition). Praat exports F0 and Intensity at a 10 ms step. The Python backend computes derived BPFs (e.g., flatten pitch → cents transposition per frame, vibrato → sinusoidal cents BPF).
Parameters & defaults
Mode‑specific parameters
| Mode | Parameter | Range | Default | Description | ||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Age | age_years | -30 … 30 | 20 | 。|||||||||||||||||||||||||||||||||||||||||||
| Gender | gender_direction, gender_amount | female/male, 1–5 | female, 3 | 。|||||||||||||||||||||||||||||||||||||||||||
| Flatten pitch | target_f0_hz | 0 … 1000 | 0 (auto) | 。<0 = use median F0; >0 = flatten to that pitch.|||||||||||||||||||||||||||||||||||||||||||
| Time stretch | stretch_factor | 0.5 … 3.0 | 1.5 | 。|||||||||||||||||||||||||||||||||||||||||||
| Tremolo | tremolo_freq_hz, tremolo_depth_cents | 0.5 … 20, 0 … 200 | 5.0, 30 | 。|||||||||||||||||||||||||||||||||||||||||||
| Cross synth | cross_mix | 0 … 1 | 0.5 | 。|||||||||||||||||||||||||||||||||||||||||||
| Vibrato | vibrato_freq_hz, vibrato_depth_cents | 0.5 … 20, 0 … 200 | 5.5, 50 | 。|||||||||||||||||||||||||||||||||||||||||||
| Breathiness | breathiness_amount | 0 … 1 | 0.4 | 。<0 = clean, 1 = full noise (whisper).|||||||||||||||||||||||||||||||||||||||||||
| Formant shift | formant_shift_cents | -500 … 500 | 200 | 。|||||||||||||||||||||||||||||||||||||||||||
| Harmoniser | harmoniser_interval_cents, harmoniser_mix | -1200 … 1200, 0 … 1 | 700, 0.3 | 。|||||||||||||||||||||||||||||||||||||||||||
| De‑noise | denoise_threshold_db | 10 … 60 | 30 | 。|||||||||||||||||||||||||||||||||||||||||||
| Age+Gender | age_years, gender_dir, gender_amount | 20, female, 3 | 。
Visualization (Praat picture)
When Draw_visualization = 1, the script draws a 5‑panel figure:
- Original waveform (blue).
- Transformed waveform (green).
- F0 contour (red) – for modes that use F0 analysis.
- Result spectrogram (0–5 kHz).
- Summary bar – mode name, input/output durations, sample rate.
FAQ / troubleshooting
Update the supervpExe$ variable in the Praat script to point to your SuperVP installation. On Windows, the default is C:\Users\User\SuperVP\bin\supervp.exe. On macOS/Linux, you will need to adjust the path and the Python script’s executable name.
Ensure supervp_transform.py is in the plugin_AudioTools/py/ folder and that Python is in your PATH. The script writes a log file (svp_log.txt) in the plugin directory – check its contents for error messages.
The two‑pass approach (gender switch + extra formant shift) is designed to be stronger than the built‑in gender switch alone. If still subtle, increase gender_amount to 4 or 5, or adjust the formant shift amount in the Python script.
The -Mauto flag uses the F0 contour to adapt the analysis window size, preserving pitch during stretching. Without it, time stretching would also change pitch (like varispeed).
Harmoniser creates a parallel voice at a fixed musical interval (e.g., a fifth above). Cross synth blends the amplitude of one sound with the frequency of another – a more radical spectral hybrid.
BPF files are simple text with two columns: time (seconds) and value. For transposition (‑transke), values are in cents (positive = up, negative = down). For gain (‑ggain), values are linear (0–1). For F0 (‑F0), values are in Hz.