name: "multi-voice-comparison"
version: "1.0"
description: "Compare multiple voices with quality validation"
variables:
text: "The quick brown fox jumps over the lazy dog."
voices:
- "en-US-neural-1"
- "en-US-neural-2"
- "en-GB-neural-1"
output_dir: "voice_comparison"
quality_threshold: 4.0
config:
max_parallel: 3
timeout_seconds: 600
steps:
- name: "create_output_dir"
type: "command"
description: "Create output directory for voice samples"
parameters:
command: "mkdir"
args:
- "-p"
- "${output_dir}"
- name: "synthesize_voices"
type: "synthesize"
description: "Generate audio with all voices"
for_each: "${voices}"
parallel: true
depends_on:
- step_name: "create_output_dir"
must_succeed: true
parameters:
text: "${text}"
voice: "${item}"
output: "${output_dir}/${item}.wav"
quality: "high"
rate: 1.0
retry:
max_attempts: 3
strategy: "exponential"
backoff_multiplier: 2.0
initial_delay_ms: 1000
max_delay_ms: 10000
- name: "validate_quality"
type: "validate"
description: "Check audio quality meets threshold"
depends_on:
- step_name: "synthesize_voices"
must_succeed: true
condition:
left: "${synthesize_voices.success}"
operator: "equals"
right: "true"
parameters:
input_dir: "${output_dir}"
min_quality: "${quality_threshold}"
check_duration: true
check_naturalness: true
- name: "generate_report"
type: "command"
description: "Create comparison report"
depends_on:
- step_name: "validate_quality"
must_succeed: false parameters:
command: "echo"
args:
- "Voice comparison complete. Results in ${output_dir}/"