voice-blend
Combine multiple voice profiles with weighted mixing to create hybrid voices. Use when relevant to the task.
When & Why to Use This Skill
The voice-blend skill enables the creation of sophisticated hybrid AI personas by merging multiple voice profiles through weighted interpolation. It allows users to precisely calibrate communication styles by blending dimensions such as formality, confidence, and warmth, while merging vocabulary preferences and structural patterns to ensure consistent, brand-aligned AI interactions.
Use Cases
- Brand Voice Customization: Combine 'Professional Authority' and 'Friendly Explainer' profiles to create a unique, approachable corporate identity for customer support.
- Technical Content Tailoring: Blend 'Deep Technical' with 'Casual Conversational' styles to produce developer documentation that is both expert-level and easy to digest.
- Executive Communication: Mix 'Executive Brief' with 'Empathetic' profiles (e.g., 70/30 ratio) to generate internal leadership updates that maintain authority while remaining personable.
- Contextual Tone Shifting: Rapidly adjust the tone of an agent for different platforms, such as blending a 'Formal' base voice with a 'Social Media' profile for multi-channel content distribution.
| name | voice-blend |
|---|---|
| description | Combine multiple voice profiles with weighted mixing to create hybrid voices. Use when relevant to the task. |
voice-blend
Combine multiple voice profiles with weighted mixing to create hybrid voices.
Triggers
- "blend X and Y voices"
- "mix technical with friendly"
- "combine executive and casual"
- "70% technical, 30% friendly"
- "merge these voices..."
Behavior
When triggered, this skill:
Loads source voice profiles from:
- Built-in templates (
voices/templates/) - Project voices (
.aiwg/voices/) - User voices (
~/.config/aiwg/voices/)
- Built-in templates (
Parses blend specification:
- Equal blend: "blend X and Y" → 50%/50%
- Weighted blend: "70% X, 30% Y" → explicit weights
- Multi-voice: "blend X, Y, and Z" → equal thirds
Interpolates dimensions:
- Weighted average of tone values (formality, confidence, etc.)
- Merged vocabulary lists (union of prefer, intersection of avoid)
- Dominant structure patterns from highest-weighted voice
Generates hybrid profile with clear lineage tracking
Usage Examples
Equal Blend
User: "Blend technical-authority and friendly-explainer"
Result: 50/50 blend
- formality: 0.45 (avg of 0.7 and 0.2)
- confidence: 0.8 (avg of 0.9 and 0.7)
- warmth: 0.55 (avg of 0.3 and 0.8)
- vocabulary: merged from both
Weighted Blend
User: "80% executive-brief, 20% casual-conversational"
Result: Weighted blend
- formality: 0.7 (0.8*0.85 + 0.2*0.15)
- confidence: 0.86 (0.8*0.9 + 0.2*0.6)
- Dominant structure from executive-brief
Multi-Voice Blend
User: "Combine technical-authority, friendly-explainer, and executive-brief"
Result: Equal thirds (33.3% each)
- All dimensions averaged across three profiles
- Vocabulary merged from all three
Blend Algorithm
Dimension Interpolation
For each tone dimension:
blended_value = Σ(weight_i × value_i) / Σ(weight_i)
Vocabulary Merging
- prefer: Union of all prefer lists, deduplicated
- avoid: Intersection of all avoid lists (only avoid if ALL sources avoid)
- signature_phrases: Top N from each source (weighted by blend ratio)
Structure Resolution
Structure settings use the dominant voice (highest weight):
- sentence_length: from dominant
- paragraph_length: from dominant
- use_lists: from dominant
- use_examples: averaged (rarely=0, when-appropriate=1, frequently=2)
Perspective Handling
- person: Majority vote (tie goes to second person)
- voice: Active unless all sources use passive
- tense: Present unless all sources use past
Output Format
name: technical-friendly-blend
version: 1.0.0
description: Blended voice profile
blend_sources:
- name: technical-authority
weight: 0.7
- name: friendly-explainer
weight: 0.3
tone:
formality: 0.55 # interpolated
confidence: 0.84 # interpolated
warmth: 0.45 # interpolated
energy: 0.49 # interpolated
complexity: 0.65 # interpolated
vocabulary:
prefer:
- precise technical terminology # from technical
- concrete examples # from friendly
avoid:
- marketing superlatives # common to both
signature_phrases:
- "The system handles..." # from technical (70%)
- "Think of it like..." # from friendly (30%)
structure:
sentence_length: medium # from dominant (technical)
use_examples: frequently # averaged
Output Location
Blended profiles are saved to:
.aiwg/voices/{name}.yaml(default)- Custom path with
--outputflag ~/.config/aiwg/voices/with--globalflag
Integration
- Input: Takes profiles created by
voice-createor built-in templates - Output: Creates profiles usable by
voice-apply - Chain:
voice-analyze→voice-blend→voice-apply
CLI Usage
# Equal blend of two voices
python voice_blender.py --voices "technical-authority,friendly-explainer"
# Weighted blend
python voice_blender.py --voices "technical-authority:0.7,friendly-explainer:0.3"
# Custom output name
python voice_blender.py --voices "..." --name my-hybrid-voice
# Output to specific directory
python voice_blender.py --voices "..." --output .aiwg/voices/
# JSON output for inspection
python voice_blender.py --voices "..." --json
Error Handling
- Profile not found: Lists available profiles and suggests closest match
- Invalid weights: Normalizes weights to sum to 1.0
- Incompatible profiles: Warns but proceeds with best-effort blend
References
- Voice loader:
../voice-apply/scripts/voice_loader.py - Schema:
../../../schemas/voice-profile.schema.json - Built-in templates:
../../voices/templates/