1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
/*
* OpenAI API
*
* The OpenAI REST API. Please see https://platform.openai.com/docs/api-reference for more details.
*
* The version of the OpenAPI document: 2.3.0
*
* Generated by: https://openapi-generator.tech
*/
use crate::models;
use serde::{Deserialize, Serialize};
/// LiveOutputAudioDelta : An audio chunk generated by the Live model. Decode and play primary WebSocket chunks in delivery order using the configured session audio format. Sideband connections receive reflected output audio with timestamps.
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize, bon::Builder)]
pub struct LiveOutputAudioDelta {
/// The event type, always `session.output_audio.delta`.
#[serde(rename = "type")]
pub r#type: Type,
/// Base64-encoded raw audio. Primary WebSocket events use the session's configured format; reflected sideband events use mono PCM16LE at 24 kHz.
#[serde(rename = "delta")]
pub delta: String,
/// Inclusive session-relative start in milliseconds. Required on reflected sideband events; omitted on the primary WebSocket.
#[serde(rename = "start_ms", skip_serializing_if = "Option::is_none")]
pub start_ms: Option<i32>,
/// Exclusive session-relative end in milliseconds. Required on reflected sideband events; omitted on the primary WebSocket. Dropped output frames leave gaps between reflected ranges.
#[serde(rename = "end_ms", skip_serializing_if = "Option::is_none")]
pub end_ms: Option<i32>,
}
impl LiveOutputAudioDelta {
/// An audio chunk generated by the Live model. Decode and play primary WebSocket chunks in delivery order using the configured session audio format. Sideband connections receive reflected output audio with timestamps.
pub fn new(r#type: Type, delta: String) -> LiveOutputAudioDelta {
LiveOutputAudioDelta {
r#type,
delta,
start_ms: None,
end_ms: None,
}
}
}
/// The event type, always `session.output_audio.delta`.
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Type {
#[serde(rename = "session.output_audio.delta")]
SessionOutputAudioDelta,
}
impl Default for Type {
fn default() -> Type {
Self::SessionOutputAudioDelta
}
}
impl std::fmt::Display for LiveOutputAudioDelta {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match serde_json::to_string(self) {
Ok(s) => write!(f, "{}", s),
Err(_) => Err(std::fmt::Error),
}
}
}