aboutsummaryrefslogtreecommitdiff
path: root/docs/backend-qwen.md
diff options
context:
space:
mode:
authorhistoria <historiavg@proton.me>2026-08-21 14:28:42 -0400
committerhistoria <historiavg@proton.me>2026-08-21 14:28:42 -0400
commit9d2c24edb983e458b0fbb9f065fbbda79c19ca26 (patch)
tree8286decf2080bbd61c812dfab5d7dbe1ad1f94d5 /docs/backend-qwen.md
parente5c722e9fc67f20c1545f79bb4bbc0188dea7d1f (diff)
downloadtts-audiobook-generator-9d2c24edb983e458b0fbb9f065fbbda79c19ca26.tar.gz
rename project tts-audiobook generator, doc cleanup
Diffstat (limited to 'docs/backend-qwen.md')
-rw-r--r--docs/backend-qwen.md63
1 files changed, 63 insertions, 0 deletions
diff --git a/docs/backend-qwen.md b/docs/backend-qwen.md
new file mode 100644
index 0000000..34078e3
--- /dev/null
+++ b/docs/backend-qwen.md
@@ -0,0 +1,63 @@
+# Backend Option 2: Qwen3-TTS
+
+Install qwen-tts with pip:
+
+```bash
+conda activate audiobook
+pip install -U qwen-tts
+```
+
+Run the backend with `qwen-tts-demo`. Add `--no-flash-attn` if FlashAttention isn't installed (see below). Note that the Base model and CustomVoice model run on different ports.
+
+## Voice clone
+
+```bash
+qwen-tts-demo Qwen/Qwen3-TTS-12Hz-1.7B-Base --ip 127.0.0.1 --port 7861 [--no-flash-attn]
+```
+
+Then in another terminal:
+
+```bash
+python audiobook.py --backend qwen --clone reference.wav
+```
+
+The reference `.wav` should be ~10-15 seconds (3 second minimum, 60 second maximum; ~15 seconds is ideal). Longer is **not** better.
+
+Whisper (`faster_whisper` or `whisper`) is used automatically to transcribe the reference audio. Without a Whisper backend it falls back to x-vector-only cloning. Override with `--transcription "What the .wav says"` or skip transcription with `--no-transcription`.
+
+## Custom voice (i.e. built-in voice)
+
+```bash
+conda activate audiobook
+qwen-tts-demo Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice --ip 127.0.0.1 --port 7860 [--no-flash-attn]
+```
+
+```bash
+python audiobook.py --backend qwen
+```
+
+Change the voice settings in `converter/config.py`.
+
+## Optional: FlashAttention for qwen-tts-demo server
+
+FlashAttention provides a *small* speed boost on the `qwen` backend. It is **not** relevant with other backends, and switching to either of those will provide a bigger speed boost.
+
+`qwen-tts-demo` server tries to use FlashAttention 2 by default and requires `--no-flash-attn` without it. You have two options to install FlashAttention in your python environment:
+
+1. Build from source (takes absolutely forever). If you run out of memory, lower MAX_JOBS until you don't.
+
+```bash
+conda activate audiobook
+pip install ninja packaging psutil
+MAX_JOBS=4 pip install --no-build-isolation flash-attn
+```
+
+2. pip install a prebuilt wheel matching your torch / CUDA / Python / CXX11-ABI combination:
+
+```bash
+conda activate audiobook
+python -c "import torch; print(torch.__version__, torch.version.cuda, torch._C._GLIBCXX_USE_CXX11_ABI)"
+```
+
+- [Official wheels](https://github.com/Dao-AILab/flash-attention/releases) - Pick `cp312` + matching `cuX` + `torchX.Y` + `cxx11abiTRUE/FALSE`
+- [Third-party wheels](https://mjunya.com/flash-attention-prebuild-wheels/)