Skip to content

madoo.speech-timing-assessment/v1

Madoo speech timing assessment — Measured speech candidate with deterministic acceptance and natural padding evidence.

Reference madoo.speech-timing-assessment/v1
Schema id urn:madoo:schema:speech-timing-assessment:v1
Version 1.0.0
Served at GET /api/v1/json-schemas/madoo.speech-timing-assessment/v1 · MCP get_json_schema
  • Produced by: audio/speech_timing_check → assessment
Field Type Required Rules Description
schema "madoo.speech-timing-assessment/v1" yes
candidate object yes no other fields
candidate.planId string yes pattern “^[a-f0-9]{64}$”
candidate.cueId string yes min length 1; max length 128
candidate.round integer yes ≥ 1; ≤ 3
candidate.text string yes min length 1; max length 20000
candidate.audioStorageRef string yes max length 4096; pattern “^storage://[^?#\s]+$”
candidate.audioSha256 string yes pattern “^[a-f0-9]{64}$”
candidate.durationMilliseconds integer yes ≥ 1; ≤ 21600000
candidate.speakingRate number yes ≤ 10; > 0
candidate.modelId string yes min length 1; max length 256
candidate.profileVersion string yes min length 1; max length 256
candidate.voice string yes min length 1; max length 512
candidate.hasAudibleSignal boolean yes
candidate.headSilenceMilliseconds integer ≥ 0; ≤ 21600000
candidate.tailSilenceMilliseconds integer ≥ 0; ≤ 21600000
candidate.trimStartMilliseconds integer ≥ 0; ≤ 1000
candidate.trimEndMilliseconds integer ≥ 0; ≤ 1000
candidate.expectedMilliCredits integer yes ≥ 0; ≤ 9007199254740991
accepted boolean yes
requiredFitRate number yes ≥ 1; ≤ 432000
paddingMilliseconds integer yes ≥ 0; ≤ 21600000
reason one of "SPEECH_TIMING_ACCEPTED", "SPEECH_TIMING_REQUIRES_ADAPTATION", "SPEECH_TIMING_NO_AUDIBLE_SIGNAL", "SPEECH_TIMING_REFLOWED", "SPEECH_TIMING_DEGRADED_REFLOW" yes
targetDurationMilliseconds integer ≥ 0; ≤ 21600000
{
"schema": "madoo.speech-timing-assessment/v1",
"candidate": {
"planId": "df9f0828ea2c188dc4f90ef01e1c53ff04956e4f6f7199e1368bf01d54c18f7f",
"cueId": "cue-1",
"round": 1,
"text": "Ciao",
"audioStorageRef": "storage://org/ws/audio.wav",
"audioSha256": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"durationMilliseconds": 800,
"speakingRate": 1,
"modelId": "turbo",
"profileVersion": "1",
"voice": "Rachel",
"expectedMilliCredits": 100,
"hasAudibleSignal": true
},
"accepted": true,
"requiredFitRate": 1,
"paddingMilliseconds": 200,
"reason": "SPEECH_TIMING_ACCEPTED"
}
madoo.speech-timing-assessment/v1 (JSON Schema)
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "urn:madoo:schema:speech-timing-assessment:v1",
"title": "Madoo speech timing assessment",
"description": "Shape validation only. Correlation, timing policy, tenant authorization and trusted measurement provenance require Application validation.",
"$ref": "#/$defs/assessment",
"$defs": {
"warning": {
"type": "object",
"additionalProperties": false,
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"message": {
"type": "string",
"minLength": 1,
"maxLength": 20000
}
}
},
"captionCue": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"start",
"end",
"text",
"speaker",
"speaker_scope",
"kind",
"source_segment_ids"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"start": {
"type": "number",
"minimum": 0,
"maximum": 21600
},
"end": {
"type": "number",
"minimum": 0,
"maximum": 21600
},
"text": {
"type": "string",
"minLength": 1,
"maxLength": 20000
},
"speaker": {
"type": [
"string",
"null"
],
"maxLength": 512
},
"speaker_scope": {
"type": [
"string",
"null"
],
"maxLength": 512
},
"kind": {
"const": "speech"
},
"source_segment_ids": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"maxItems": 10000,
"minItems": 0
}
}
},
"captionTrack": {
"type": "object",
"additionalProperties": false,
"required": [
"schema",
"track_id",
"language",
"source_language",
"granularity",
"cues",
"generation",
"warnings"
],
"properties": {
"schema": {
"const": "madoo.caption-track/v1"
},
"track_id": {
"type": "string",
"minLength": 1,
"maxLength": 512
},
"language": {
"type": "string",
"minLength": 1,
"maxLength": 64
},
"source_language": {
"type": [
"string",
"null"
],
"maxLength": 64
},
"granularity": {
"type": "string",
"minLength": 1,
"maxLength": 64
},
"cues": {
"type": "array",
"items": {
"$ref": "#/$defs/captionCue"
},
"maxItems": 10000,
"minItems": 1
},
"generation": {
"type": "object",
"additionalProperties": false,
"required": [
"normalizer",
"version",
"segment_count",
"overlap_reconciled"
],
"properties": {
"normalizer": {
"type": "string",
"minLength": 1,
"maxLength": 256
},
"version": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"segment_count": {
"type": "integer",
"minimum": 0,
"maximum": 10000
},
"overlap_reconciled": {
"type": "boolean"
}
}
},
"warnings": {
"type": "array",
"items": {
"$ref": "#/$defs/warning"
},
"maxItems": 10000,
"minItems": 0
}
}
},
"policy": {
"type": "object",
"additionalProperties": false,
"required": [
"maximumRounds",
"minimumSpeakingRate",
"maximumSpeakingRate",
"maximumFitRate",
"maximumCombinedRate",
"toleranceMilliseconds"
],
"properties": {
"maximumRounds": {
"type": "integer",
"minimum": 1,
"maximum": 3
},
"minimumSpeakingRate": {
"type": "number",
"minimum": 0.95,
"maximum": 1
},
"maximumSpeakingRate": {
"type": "number",
"minimum": 1,
"maximum": 1.05
},
"maximumFitRate": {
"type": "number",
"minimum": 1,
"maximum": 2
},
"maximumCombinedRate": {
"type": "number",
"minimum": 1,
"maximum": 2
},
"toleranceMilliseconds": {
"type": "integer",
"minimum": 1,
"maximum": 250
}
}
},
"cue": {
"type": "object",
"additionalProperties": false,
"required": [
"cueId",
"originalIndex",
"sourceText",
"initialTranslation",
"speaker",
"startMilliseconds",
"endMilliseconds",
"contextBefore",
"contextAfter"
],
"properties": {
"cueId": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"originalIndex": {
"type": "integer",
"minimum": 0,
"maximum": 9999
},
"sourceText": {
"type": "string",
"minLength": 1,
"maxLength": 20000
},
"initialTranslation": {
"type": "string",
"minLength": 1,
"maxLength": 20000
},
"speaker": {
"type": [
"string",
"null"
],
"maxLength": 512
},
"startMilliseconds": {
"type": "integer",
"minimum": 0,
"maximum": 21600000
},
"endMilliseconds": {
"type": "integer",
"minimum": 50,
"maximum": 21600000
},
"contextBefore": {
"type": [
"string",
"null"
],
"maxLength": 20000
},
"contextAfter": {
"type": [
"string",
"null"
],
"maxLength": 20000
}
}
},
"plan": {
"type": "object",
"additionalProperties": false,
"required": [
"schema",
"planId",
"organizationID",
"workspaceID",
"durationMilliseconds",
"sourceCaptions",
"targetCaptions",
"policy",
"cues"
],
"properties": {
"schema": {
"const": "madoo.speech-timing-plan/v1"
},
"planId": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
},
"organizationID": {
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"workspaceID": {
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"durationMilliseconds": {
"type": "integer",
"minimum": 50,
"maximum": 21600000
},
"sourceCaptions": {
"$ref": "#/$defs/captionTrack"
},
"targetCaptions": {
"$ref": "#/$defs/captionTrack"
},
"policy": {
"$ref": "#/$defs/policy"
},
"cues": {
"type": "array",
"items": {
"$ref": "#/$defs/cue"
},
"maxItems": 10000,
"minItems": 1
},
"elasticity": {
"$ref": "#/$defs/elasticity"
},
"availableWindows": {
"$ref": "#/$defs/availableWindows"
}
}
},
"candidate": {
"type": "object",
"additionalProperties": false,
"required": [
"planId",
"cueId",
"round",
"text",
"audioStorageRef",
"audioSha256",
"durationMilliseconds",
"speakingRate",
"modelId",
"profileVersion",
"voice",
"expectedMilliCredits",
"hasAudibleSignal"
],
"properties": {
"planId": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
},
"cueId": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"round": {
"type": "integer",
"minimum": 1,
"maximum": 3
},
"text": {
"type": "string",
"minLength": 1,
"maxLength": 20000
},
"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
},
"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
},
"expectedMilliCredits": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
}
},
"assessment": {
"type": "object",
"additionalProperties": false,
"required": [
"schema",
"candidate",
"accepted",
"requiredFitRate",
"paddingMilliseconds",
"reason"
],
"properties": {
"schema": {
"const": "madoo.speech-timing-assessment/v1"
},
"candidate": {
"$ref": "#/$defs/candidate"
},
"accepted": {
"type": "boolean"
},
"requiredFitRate": {
"type": "number",
"minimum": 1,
"maximum": 432000
},
"paddingMilliseconds": {
"type": "integer",
"minimum": 0,
"maximum": 21600000
},
"reason": {
"enum": [
"SPEECH_TIMING_ACCEPTED",
"SPEECH_TIMING_REQUIRES_ADAPTATION",
"SPEECH_TIMING_NO_AUDIBLE_SIGNAL",
"SPEECH_TIMING_REFLOWED",
"SPEECH_TIMING_DEGRADED_REFLOW"
]
},
"targetDurationMilliseconds": {
"type": "integer",
"minimum": 0,
"maximum": 21600000
}
}
},
"state": {
"type": "object",
"additionalProperties": false,
"required": [
"schema",
"plan",
"completedRounds",
"history"
],
"properties": {
"schema": {
"const": "madoo.speech-timing-state/v1"
},
"plan": {
"$ref": "#/$defs/plan"
},
"completedRounds": {
"type": "integer",
"minimum": 0,
"maximum": 3
},
"history": {
"type": "array",
"items": {
"$ref": "#/$defs/assessment"
},
"maxItems": 30000,
"minItems": 0
}
}
},
"silenceInterval": {
"type": "object",
"additionalProperties": false,
"required": [
"startMilliseconds",
"endMilliseconds"
],
"properties": {
"startMilliseconds": {
"type": "integer",
"minimum": 0,
"maximum": 21600000
},
"endMilliseconds": {
"type": "integer",
"minimum": 1,
"maximum": 21600000
}
}
},
"deliveryWindow": {
"type": "object",
"additionalProperties": false,
"required": [
"cueId",
"startMilliseconds",
"endMilliseconds"
],
"properties": {
"cueId": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"startMilliseconds": {
"type": "integer",
"minimum": 0,
"maximum": 21600000
},
"endMilliseconds": {
"type": "integer",
"minimum": 1,
"maximum": 21600000
}
}
},
"availableWindows": {
"type": "object",
"additionalProperties": false,
"required": [
"maximumEndExtensionMilliseconds",
"safetyGapMilliseconds",
"windows"
],
"properties": {
"maximumEndExtensionMilliseconds": {
"type": "integer",
"minimum": 1,
"maximum": 2000
},
"safetyGapMilliseconds": {
"type": "integer",
"minimum": 20,
"maximum": 500
},
"windows": {
"type": "array",
"maxItems": 10000,
"items": {
"$ref": "#/$defs/deliveryWindow"
}
}
}
},
"elasticity": {
"type": "object",
"additionalProperties": false,
"required": [
"maximumEndExtensionMilliseconds",
"evidence",
"windows"
],
"properties": {
"maximumEndExtensionMilliseconds": {
"type": "integer",
"minimum": 1,
"maximum": 250
},
"evidence": {
"type": "object",
"additionalProperties": false,
"required": [
"referenceAudioStorageRef",
"referenceAudioSha256",
"durationMilliseconds",
"silence"
],
"properties": {
"referenceAudioStorageRef": {
"type": "string",
"pattern": "^storage://[^?#\\s]+$",
"maxLength": 4096
},
"referenceAudioSha256": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
},
"durationMilliseconds": {
"type": "integer",
"minimum": 50,
"maximum": 21600000
},
"silence": {
"type": "array",
"maxItems": 1026,
"items": {
"$ref": "#/$defs/silenceInterval"
}
}
}
},
"windows": {
"type": "array",
"maxItems": 10000,
"items": {
"$ref": "#/$defs/deliveryWindow"
}
}
}
}
}
}