expressive-tts-arena / src /constants.py
zach
Improve text length validation and make vote buttons flush with audio players
f076d8d
raw
history blame
3.83 kB
"""
constants.py
This module defines global constants used throughout the project.
"""
# Standard Library Imports
from typing import List
# Third-Party Library Imports
from src.custom_types import ComparisonType, OptionKey, OptionLabel, TTSProviderName
CLIENT_ERROR_CODE = 400
SERVER_ERROR_CODE = 500
# UI constants
HUME_AI: TTSProviderName = "Hume AI"
ELEVENLABS: TTSProviderName = "ElevenLabs"
TTS_PROVIDERS: List[TTSProviderName] = ["Hume AI", "ElevenLabs"]
HUME_TO_HUME: ComparisonType = "Hume AI - Hume AI"
HUME_TO_ELEVENLABS: ComparisonType = "Hume AI - ElevenLabs"
CHARACTER_DESCRIPTION_MIN_LENGTH: int = 20
CHARACTER_DESCRIPTION_MAX_LENGTH: int = 1000
TEXT_MIN_LENGTH: int = 100
TEXT_MAX_LENGTH: int = 1000
OPTION_A_KEY: OptionKey = "option_a"
OPTION_B_KEY: OptionKey = "option_b"
OPTION_A_LABEL: OptionLabel = "Option A"
OPTION_B_LABEL: OptionLabel = "Option B"
TROPHY_EMOJI: str = "🏆"
SELECT_OPTION_A: str = "Select Option A"
SELECT_OPTION_B: str = "Select Option B"
# A collection of pre-defined character descriptions categorized by theme, used to provide users with
# inspiration for generating creative, expressive text inputs for TTS, and generating novel voices.
SAMPLE_CHARACTER_DESCRIPTIONS: dict = {
"🧘 Meditation Guru": (
"A serene meditation guide whose voice is a gentle stream of tranquility—soft, measured tones "
"that float like incense smoke. Each word emerges with mindful intention, creating a soothing "
"atmosphere of peace and present-moment awareness."
),
"🚀 Stranded Astronaut": (
"A lone astronaut whose voice mirrors the silent vastness of space—a low, steady tone imbued "
"with isolation and quiet wonder. It carries the measured resolve of someone sending a final "
"transmission, with an undercurrent of wistful melancholy."
),
"🎬 Noir Narrator": (
"A hardboiled detective whose voice cuts through darkness like neon on wet streets—sharp, "
"world-weary tones dripping with cynical wit. It paints pictures in shades of gray, each word "
"chosen with the precision of a private eye piecing together clues."
),
"🕯️ Victorian Ghost Storyteller": (
"A mysterious raconteur whose voice weaves shadows into stories—velvet-dark tones that dance "
"between whispers and dramatic flourishes. It draws listeners close with elegant phrasing, "
"building tension through perfectly timed pauses and haunting inflections."
),
"🌿 British Naturalist": (
"A passionate, British nature documentarian with a voice that brings the wild to life—crisp, refined "
"tones brimming with wonder and expertise. It shifts seamlessly from hushed observation to "
"animated excitement, painting vivid pictures of the natural world's endless marvels."
),
"🌟 Texan Storyteller": (
"A warm-hearted Texan woman whose voice carries the spirit of wide-open skies—honeyed tones "
"rich with folksy wisdom and charm. It wraps around words like a comfortable quilt, sharing "
"tales with the unhurried grace of a front-porch conversation."
),
"🏴‍☠️ Pirate Captain": (
"A weathered sea captain whose voice rumbles like distant thunder—rich, commanding tones "
"seasoned by salt spray and adventure. It carries the weight of countless voyages, blending "
"gruff authority with the playful spirit of a born storyteller."
),
"🏄 Surfer Dude": (
"A laid-back surfer with a voice that flows like ocean waves—a mellow, easygoing tone infused "
"with sun-soaked warmth. It carries the rhythmic cadence of breaking surf, punctuated by "
"carefree laughter and an infectious enthusiasm for life's simple pleasures."
),
}