MDS Space Navigator — User Guide
Automatically segments sounding regions, measures formant, pitch, or MFCC cues, builds pairwise acoustic distances, embeds those dissimilarities in a two-dimensional non-metric MDS space, and reorders the original multichannel segments by one of three navigation rules.
What this does
MDS Space Navigator treats detected sounding regions as discrete audio segments. It first computes acoustic distances between every pair, then creates a two-dimensional MDS map of those dissimilarities. The final playback order can follow the raw distance matrix, one coordinate of the MDS embedding, or the original timeline.
The complete path is:
What does MDS mean here?
Multidimensional scaling (MDS) places objects in a geometric space so that distances between plotted points approximate the structure of the supplied dissimilarities. Here, the objects are detected sounding segments and the dissimilarities come from acoustic features.
Also, the MDS axes are geometric coordinates, not named acoustic variables. Dimension 1 should not automatically be interpreted as F2, pitch, a principal component, “brightness”, or any other specific cue. MDS configurations can be reflected or rotated without changing their distance structure.
Quick start
- Select exactly one Sound object.
- Run
MDS_Space_Navigator.praat. - Set the silence segmentation controls.
- Choose Formants, Pitch, or MFCC as the similarity metric.
- Choose Nearest neighbor, MDS Dimension 1, or Original order.
- Set Silence_between_words_s.
- Run the script. The result is named
<source>_reordered.
Automatic segmentation
The analysis Sound is converted to an Intensity object with a 100 Hz pitch-floor setting. The script then calls Praat's Intensity: To TextGrid (silences) command using:
With the default form value 25, the script passes −25 dB as the silence threshold relative to the maximum Intensity. Praat removes sounding intervals that are too short, joins the resulting neighboring silences, then removes silences that are too short and joins the neighboring sounding intervals.
Only intervals labelled sounding are retained. They are renamed internally as:
At least two sounding segments are required. The segmentation TextGrid is an intermediate analysis object and is removed during cleanup; it is not a final output.
Feature extraction & raw distances
No z-score normalization, perceptual rescaling or feature weighting is applied before the pairwise distances. Each metric therefore has its own native numerical scale.
1. Formants — F1/F2 midpoint distance
The script creates one Burg Formant object from the complete mono analysis signal:
For each sounding segment, F1 and F2 are sampled at its temporal midpoint. Undefined values are replaced with 0.
The distance is therefore a raw two-dimensional distance in Hz. Number_of_formants affects the Burg analysis object, but the similarity metric itself uses only F1 and F2.
2. Pitch — mean-F0 difference
The script creates a Pitch object with fixed bounds 75–600 Hz, then measures mean F0 over each sounding interval:
Undefined mean pitch is replaced with 0 Hz. Consequently, two unvoiced segments both assigned 0 have zero pitch distance from each other, while an unvoiced segment and a voiced segment are separated by the voiced segment's F0 in Hz.
3. MFCC — mean-vector Euclidean distance
Each sounding segment is extracted separately and converted to MFCC with:
The script converts the MFCC to TableOfReal, averages every requested coefficient across the segment, and computes Euclidean distance:
The exposed Number_of_MFCC_Coefficients is used directly by the current implementation.
Distance matrix & 2-D MDS embedding
The script builds a symmetric TableOfReal containing the raw feature distances, casts it to a Praat Dissimilarity object, and runs:
This is a non-metric / monotone MDS embedding: the geometric configuration is chosen to represent the ordering and structure of the input dissimilarities in two dimensions.
Degenerate all-zero distance case
If every raw feature distance is effectively zero, there is no geometry for MDS to recover. The script then changes only the MDS copy of the matrix:
This tiny deterministic structure allows the map/order stage to run. The original dist[i,j] values remain zero, so Nearest Neighbor continues to use the true tied distances.
Navigation / ordering modes
Nearest neighbor chain
This mode does not navigate using MDS coordinates. It uses the original feature-distance matrix directly:
The process is greedy and anchored to original segment 1. It does not solve a globally shortest path. When several candidates have exactly equal distance, the first unused candidate encountered wins.
MDS Dimension 1
All segment indices are sorted by their first coordinate in the current 2-D MDS Configuration:
This creates a left-to-right traversal of the current map. “Low to high” means low-to-high coordinate value, not low-to-high pitch, F1/F2, brightness or any guaranteed acoustic property.
Original order
The source segment sequence is retained exactly. MDS is still computed for the visualization, but it does not alter playback order.
| Mode | What determines the order? | Role of MDS |
|---|---|---|
| Nearest Neighbor | Raw pairwise feature distances | Visualization only |
| MDS Dimension 1 | First MDS coordinate | Directly determines order |
| Original | Original segment index | Visualization only |
Audio extraction & assembly
After the order is known, every sounding region is extracted from the original Sound with a rectangular window. This is why the source channel count is preserved even though analysis may have used a mono copy.
Between every adjacent pair, the script inserts a digital-silence Sound with:
The reordered timeline is then built by ordinary Praat Concatenate. There is no overlap, crossfade, edge fade or gain matching.
Exact duration
Parameters
| Parameter | Default | Exact role |
|---|---|---|
| Silence_threshold_dB | 25 | Script passes −25 dB by default to Praat's relative Intensity silence detector. |
| Minimum_silent_interval_s | 0.1 | Minimum silence retained by Praat's segmentation. |
| Minimum_sounding_interval_s | 0.1 | Minimum sounding interval retained by segmentation. |
| Similarity_metric | Formants | Formants, Pitch or MFCC. |
| Max_formant_Hz | 5500 | Maximum Formant analysis frequency. |
| Number_of_formants | 5 | Number of formants requested from Burg analysis; only F1/F2 enter distance. |
| Number_of_MFCC_Coefficients | 12 | Dimension of the mean MFCC feature vector and its Euclidean distance. |
| Ordering | Nearest Neighbor | Raw-distance chain, MDS Dim 1 sort or original order. |
| Silence_between_words_s | 0.1 | Exact digital-silence duration inserted between consecutive rendered segments. |
| Play_result | On | Play the completed reordered Sound. |
There is no preset system and no separate visualization switch in v0.4; the Picture visualization is always drawn.
Visualization
The current v0.4 Picture layout is centered on the navigation concept:
- MDS similarity space: closer plotted points represent smaller dissimilarities in the two-dimensional embedding. The path connecting them follows the actual playback order for all three ordering modes.
- Point labels:
w1,w2, … refer to original detected segment indices. - Point size: encodes segment duration, capped for display.
- Point color: blue → red encodes playback position from first to last; it does not encode acoustic category or similarity.
- How the navigator works: Detect → Measure → Distances → 2-D MDS → Order/join.
- Playback order: shows up to the first 20 ordered items with their original index and duration.
- Reordered output: waveform of the final Sound; dotted red marks indicate segment-boundary positions after the inserted silences.
- Summary: metric, ordering method, segment count, gap, output duration, raw distance range and a reminder that MDS axes are geometric coordinates.
Output behavior
- Sound name:
<source>_reordered. - Channel count: preserved.
- Sample rate: preserved.
- Level: no normalization, limiter or gain matching.
- Time structure: sounding regions only, in the chosen order, separated by the requested silence.
- Analysis TextGrid: temporary; removed before completion.
- Picture: MDS/navigation visualization remains in the Picture window.
The original Sound remains unchanged.
Further reading
- Borg, I., & Groenen, P. J. F. (2005). Modern Multidimensional Scaling: Theory and Applications, 2nd ed. Springer. DOI.
- Davis, S. B., & Mermelstein, P. (1980). “Comparison of Parametric Representations for Monosyllabic Word Recognition in Continuously Spoken Sentences.” IEEE Transactions on Acoustics, Speech, and Signal Processing, 28(4), 357–366. DOI.
- Praat Manual. Multidimensional scaling. Official documentation.
- Praat Manual. Intensity: To TextGrid (silences)... Official documentation.
- Praat Manual. Sound: To MFCC... Official documentation.