fakeyou-api

Github Worflow Status Crates.io version docs.rs docs Crates.io downloads Crates.io downloads

A very simple Rust library for FakeYou API.

API

Check the official API reference.

|API|Support| |---|---| |Text to Speech|✔️| |Voices|❌| |Categories|❌|

Usage

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));

} ```

License

This project is licensed under MIT