d_id/endpoints/resources/
voices.rs1use super::*;
5
6const VOICES_PATH: &str = "/tts/voices";
7
8pub type Voices = Vec<Voice>;
9
10#[derive(Serialize, Deserialize, Debug)]
11pub struct Voice {
12 id: String,
13 name: String,
14 gender: String,
15 locale: String,
16 language: String,
17 access: String,
18 provider: String,
19 }
21
22pub async fn get_voices() -> Result<Voices> {
23 let c = ClientBuilder::new()?
24 .method(GET)?
25 .path(VOICES_PATH)?
26 .header(CONTENT_TYPE, APPLICATION_JSON)?
27 .build()?;
28
29 let resp = c.send_request(Empty::<Bytes>::new()).await?;
30
31 let voices = serde_json::from_slice::<Voices>(&resp.as_ref())?;
32
33 Ok(voices)
34}