use std::env;
use deepgram::{Deepgram, DeepgramError};
#[tokio::main]
async fn main() -> Result<(), DeepgramError> {
let deepgram_api_key =
env::var("DEEPGRAM_API_KEY").expect("DEEPGRAM_API_KEY environmental variable");
let dg_client = Deepgram::new(&deepgram_api_key)?;
let models = dg_client.models().get_models().await?;
println!("STT models:");
for model in &models.stt {
let multilingual = match model.multilingual {
Some(true) => " [multilingual]",
_ => "",
};
println!(
" {} ({}) v{}{multilingual}",
model.name.as_deref().unwrap_or("-"),
model.canonical_name.as_deref().unwrap_or("-"),
model.version.as_deref().unwrap_or("-"),
);
}
println!("TTS voices:");
for model in &models.tts {
let metadata = model.metadata.as_ref();
let display_name = metadata
.and_then(|m| m.display_name.as_deref())
.or(model.name.as_deref())
.unwrap_or("-");
let accent = metadata
.and_then(|m| m.accent.as_deref())
.unwrap_or("unknown accent");
println!(
" {display_name} ({}) — {accent}",
model.canonical_name.as_deref().unwrap_or("-"),
);
}
println!("Languages covered: {}", models.languages.len());
if let Some(name) = models.languages.get("en-US") {
println!(" en-US is {name}");
}
Ok(())
}