elevenlabs-api

A very simple Rust library for Elevenlabs API, free from complex async operations and redundant dependencies

2 releases

0.1.1 Jul 6, 2023
0.1.0 Jul 6, 2023

MIT license

14KB
173 lines

elevenlabs-api

A very simple Rust library for Elevenlabs API, free from complex async operations and redundant dependencies. Inspired by openai-api.

API

Check the official API reference.

API Support
Text to Speech ✔️
Text to Speech Stream
Models
Voices
Samples
History
User

Usage

Install the library using the Cargo.toml file.

Export your API key into the environment variables

export ELEVENLABS_API_KEY=...

Then use the crate in your Rust code:

  // import the dependencies
  use elevenlabs_api::{
      tts::{TtsApi, TtsBody},
      *,
  };

  // Load API key from environment ELEVENLABS_API_KEY.
  // You can also hadcode through `Auth::new(<your_api_key>)`, but it is not recommended.
  let auth = Auth::from_env().unwrap();
  let elevenlabs = Elevenlabs::new(auth, "https://api.elevenlabs.io/v1/");

  // Create the tts body.
  let tts_body = TtsBody {
      model_id: None,
      text: "Hello world".to_string(),
      voice_settings: None,
  };

  // Generate the speech for the text by using the voice with id yoZ06aMxZJJ28mfd3POQ.
  let tts_result = elevenlabs.tts(&tts_body, "yoZ06aMxZJJ28mfd3POQ");
  let bytes = tts_result.unwrap();

  // Do what you need with the bytes.
  // The server responds with "audio/mpeg" so we can save as mp3.
  std::fs::write("tts.mp3", bytes).unwrap();

Check the examples folder.

Dependencies

~3–4.5MB
~82K SLoC