#[allow(unused_imports)]
use crate::prelude::*;
#[allow(unused_imports)]
use serde::{Deserialize, Serialize};
#[allow(unused_imports)]
use std::collections::HashMap;
#[derive(Debug, Serialize, Deserialize, Default)]
pub struct AudioInput {
pub url: String,
}
#[derive(Debug, Serialize, Deserialize, Default)]
pub struct AudioIsolationRequest {
pub audio_url: String,
}
#[derive(Debug, Serialize, Deserialize, Default)]
pub struct File {
#[serde(skip_serializing_if = "Option::is_none")]
pub content_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub file_data: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub file_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub file_size: Option<i64>,
pub url: String,
}
#[derive(Debug, Serialize, Deserialize, Default)]
pub struct HTTPValidationError {
#[serde(skip_serializing_if = "Option::is_none")]
pub detail: Option<Vec<Option<ValidationError>>>,
}
#[derive(Debug, Serialize, Deserialize, Default)]
pub struct SoundEffectOutput {
pub audio: File,
}
#[derive(Debug, Serialize, Deserialize, Default)]
pub struct SoundEffectRequest {
#[serde(skip_serializing_if = "Option::is_none")]
pub duration_seconds: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub prompt_influence: Option<f64>,
pub text: String,
}
#[derive(Debug, Serialize, Deserialize, Default)]
pub struct SpeechToTextRequest {
pub audio_url: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub diarize: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub language_code: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tag_audio_events: Option<bool>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct TTSOutput {
pub audio: File,
}
#[derive(Debug, Serialize, Deserialize, Default)]
pub struct TextToSpeechRequest {
#[serde(skip_serializing_if = "Option::is_none")]
pub similarity_boost: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub stability: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub style: Option<f64>,
pub text: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub voice: Option<String>,
}
#[derive(Debug, Serialize, Deserialize, Default)]
pub struct TranscriptionOutput {
pub language_code: String,
pub language_probability: f64,
pub text: String,
pub words: Vec<TranscriptionWord>,
}
#[derive(Debug, Serialize, Deserialize, Default)]
pub struct TranscriptionWord {
pub end: f64,
#[serde(skip_serializing_if = "Option::is_none")]
pub speaker_id: Option<String>,
pub start: f64,
pub text: String,
#[serde(rename = "type")]
pub ty: String,
}
#[derive(Debug, Serialize, Deserialize, Default)]
pub struct ValidationError {
pub loc: Vec<serde_json::Value>,
pub msg: String,
#[serde(rename = "type")]
pub ty: String,
}
#[derive(Debug, Serialize, Deserialize, Default)]
pub struct VoiceCloningOutput {
pub voice_id: String,
}
#[derive(Debug, Serialize, Deserialize, Default)]
pub struct VoiceCloningRequest {
pub audio_urls: Vec<AudioInput>,
#[serde(skip_serializing_if = "Option::is_none")]
pub remove_background_noise: Option<bool>,
}
pub fn multilingual_v2(params: TextToSpeechRequest) -> FalRequest<TextToSpeechRequest, TTSOutput> {
FalRequest::new("fal-ai/elevenlabs/tts/multilingual-v2", params)
}