persona-community-5/pkg/persona/voice.go
jordan bd2f591b98
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
ci/woodpecker/manual/woodpecker Pipeline was successful
Initialize project from skeleton template
2026-02-24 07:39:46 +00:00

150 lines
4.1 KiB
Go

package persona
// VoiceDNA contains all voice specifications for audio/video generation.
// These characteristics define the character's unique vocal identity for TTS.
type VoiceDNA struct {
// Pitch is the fundamental vocal pitch category.
Pitch PitchCategory `json:"pitch" yaml:"pitch"`
// PitchRange describes the range of pitch variation.
PitchRange PitchRangeCategory `json:"pitch_range" yaml:"pitch_range"`
// Tone is the overall vocal tone quality.
Tone ToneCategory `json:"tone" yaml:"tone"`
// Timbre is the vocal texture/quality.
Timbre TimbreCategory `json:"timbre" yaml:"timbre"`
// Accent is the accent family.
Accent AccentCategory `json:"accent" yaml:"accent"`
// AccentStrength is the intensity of the accent.
AccentStrength AccentStrengthCategory `json:"accent_strength" yaml:"accent_strength"`
// Cadence is the speaking rhythm pattern.
Cadence CadenceCategory `json:"cadence" yaml:"cadence"`
// RhythmPattern describes the speech rhythm.
RhythmPattern RhythmPatternCategory `json:"rhythm_pattern" yaml:"rhythm_pattern"`
// Volume is the characteristic speaking volume.
Volume VolumeCategory `json:"volume" yaml:"volume"`
// Clarity is the articulation clarity.
Clarity ClarityCategory `json:"clarity" yaml:"clarity"`
// Expressiveness is the emotional range in speech.
Expressiveness ExpressivenessCategory `json:"expressiveness" yaml:"expressiveness"`
}
// Pitch categories
type PitchCategory string
const (
PitchVeryLow PitchCategory = "very_low"
PitchLow PitchCategory = "low"
PitchMedium PitchCategory = "medium"
PitchHigh PitchCategory = "high"
PitchVeryHigh PitchCategory = "very_high"
)
// Pitch range categories
type PitchRangeCategory string
const (
PitchRangeNarrow PitchRangeCategory = "narrow"
PitchRangeModerate PitchRangeCategory = "moderate"
PitchRangeWide PitchRangeCategory = "wide"
)
// Tone categories
type ToneCategory string
const (
ToneWarm ToneCategory = "warm"
ToneCool ToneCategory = "cool"
ToneNeutral ToneCategory = "neutral"
ToneRich ToneCategory = "rich"
ToneBright ToneCategory = "bright"
)
// Timbre categories
type TimbreCategory string
const (
TimbreClear TimbreCategory = "clear"
TimbreSmooth TimbreCategory = "smooth"
TimbreHusky TimbreCategory = "husky"
TimbreBreathy TimbreCategory = "breathy"
TimbreRich TimbreCategory = "rich"
TimbreCrisp TimbreCategory = "crisp"
)
// Accent categories
type AccentCategory string
const (
AccentNorthAmerican AccentCategory = "north_american"
AccentBritish AccentCategory = "british"
AccentAustralian AccentCategory = "australian"
AccentGlobalEnglish AccentCategory = "global_english"
AccentNonNative AccentCategory = "non_native"
)
// Accent strength categories
type AccentStrengthCategory string
const (
AccentStrengthSubtle AccentStrengthCategory = "subtle"
AccentStrengthModerate AccentStrengthCategory = "moderate"
AccentStrengthStrong AccentStrengthCategory = "strong"
)
// Cadence categories
type CadenceCategory string
const (
CadenceVerySlow CadenceCategory = "very_slow"
CadenceSlow CadenceCategory = "slow"
CadenceMedium CadenceCategory = "medium"
CadenceFast CadenceCategory = "fast"
CadenceVeryFast CadenceCategory = "very_fast"
)
// Rhythm pattern categories
type RhythmPatternCategory string
const (
RhythmPatternSteady RhythmPatternCategory = "steady"
RhythmPatternVariable RhythmPatternCategory = "variable"
RhythmPatternDynamic RhythmPatternCategory = "dynamic"
)
// Volume categories
type VolumeCategory string
const (
VolumeSoft VolumeCategory = "soft"
VolumeModerate VolumeCategory = "moderate"
VolumeLoud VolumeCategory = "loud"
)
// Clarity categories
type ClarityCategory string
const (
ClarityCrisp ClarityCategory = "crisp"
ClarityNatural ClarityCategory = "natural"
ClarityRelaxed ClarityCategory = "relaxed"
)
// Expressiveness categories
type ExpressivenessCategory string
const (
ExpressivenessMonotone ExpressivenessCategory = "monotone"
ExpressivenessModerate ExpressivenessCategory = "moderate"
ExpressivenessExpressive ExpressivenessCategory = "expressive"
ExpressivenessAnimated ExpressivenessCategory = "animated"
)