aboutsummaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authorhistoria <historiavg@proton.me>2026-08-23 23:48:25 -0400
committerhistoria <historiavg@proton.me>2026-08-23 23:48:25 -0400
commit5bfbdcb5765fd4eb57d13c67169bb3c2706ead75 (patch)
treea07a27976f56a449e8c33641161553aa0989f5c2 /README.md
parent07f7b351f2956b6c92761877c9a4314bcede3b6e (diff)
downloadtts-audiobook-generator-5bfbdcb5765fd4eb57d13c67169bb3c2706ead75.tar.gz
feat: audiobook.py tui: convert, modify, or install backends
Diffstat (limited to 'README.md')
-rw-r--r--README.md20
1 files changed, 18 insertions, 2 deletions
diff --git a/README.md b/README.md
index 79c4090..f1f9ed7 100644
--- a/README.md
+++ b/README.md
@@ -32,7 +32,23 @@ pip install -r requirements.txt
Put your book files (epub, etc.) in the `input/` directory. The output goes to `output/`.
-You need to install one of the following backends (see below for installation/usage)
+## Quick start (TUI)
+
+Run the generator with no arguments in a terminal:
+
+```bash
+python audiobook.py
+```
+
+A full-screen TUI opens and detects which TTS backends are already set up. From the menu you can:
+
+- **Convert books…** — process the `input/` directory with a ready backend (it reads the backend's `server.json` / `voices.json` so you pick the model and voice from menus), or
+- **Set up a backend…** — clone, build, and configure a backend end-to-end (audio.cpp, qwen, faster), or
+- **Modify a backend…** — regenerate its config (a new `server.json`, rebuild `voices.json`, change ports/speaker).
+
+Everything the TUI does can also be scripted with flags: `python audiobook.py --backend audiocpp --model higgs --voice narrator`, or `python -m backends.audiocpp --families higgs_audio_tts --clone --build-backend cuda`.
+
+You need one of the following backends (the TUI sets them up for you; manual steps below):
| Backend | Description |
| -------------------------------------------------------------------- | ------------------------------------------------------ |
@@ -91,7 +107,7 @@ You can run `python tools/model_manager_v2.py list` to see all available models.
Create a `server.json` config file. One server can host multiple models and multiple cloned voices. The `id:` fields are the model names you will set for `tts-audiobook-generator` with `--model`.
-A helper tool is available in this repo, `tools/make_audiocpp_server_json.py`, that will interactively make this file for you, including automatically transcribing `.wav` voices to clone with `whisper`. It runs as a colorful DOS-style full-screen TUI: browse to your `audio.cpp` checkout, pick model families and packages from an expandable checkbox tree, and accept the defaults on the remaining screens (host, port, backend, lazy loading). Pass `--wavs path/to/clone/wavs` to skip the voice-directory browser (it is prompted for otherwise), and `--notui` to use classic line prompts instead (selected automatically when `curses` is unavailable, e.g. on Windows without `pip install windows-curses`, or when not running in a terminal). Make sure you're in a Python environment that has `whisper` (i.e. `conda activate audiobook` before running). The Qwen3-TTS model tree also offers hosting the VoiceDesign package as a `vdes` entry (see [Voice design](#voice-design) below).
+The easiest way is the TUI: run `python audiobook.py`, choose **Set up a backend… → audio.cpp**, and it clones `audio.cpp` into `./audio.cpp` (or reuses an existing checkout), builds `audiocpp_server`, lets you pick model families/packages from an expandable checkbox tree (reading the checkout's `model_specs/`), transcribes `.wav` voices with `whisper`, writes `server.json` into the checkout, syncs `converter/config.py`, and prints the launch command. Run it directly with `python -m backends.audiocpp` (flags like `--wavs`, `--families`, `--build-backend`, `--clone` skip the corresponding screens for scripting). Make sure you're in a Python environment that has `whisper` (i.e. `conda activate audiobook` before running). The Qwen3-TTS model tree also offers hosting the VoiceDesign package as a `vdes` entry (see [Voice design](#voice-design) below).
```json
{