Skip to main content

openai_types/audio/
enums.rs

1// Manual: hand-crafted audio enums (more precise than generated).
2
3use serde::{Deserialize, Serialize};
4
5/// Response format for audio transcription/translation.
6#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
7#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
8#[serde(rename_all = "snake_case")]
9#[non_exhaustive]
10pub enum AudioResponseFormat {
11    Json,
12    Text,
13    Srt,
14    VerboseJson,
15    Vtt,
16    DiarizedJson,
17}
18
19/// Audio format for speech output.
20#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
21#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
22#[serde(rename_all = "snake_case")]
23#[non_exhaustive]
24pub enum SpeechResponseFormat {
25    Mp3,
26    Opus,
27    Aac,
28    Flac,
29    Wav,
30    Pcm,
31}
32
33/// Voice for text-to-speech.
34#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
35#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
36#[serde(rename_all = "snake_case")]
37#[non_exhaustive]
38pub enum AudioVoice {
39    Alloy,
40    Ash,
41    Ballad,
42    Coral,
43    Echo,
44    Sage,
45    Shimmer,
46    Verse,
47    Marin,
48    Cedar,
49}
50
51/// Input audio format in content parts.
52#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
53#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
54#[serde(rename_all = "snake_case")]
55#[non_exhaustive]
56pub enum InputAudioFormat {
57    Wav,
58    Mp3,
59}