What this is
Audapter is the real-time speech perturbation software used in auditory-feedback research. This page runs its C++ core (the blab-lab fork, TransShiftMex at commit 169cadf) compiled to WebAssembly, the same build the audit report uses. The WebAssembly build reproduces the native build bit for bit when both use the same maths library, and differs from the Octave MEX by about 1e-10.
Every setting ends up as the calls MATLAB would make: setParam for each parameter in AudapterIO('init') order, starting
from the recorded blab defaults, plus the OST and PCF texts. The expert parameter table (a link at the bottom of the settings) shows exactly what is sent.
Record, then process
This is not real-time feedback. The page records (or loads) the whole utterance first, then runs Audapter over it frame by frame,
exactly as Audapter('runFrame') does offline. That is the same processing as the live ASIO callback, without the
live path's timing. Audapter's own processing delay is shown under "How Audapter listens"; a browser's microphone-to-headphone
round trip is typically 60–115 ms, against about 20–40 ms for native Audapter with ASIO, so a browser is not a substitute for
a lab rig when latency matters.
Fresh or one session
By default every trial runs in a fresh Audapter instance, so trials are independent and reproducible, like starting MATLAB anew each time. "Run ticked as one session" runs several trials in order in one instance, as a MATLAB experiment would; state that Audapter fails to reset between trials then carries over (for example OST-F1 and COORD-1 in the report). The Compare tab's session timeline shows such runs end to end.
Memory
One Audapter instance needs about 160 MB of WebAssembly memory (310 MB for the full-size build, whose recorders hold 30 s). Each fresh trial runs in a Web Worker that is terminated afterwards, so at most one instance is alive at a time. The shipped and patched builds keep 10 s recorders; use the full-size build for longer trials.
What the views show
- Grey is the input: what was spoken, and estimates made from it.
- Hollow ink is what was intended: Audapter's shifted targets (
sfmts,shiftedPitchHz) and the configured time window. - Blue is what Audapter logged or did (
fmts,pitchHz, OST state, output), and measurements made on the output audio. - Orange marks a discrepancy: logged pitch that is not the voice's F0, clipping.
The independent estimates (YIN for F0, LPC for formants) are rough reference measurements computed in this page. LPC formant estimates are biased at high F0, so a small mismatch with the targets is not by itself a sign that Audapter misbehaved.
Credits and licences
Page code: Apache-2.0. Audapter core: Apache-2.0 (audapter_mex). Speech clips from CMU ARCTIC (CMU licence), LibriSpeech, speechocean762, VoiceBank-DEMAND, the Perceptual Voice Qualities Database, VocalSet and vocadito (CC BY 4.0); see clips/ATTRIBUTION.md. Vowel averages: Peterson & Barney (1952). Typeface: Charis SIL (OFL). Author: Claude (Anthropic), at the request of Josh Mandel.