Skip to content

madoo.speaker-voices/v1

Madoo speaker voices — The voice every speaker of a recording is voiced with.

Reference madoo.speaker-voices/v1
Schema id urn:madoo:schema:speaker-voices:v1
Version 1.0.0
Served at GET /api/v1/json-schemas/madoo.speaker-voices/v1 · MCP get_json_schema
  • Produced by: utility/speaker_voices → speaker_voices
  • Read by: ai/text_to_speech → speaker_voices
Field Type Required Rules Description
schema "madoo.speaker-voices/v1" yes
default_voice string yes min length 1; max length 200 The voice of a line whose speaker is not in the table: the voice of the speaker who speaks most.
voices object yes Speaker label (speaker_0, speaker_1…) → voice name of the Text to Speech model.
speakers array of objects yes max items 64
speakers[].speaker string yes max length 200 Empty for a recording whose lines carry no speaker.
speakers[].voice string yes min length 1; max length 200
speakers[].source one of "fixed", "voice_type", "distinct" yes fixed: set by the workflow; voice_type: chosen from the list of the speaker’s kind of voice; distinct: a voice no other speaker has.
speakers[].voice_type one of "feminine", "masculine", null yes
speakers[].line_count integer yes ≥ 1
speakers[].speech_seconds number yes ≥ 0
warnings array of string yes max items 64
{
"schema": "madoo.speaker-voices/v1",
"default_voice": "Chris",
"voices": { "speaker_0": "Chris", "speaker_1": "Sarah", "speaker_2": "George" },
"speakers": [
{ "speaker": "speaker_0", "voice": "Chris", "source": "voice_type", "voice_type": "masculine", "line_count": 41, "speech_seconds": 96.4 },
{ "speaker": "speaker_1", "voice": "Sarah", "source": "voice_type", "voice_type": "feminine", "line_count": 5, "speech_seconds": 10.9 },
{ "speaker": "speaker_2", "voice": "George", "source": "voice_type", "voice_type": "masculine", "line_count": 11, "speech_seconds": 33.1 }
],
"warnings": []
}
madoo.speaker-voices/v1 (JSON Schema)
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "urn:madoo:schema:speaker-voices:v1",
"title": "Madoo speaker voices",
"description": "The voice every speaker of a recording is voiced with, as Assign Speaker Voices chose it. Text to Speech reads it with the speaker of each line.",
"type": "object",
"additionalProperties": false,
"required": [
"schema",
"default_voice",
"voices",
"speakers",
"warnings"
],
"properties": {
"schema": {
"const": "madoo.speaker-voices/v1"
},
"default_voice": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "The voice of a line whose speaker is not in the table: the voice of the speaker who speaks most."
},
"voices": {
"type": "object",
"description": "Speaker label (speaker_0, speaker_1…) → voice name of the Text to Speech model.",
"maxProperties": 64,
"additionalProperties": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"speakers": {
"type": "array",
"maxItems": 64,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"speaker",
"voice",
"source",
"voice_type",
"line_count",
"speech_seconds"
],
"properties": {
"speaker": {
"type": "string",
"maxLength": 200,
"description": "Empty for a recording whose lines carry no speaker."
},
"voice": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"source": {
"enum": [
"fixed",
"voice_type",
"distinct"
],
"description": "fixed: set by the workflow; voice_type: chosen from the list of the speaker's kind of voice; distinct: a voice no other speaker has."
},
"voice_type": {
"enum": [
"feminine",
"masculine",
null
]
},
"line_count": {
"type": "integer",
"minimum": 1
},
"speech_seconds": {
"type": "number",
"minimum": 0
}
}
}
},
"warnings": {
"type": "array",
"maxItems": 64,
"items": {
"type": "string",
"maxLength": 500
}
}
}
}