# generated by datamodel-codegen:
#   filename:  openai_task_text_to_speech_input.json

from __future__ import annotations

from dataclasses import dataclass
from enum import Enum
from typing import Optional, Union


class Model(Enum):
    tts_1 = 'tts-1'
    tts_1_hd = 'tts-1-hd'


class ResponseFormat(Enum):
    mp3 = 'mp3'
    opus = 'opus'
    aac = 'aac'
    flac = 'flac'


class Voice(Enum):
    alloy = 'alloy'
    echo = 'echo'
    fable = 'fable'
    onyx = 'onyx'
    nova = 'nova'
    shimmer = 'shimmer'


@dataclass
class Input:
    model: Union[str, Model]
    text: str
    voice: Voice
    response_format: Optional[ResponseFormat] = ResponseFormat.mp3
    speed: Optional[float] = 1
