A very simple Rust library for FakeYou API.
Check the official API reference.
|API|Support| |---|---| |Text to Speech|✔️| |Voices|❌| |Categories|❌|
Install the library using the Cargo.toml file or run the following command.
console
cargo add fakeyou-api
Export your API key into the environment variables (if you use the paid version).
console
export FAKEYOU_API_KEY=...
Then use the crate in your Rust code:
```rust // Import the dependencies // Import the dependencies use fakeyou_api::{ tts::{InferenceBody, TtsApi, TtsJobStatus}, *, };
// You can create a default client without any api key.
// You can also load the API key from environment FAKEYOUAPIKEY.
// You can also hadcode through Auth::new(<your_api_key>)
, but it is not recommended.
let auth = Auth::default();
let fakeyou = FakeYou::new(auth, FAKEYOUAPIURL);
// Create the TTS body let inferencebody = InferenceBody { ttsmodeltoken: "TM:ebgxj0j4fvzp".tostring(), inferencetext: "Hello, World! What should we do today?".tostring(), uuididempotencytoken: None, };
// Call the TTS API let inferenceresult = fakeyou.ttsinference(&inference_body).unwrap();
// Print the result println!("{:?}", inference_result);
loop { // Call the TTS API let jobresult = fakeyou.ttsjob(&inferenceresult.inferencejob_token).unwrap();
// Check if the job is done
match job_result.state.status {
TtsJobStatus::Pending => {
println!("Job is pending");
}
TtsJobStatus::Started => {
println!("Job is started");
}
TtsJobStatus::AttemptFailed => {
println!("Job attempt failed. Trying again...");
}
TtsJobStatus::CompleteSuccess => {
println!("Job completed successfully");
let output_result = fakeyou.tts_output(&job_result.state.maybe_public_bucket_wav_audio_path.unwrap()).unwrap();
// Do what you need with the audio file
std::fs::write("output.wav", output_result.bytes).unwrap();
break;
}
_ => {
println!("Job failed");
break;
}
}
// Wait 1 second before trying again
std::thread::sleep(std::time::Duration::from_secs(1));
} ```
This project is licensed under MIT