async_dashscope/operation/audio/tts/
param.rs

1use derive_builder::Builder;
2use serde::{Deserialize, Serialize};
3
4use crate::operation::{common::Parameters, request::RequestTrait};
5
6#[derive(Debug, Clone, Builder, Serialize, Deserialize, PartialEq)]
7pub struct TextToSpeechParam {
8    #[builder(setter(into))]
9    pub model: String,
10    pub input: Input,
11    #[serde(skip_serializing_if = "Option::is_none")]
12    #[builder(setter(into, strip_option))]
13    #[builder(default=None)]
14    pub stream: Option<bool>,
15    // 这个参数并不存在,只是为了兼容
16    #[serde(skip_serializing_if = "Option::is_none")]
17    #[builder(setter(into, strip_option))]
18    #[builder(default=None)]
19    pub parameters: Option<Parameters>,
20}
21
22#[derive(Debug, Clone, Builder, Serialize, Deserialize, PartialEq)]
23pub struct Input {
24     #[builder(setter(into))]
25    text: String,
26    // 音色,可选有 Chelsie,Cherry,Ethan,Serena,Dylan,Jada,Sunny
27     #[builder(setter(into))]
28    voice: String,
29}
30
31impl RequestTrait for TextToSpeechParam {
32    fn model(&self) -> &str {
33        &self.model
34    }
35
36    fn parameters(&self) -> Option<&Parameters> {
37        None
38    }
39}