Spaces:
Running
Running
|
Download docs/ANALYZER_API.md from Rileypiper/VoxArcade: direct link, hf CLI and curl.
- Browser
- Download file 1.58 kB
-
https://huggingface.co/spaces/Rileypiper/VoxArcade/resolve/main/docs/ANALYZER_API.md
- Command line
-
hf download hf://spaces/Rileypiper/VoxArcade/docs/ANALYZER_API.md
-
curl -L -o ANALYZER_API.md https://huggingface.co/spaces/Rileypiper/VoxArcade/resolve/main/docs/ANALYZER_API.md
1.58 kB
| # Voice Analyzer Internal API Contract | |
| This document defines the stable interface between the DSP analyzer and UI/game modes. | |
| ## Analyzer output contract | |
| `VoiceAnalyzer.metrics` emits normalized values in `[0, 1]`: | |
| - `bounce`: pitch-variance expressiveness. | |
| - `tempo`: transition-rate/tempo variation. | |
| - `vowel`: sustained voiced-vowel continuity. | |
| - `articulation`: high-frequency consonant clarity (noise-floor normalized). | |
| - `syllable`: onset impulse for separated syllables. | |
| - `pitch`: user-adaptive pitch position. | |
| - `energy`: adaptive energy position (P50/P90 normalized). | |
| - `resonance`: smoothed resonance/formant-derived signal. | |
| ## Confidence contract | |
| Consumers should treat the following analyzer fields as quality indicators: | |
| - `pitchConfidence` | |
| - `formantConfidence` | |
| - `spectralTiltConfidence` | |
| Frame reliability is computed with `computeFrameReliability()` in `voice-analyzer-core.js`. | |
| ## UI integration rules | |
| - UI/game logic should read metrics only through `analyzer.metrics`. | |
| - Do not re-normalize metrics in mode-specific renderers. | |
| - Feature additions that need raw DSP values should be introduced via explicit analyzer fields and documented here. | |
| ## Module boundary (phase 1) | |
| `voice-analyzer-core.js` now owns shared normalization/reliability math. | |
| Future extractions should continue this split: | |
| 1. `voice-analyzer-core.js`: pure math + gating helpers. | |
| 2. `voice-analyzer-engine.js`: WebAudio capture + frame extraction. | |
| 3. `voice-analyzer-state.js`: profile learning and state transitions. | |
| 4. UI/game modes consume only the stable contract above. | |