madoo.speech-timing-candidate/v1
Madoo measured speech candidate — One authenticated synthesized speech candidate with measured duration and signal evidence.
| Reference | madoo.speech-timing-candidate/v1 |
| Schema id | urn:madoo:schema:speech-timing-candidate:v1 |
| Version | 1.0.0 |
| Served at | GET /api/v1/json-schemas/madoo.speech-timing-candidate/v1 · MCP get_json_schema |
Where it appears
Section titled “Where it appears”- Produced by:
audio/speech_timing_check→candidate
Fields
Section titled “Fields”| Field | Type | Required | Rules | Description |
|---|---|---|---|---|
planId |
string | yes | pattern “^[a-f0-9]{64}$” | |
cueId |
string | yes | min length 1; max length 128 | |
round |
integer | yes | ≥ 1; ≤ 3 | |
text |
string | yes | min length 1; max length 20000 | |
audioStorageRef |
string | yes | max length 4096; pattern “^storage://[^?#\s]+$” | |
audioSha256 |
string | yes | pattern “^[a-f0-9]{64}$” | |
durationMilliseconds |
integer | yes | ≥ 1; ≤ 21600000 | |
speakingRate |
number | yes | ≤ 10; > 0 | |
modelId |
string | yes | min length 1; max length 256 | |
profileVersion |
string | yes | min length 1; max length 256 | |
voice |
string | yes | min length 1; max length 512 | |
expectedMilliCredits |
integer | yes | ≥ 0; ≤ 9007199254740991 | |
hasAudibleSignal |
boolean | yes | ||
headSilenceMilliseconds |
integer | yes | ≥ 0; ≤ 21600000 | |
tailSilenceMilliseconds |
integer | yes | ≥ 0; ≤ 21600000 | |
trimStartMilliseconds |
integer | yes | ≥ 0; ≤ 1000 | |
trimEndMilliseconds |
integer | yes | ≥ 0; ≤ 1000 |
The complete schema
Section titled “The complete schema”madoo.speech-timing-candidate/v1 (JSON Schema)
{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "urn:madoo:schema:speech-timing-candidate:v1", "title": "Madoo measured speech candidate", "type": "object", "additionalProperties": false, "required": [ "planId", "cueId", "round", "text", "audioStorageRef", "audioSha256", "durationMilliseconds", "speakingRate", "modelId", "profileVersion", "voice", "expectedMilliCredits", "hasAudibleSignal", "headSilenceMilliseconds", "tailSilenceMilliseconds", "trimStartMilliseconds", "trimEndMilliseconds" ], "properties": { "planId": { "type": "string", "pattern": "^[a-f0-9]{64}$" }, "cueId": { "type": "string", "minLength": 1, "maxLength": 128, "examples": [ "cue-0001" ] }, "round": { "type": "integer", "minimum": 1, "maximum": 3 }, "text": { "type": "string", "minLength": 1, "maxLength": 20000, "examples": [ "Benvenuti al nostro aggiornamento." ] }, "audioStorageRef": { "type": "string", "pattern": "^storage://[^?#\\s]+$", "maxLength": 4096 }, "audioSha256": { "type": "string", "pattern": "^[a-f0-9]{64}$" }, "durationMilliseconds": { "type": "integer", "minimum": 1, "maximum": 21600000 }, "speakingRate": { "type": "number", "exclusiveMinimum": 0, "maximum": 10 }, "modelId": { "type": "string", "minLength": 1, "maxLength": 256 }, "profileVersion": { "type": "string", "minLength": 1, "maxLength": 256 }, "voice": { "type": "string", "minLength": 1, "maxLength": 512 }, "expectedMilliCredits": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 }, "hasAudibleSignal": { "type": "boolean" }, "headSilenceMilliseconds": { "type": "integer", "minimum": 0, "maximum": 21600000 }, "tailSilenceMilliseconds": { "type": "integer", "minimum": 0, "maximum": 21600000 }, "trimStartMilliseconds": { "type": "integer", "minimum": 0, "maximum": 1000 }, "trimEndMilliseconds": { "type": "integer", "minimum": 0, "maximum": 1000 } }}