| Crates.io | natural-tts |
| lib.rs | natural-tts |
| version | 0.3.1 |
| created_at | 2024-06-01 22:33:05.036624+00 |
| updated_at | 2025-12-29 16:25:18.622068+00 |
| description | High-level bindings to a variety of text-to-speech libraries. |
| homepage | |
| repository | https://github.com/CodersCreative/natural-tts |
| max_upload_size | |
| id | 1258921 |
| size | 237,758 |
Parler TTS
Google Gtts
TTS-RS
MSEdge TTS
MetaVoice TTS
Coqui TTS
use std::error::Error;
use crate::{*, models::{gtts::GttsModel, tts_rs::TtsModel, parler::ParlerModel, msedge::MSEdgeModel, meta::MetaModel}};
fn main() -> Result<(), Box<dyn Error>>{
// Create the NaturalTts using the Builder pattern
let mut natural = NaturalTtsBuilder::default()
.default_model(Model::Gtts)
.gtts_model(GttsModel::default())
.parler_model(ParlerModel::default())
.msedge_model(MSEdgeModel::default())
.meta_model(MetaModel::default())
.tts_model(TtsModel::default())
.build()?;
// Start producing an output using the default_model.
let _ = natural.start("Hello, World!".to_string(), &PathBuf::from("output.wav"));
// Get the rodio sink from natural tts
let sink = natural.get_rodio_sink()?.0;
// Play the audio until it finishes
sink.sleep_until_end();
Ok(())
}
use std::error::Error;
use natural_tts::{*, models::meta::MetaModel};
fn main() -> Result<(), Box<dyn Error>>{
// Create the NaturalTts struct using the builder pattern.
let mut natural = NaturalTtsBuilder::default()
.meta_model(MetaModel::default())
.default_model(Model::Meta)
.build()?;
// Start producing an output using the default_model.
let _ = natural.start("Hello, World!".to_string(), &PathBuf::from("output.wav"));
// Play the audio until it finishes
natural.sleep_until_end();
Ok(())
}
use std::error::Error;
use natural_tts::{*, models::parler::ParlerModel};
fn main() -> Result<(), Box<dyn Error>>{
// Create the NaturalTts using the Builder pattern
let mut natural = NaturalTtsBuilder::default()
.parler_model(ParlerModel::default())
.default_model(Model::Parler)
.build()?;
// Start producing an output using the default_model.
let _ = natural.start("Hello, World!".to_string(), &PathBuf::from("output.wav"));
// Play the audio until it finishes
natural.sleep_until_end();
Ok(())
}
use std::error::Error;
use natural_tts::{*, models::gtts::GttsModel};
fn main() -> Result<(), Box<dyn Error>>{
// Create the NaturalTts struct using the builder pattern.
let mut natural = NaturalTtsBuilder::default()
.gtts_model(GttsModel::default())
.default_model(Model::Gtts)
.build()?;
// Start producing an output using the default_model.
let _ = natural.start("Hello, World!".to_string(), &PathBuf::from("output.wav"));
// Play the audio until it finishes
natural.sleep_until_end();
Ok(())
}
use std::error::Error;
use natural_tts::{*, models::msedge::MSEdgeModel};
fn main() -> Result<(), Box<dyn Error>>{
// Create the NaturalTts struct using the builder pattern.
let mut natural = NaturalTtsBuilder::default()
.msedge_model(MSEdgeModel::default())
.default_model(Model::MSEdge)
.build()?;
// Start producing an output using the default_model.
let _ = natural.start("Hello, World!".to_string(), &PathBuf::from("output.wav"));
// Play the audio until it finishes
natural.sleep_until_end();
Ok(())
}
use std::error::Error;
use natural_tts::{*, models::parler::TtsModel};
fn main() -> Result<(), Box<dyn Error>>{
// Create the NaturalTts struct using the builder pattern.
let mut natural = NaturalTtsBuilder::default()
.tts_model(TtsModel::default())
.default_model(Model::TTS)
.build()?;
// Start producing an output using the default_model.
let _ = natural.start("Hello, World!".to_string(), &PathBuf::from("output.wav"));
// Play the audio until it finishes
natural.sleep_until_end();
Ok(())
}
use std::error::Error;
use natural_tts::{*, models::parler::CoquiModel};
fn main() -> Result<(), Box<dyn Error>>{
// Create the NaturalTts struct using the builder pattern.
let mut natural = NaturalTtsBuilder::default()
.coqui_model(CoquiModel::default())
.default_model(Model::Coqui)
.build().unwrap();
// Start producing an output using the default_model.
let _ = natural.start("Hello, World!".to_string(), &PathBuf::from("output.wav"));
// Play the audio until it finishes
natural.sleep_until_end();
Ok(())
}
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.