diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..bfc1a70 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2025 jroshthen1 + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..d1ca421 --- /dev/null +++ b/README.md @@ -0,0 +1,35 @@ +# Simple TTS UI +My tts ui program for unix + +I made this program as an alternative to my bash script for text chunking and sequential streaming + +Screenshot: +![screenshot](./screenshot.png "Screenshot") + +## Installation + +Dependencies: hexgrad/Kokoro or lucasjinreal/Kokoros and a player aplay/paplay/play/ffplay/mpg123 + +Build dependencies: eframe, egui, atty, tempfile + +Set path for TTS: (these settings can be changed after build) + +```rust +impl Default for KokoroConfig { + fn default() -> Self { + let home = std::env::var("HOME").unwrap_or_else(|_| ".".to_string()); + Self { + exec_path: format!("{}/kokoros/target/release/koko", home), + model_path: format!("{}/kokoros/checkpoints/kokoro-v1.0.onnx", home), + voice_data: format!("{}/kokoros/voices-v1.0.bin", home), + speed: 1.1, + voice_style: "af_heart".to_string(), + chunking: ChunkingConfig::default(), + } + } +} +``` + +Build this app with `cargo build --release` + +Then run `echo "Hello, world" | ./target/release/ttsui` \ No newline at end of file diff --git a/screenshot.png b/screenshot.png new file mode 100644 index 0000000..5243b41 Binary files /dev/null and b/screenshot.png differ