Add expressive TTS governance

This commit is contained in:
calesthio
2026-06-29 12:08:37 -07:00
parent 80e51fd618
commit 5e4943a41b
18 changed files with 489 additions and 24 deletions
+18 -1
View File
@@ -33,7 +33,24 @@
"generation_summary": { "type": "string", "description": "Brief summary of how the asset was generated or sourced" },
"provider": { "type": "string", "description": "Provider name (e.g. pixabay, google_imagen)" },
"license": { "type": "string", "description": "License type (e.g. Pixabay License, CC0)" },
"original_url": { "type": "string", "description": "Source URL if downloaded from a stock service" }
"original_url": { "type": "string", "description": "Source URL if downloaded from a stock service" },
"voice_performance": {
"type": "object",
"description": "Applied voice-performance contract for narration assets.",
"properties": {
"source_section_id": { "type": "string" },
"delivery_cues_applied": { "type": "boolean" },
"provider_text_used": { "type": "boolean" },
"provider_settings": {
"type": "object",
"additionalProperties": true
},
"sample_approved": { "type": "boolean" },
"sample_path": { "type": "string" },
"review_notes": { "type": "string" }
},
"additionalProperties": false
}
},
"additionalProperties": false
}
+13 -1
View File
@@ -183,7 +183,19 @@
"provider": { "type": "string" },
"voice_id": { "type": "string" },
"rationale": { "type": "string" },
"estimated_cost_usd": { "type": "number", "minimum": 0 }
"estimated_cost_usd": { "type": "number", "minimum": 0 },
"delivery_style": {
"type": "string",
"description": "Plain-language voice direction, e.g. warm expert, expressive narrator, crisp tutorial."
},
"pacing_policy": {
"type": "string",
"description": "How the voice should use pauses, speed, and emphasis across the piece."
},
"sample_approval_required": {
"type": "boolean",
"description": "True when a TTS sample must be approved before batch narration generation."
}
},
"additionalProperties": false
},
+45
View File
@@ -9,6 +9,28 @@
"version": { "type": "string", "const": "1.0" },
"title": { "type": "string" },
"total_duration_seconds": { "type": "number", "minimum": 1 },
"voice_performance": {
"type": "object",
"description": "Narration delivery contract used by TTS asset generation.",
"properties": {
"performance_intent": { "type": "string" },
"pacing_profile": {
"type": "string",
"enum": ["contemplative", "conversational", "energetic", "technical", "cinematic", "custom"]
},
"energy_curve": { "type": "string" },
"pause_policy": { "type": "string" },
"sample_section_id": {
"type": "string",
"description": "Most performance-sensitive section to use for TTS sample approval."
},
"provider_notes": {
"type": "object",
"additionalProperties": { "type": "string" }
}
},
"additionalProperties": false
},
"sections": {
"type": "array",
"items": {
@@ -21,6 +43,29 @@
"start_seconds": { "type": "number", "minimum": 0 },
"end_seconds": { "type": "number", "minimum": 0 },
"speaker_directions": { "type": "string" },
"delivery_cues": {
"type": "object",
"description": "Structured voice-performance cues that TTS generation must apply.",
"properties": {
"pace": {
"type": "string",
"enum": ["slow", "measured", "conversational", "brisk", "fast", "custom"]
},
"energy": { "type": "string" },
"emphasis_words": {
"type": "array",
"items": { "type": "string" }
},
"pause_before_seconds": { "type": "number", "minimum": 0 },
"pause_after_seconds": { "type": "number", "minimum": 0 },
"delivery_note": { "type": "string" },
"provider_text": {
"type": "string",
"description": "Provider-ready narration text, including purposeful punctuation or SSML break tags when supported."
}
},
"additionalProperties": false
},
"enhancement_cues": {
"type": "array",
"items": {