2 releases
0.1.7 | Mar 25, 2024 |
---|---|
0.1.5 |
|
0.1.0 | Jan 22, 2024 |
#362 in Audio
15MB
146K
SLoC
Contains (Cab file, 12KB) extern/flite/flite.v11.suo
fliters
rust bindings for the flite c library
Usage
Check out /examples
directory for more examples.
// standard example
use fliters;
fn main() {
fliters::tts("hello, world!").play();
}
// Controlling the output stream. (i.e. playing and pausing)
use fliters;
use rodio::{OutputStream, Sink};
fn main() {
let (_stream, handle) = OutputStream::try_default().unwrap();
let sink = Sink::try_new(&handle).unwrap();
let fwav = fliters::tts("play this audio with some stream controls");
let decoder = fwav.get_decoder();
sink.append(decoder);
sink.play();
std::thread::sleep(std::time::Duration::from_secs(1));
sink.pause();
std::thread::sleep(std::time::Duration::from_secs(3));
sink.play();
sink.sleep_until_end();
}
I've only tested on MacOS Sonoma 14.2. xD
Roadmap
- basic tts api
- control output stream with
play
- optimize build (include only necessary c files)
- customize voice (defaults to slt right now)
- linux arm64 support
- linux amd64 support
Installation
Add this to your cargo.toml:
fliters = "0.1.7"
If you install the crate, but encounter build errors (especially linker errors), try to specify the repo as the dependency. Submit an issue in the meantime so I can investigate.
fliters = { git = "https://github.com/jackycamp/flite-rs" }
Building
# clone the repository
git clone https://github.com/jackycamp/flite-rs.git
# do the build
cd flite-rs && cargo build
# run an example
cargo run --example tts
Dependencies
~0.8–29MB
~436K SLoC