Skip to main content

openai_core/resources/
audio.rs

1//! Audio namespace implementations.
2
3use super::{
4    AudioResource, AudioSpeechRequestBuilder, AudioSpeechResource,
5    AudioTranscriptionRequestBuilder, AudioTranscriptionsResource, AudioTranslationRequestBuilder,
6    AudioTranslationsResource,
7};
8
9impl AudioResource {
10    /// 返回 speech 子资源。
11    pub fn speech(&self) -> AudioSpeechResource {
12        AudioSpeechResource::new(self.client.clone())
13    }
14
15    /// 返回 transcriptions 子资源。
16    pub fn transcriptions(&self) -> AudioTranscriptionsResource {
17        AudioTranscriptionsResource::new(self.client.clone())
18    }
19
20    /// 返回 translations 子资源。
21    pub fn translations(&self) -> AudioTranslationsResource {
22        AudioTranslationsResource::new(self.client.clone())
23    }
24}
25
26impl AudioSpeechResource {
27    /// 创建语音合成请求。
28    pub fn create(&self) -> AudioSpeechRequestBuilder {
29        AudioSpeechRequestBuilder::new(self.client.clone())
30    }
31
32    /// 创建 SSE 语音合成请求。
33    ///
34    /// 该请求会自动在请求体中追加 `stream_format = "sse"`。
35    pub fn stream(&self) -> AudioSpeechRequestBuilder {
36        AudioSpeechRequestBuilder::stream(self.client.clone())
37    }
38}
39
40impl AudioTranscriptionsResource {
41    /// 创建转写请求。
42    pub fn create(&self) -> AudioTranscriptionRequestBuilder {
43        AudioTranscriptionRequestBuilder::new(self.client.clone(), false)
44    }
45
46    /// 创建流式转写请求。
47    ///
48    /// 该请求会自动在请求体中追加 `stream = true`。
49    pub fn stream(&self) -> AudioTranscriptionRequestBuilder {
50        AudioTranscriptionRequestBuilder::new(self.client.clone(), true)
51    }
52}
53
54impl AudioTranslationsResource {
55    /// 创建翻译请求。
56    pub fn create(&self) -> AudioTranslationRequestBuilder {
57        AudioTranslationRequestBuilder::new(self.client.clone())
58    }
59}