From e749b3bc88d2fd5253ef4558ca0861157b1ae742 Mon Sep 17 00:00:00 2001
From: remsky
Date: Wed, 1 Jan 2025 21:50:00 -0700
Subject: [PATCH] Add Gradio web interface + tests
---
.coveragerc | 4 +-
CHANGELOG.md | 4 +
README.md | 131 +++++++++++++++-------
docker-compose.yml | 22 ++--
pytest.ini | 4 +-
ui/GradioScreenShot.png | Bin 0 -> 115763 bytes
ui/lib/api.py | 11 +-
ui/lib/components/__init__.py | 2 +-
ui/lib/components/input.py | 24 +++-
ui/lib/components/model.py | 14 +--
ui/lib/components/output.py | 5 +-
ui/lib/files.py | 24 ++++
ui/lib/handlers.py | 201 ++++++++++++++++++++++++++--------
ui/lib/interface.py | 56 ++++++++--
ui/tests/conftest.py | 9 ++
ui/tests/test_api.py | 129 ++++++++++++++++++++++
ui/tests/test_components.py | 116 ++++++++++++++++++++
ui/tests/test_files.py | 195 +++++++++++++++++++++++++++++++++
ui/tests/test_handlers.py | 4 +
ui/tests/test_input.py | 74 +++++++++++++
ui/tests/test_interface.py | 139 +++++++++++++++++++++++
21 files changed, 1048 insertions(+), 120 deletions(-)
create mode 100644 ui/GradioScreenShot.png
create mode 100644 ui/tests/conftest.py
create mode 100644 ui/tests/test_api.py
create mode 100644 ui/tests/test_components.py
create mode 100644 ui/tests/test_files.py
create mode 100644 ui/tests/test_handlers.py
create mode 100644 ui/tests/test_input.py
create mode 100644 ui/tests/test_interface.py
diff --git a/.coveragerc b/.coveragerc
index 4072f19..dab8655 100644
--- a/.coveragerc
+++ b/.coveragerc
@@ -1,5 +1,7 @@
[run]
-source = api
+source =
+ api
+ ui
omit =
Kokoro-82M/*
MagicMock/*
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 36715cd..44c98bf 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,10 @@ Notable changes to this project will be documented in this file.
## 2024-01-09
+### Added
+- Gradio Web Interface:
+ - Added simple web UI utility for audio generation from input or txt file
+
### Modified
#### Configuration Changes
- Updated Docker configurations:
diff --git a/README.md b/README.md
index a626cc0..392ab68 100644
--- a/README.md
+++ b/README.md
@@ -3,42 +3,55 @@
# Kokoro TTS API
-[]()
-[]()
+[]()
+[]()
[](https://huggingface.co/hexgrad/Kokoro-82M/tree/c3b0d86e2a980e027ef71c28819ea02e351c2667)
-FastAPI wrapper for [Kokoro-82M](https://huggingface.co/hexgrad/Kokoro-82M) text-to-speech model, providing an OpenAI-compatible endpoint with:
+Dockerized FastAPI wrapper for [Kokoro-82M](https://huggingface.co/hexgrad/Kokoro-82M) text-to-speech model
+- OpenAI-compatible Speech endpoint, with voice combination functionality
- NVIDIA GPU accelerated inference (or CPU) option
+- very fast generation time (~35x real time factor)
- automatic chunking/stitching for long texts
-- very fast generation time (~35-49x RTF)
+- simple audio generation web ui utility
-## Quick Start
+
+OpenAI-Compatible Speech Endpoint
+
+The service can be accessed through either the API endpoints or the Gradio web interface.
1. Install prerequisites:
- - Install [Docker Desktop](https://www.docker.com/products/docker-desktop/)
- - Install [Git](https://git-scm.com/downloads) (or download and extract zip)
+ - Install [Docker Desktop](https://www.docker.com/products/docker-desktop/) + [Git](https://git-scm.com/downloads)
+ - Clone and start the service:
+ ```bash
+ git clone https://github.com/remsky/Kokoro-FastAPI.git
+ cd Kokoro-FastAPI
+ docker compose up --build
+ ```
+2. Run locally as an OpenAI-Compatible Speech Endpoint
+ ```python
+ from openai import OpenAI
+ client = OpenAI(
+ base_url="http://localhost:8880",
+ api_key="not-needed"
+ )
-2. Clone and start the service:
-```bash
-# Clone repository
-git clone https://github.com/remsky/Kokoro-FastAPI.git
-cd Kokoro-FastAPI
+ response = client.audio.speech.create(
+ model="kokoro",
+ voice="af_bella",
+ input="Hello world!",
+ response_format="mp3"
+ )
+ response.stream_to_file("output.mp3")
+ ```
-# For GPU acceleration (requires NVIDIA GPU):
-docker compose up --build
+ or visit http://localhost:7860
+
+
+
+
+
+OpenAI-Compatible Speech Endpoint
-# For CPU-only deployment (~10x slower, but doesn't require an NVIDIA GPU):
-docker compose -f docker-compose.cpu.yml up --build
-```
-Quick tests (run from another terminal):
-```bash
-# Test OpenAI Compatibility
-python examples/test_openai_tts.py
-# Test all available voices
-python examples/test_all_voices.py
-```
-
-## OpenAI-Compatible API
```python
# Using OpenAI's Python library
from openai import OpenAI
@@ -77,16 +90,26 @@ with open("output.mp3", "wb") as f:
f.write(response.content)
```
-## Voice Combination
+Quick tests (run from another terminal):
+```bash
+python examples/test_openai_tts.py # Test OpenAI Compatibility
+python examples/test_all_voices.py # Test all available voices
+```
+
+
+
+Voice Combination
Combine voices and generate audio:
```python
import requests
+response = requests.get("http://localhost:8880/v1/audio/voices")
+voices = response.json()["voices"]
-# Create combined voice (saved locally on server)
+# Create combined voice (saves locally on server)
response = requests.post(
"http://localhost:8880/v1/audio/voices/combine",
- json=["af_bella", "af_sarah"]
+ json=[voices[0], voices[1]]
)
combined_voice = response.json()["voice"]
@@ -100,8 +123,27 @@ response = requests.post(
}
)
```
+
+
+
+
-## Performance Benchmarks
+
+Gradio Web Utility
+
+Access the interactive web UI at http://localhost:7860 after starting the service. Features include:
+- Voice/format/speed selection
+- Audio playback and download
+- Text file or direct input
+
+If you only want the API, just comment out everything in the docker-compose.yml under and including `gradio-ui`
+
+Currently, voices created via the API are accessible here, but voice combination/creation has not yet been added
+
+
+
+
+Performance Benchmarks
Benchmarking was performed on generation via the local API using text lengths up to feature-length books (~1.5 hours output), measuring processing time and realtime factor. Tests were run on:
- Windows 11 Home w/ WSL2
@@ -119,10 +161,22 @@ Benchmarking was performed on generation via the local API using text lengths up
Key Performance Metrics:
- Realtime Factor: Ranges between 35-49x (generation time to output audio length)
- Average Processing Rate: 137.67 tokens/second (cl100k_base)
+
+
+GPU Vs. CPU
-## Features
+```bash
+# GPU: Requires NVIDIA GPU with CUDA 12.1 support
+docker compose up --build
-- OpenAI-compatible API endpoints
+# CPU: ~10x slower than GPU inference
+docker compose -f docker-compose.cpu.yml up --build
+```
+
+
+Features
+
+- OpenAI-compatible API endpoints (with optional Gradio Web UI)
- GPU-accelerated inference (if desired)
- Multiple audio formats: mp3, wav, opus, flac, (aac & pcm not implemented)
- Natural Boundary Detection:
@@ -131,19 +185,21 @@ Key Performance Metrics:
- Averages model weights of any existing voicepacks
- Saves generated voicepacks for future use
-
-
-
+
*Note: CPU Inference is currently a very basic implementation, and not heavily tested*
+
-## Model
+
+Model
This API uses the [Kokoro-82M](https://huggingface.co/hexgrad/Kokoro-82M) model from HuggingFace.
Visit the model page for more details about training, architecture, and capabilities. I have no affiliation with any of their work, and produced this wrapper for ease of use and personal projects.
+
-## License
+
+License
This project is licensed under the Apache License 2.0 - see below for details:
@@ -152,3 +208,4 @@ This project is licensed under the Apache License 2.0 - see below for details:
- The inference code adapted from StyleTTS2 is MIT licensed
The full Apache 2.0 license text can be found at: https://www.apache.org/licenses/LICENSE-2.0
+
diff --git a/docker-compose.yml b/docker-compose.yml
index 565d158..2722208 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -46,14 +46,14 @@ services:
model-fetcher:
condition: service_healthy
- # # Gradio UI service
- # gradio-ui:
- # build:
- # context: ./ui
- # ports:
- # - "7860:7860"
- # volumes:
- # - ./ui/data:/app/ui/data
- # - ./ui/app.py:/app/app.py # Mount app.py for hot reload
- # environment:
- # - GRADIO_WATCH=True # Enable hot reloading
+ # Gradio UI service [Comment out everything below if you don't need it]
+ gradio-ui:
+ build:
+ context: ./ui
+ ports:
+ - "7860:7860"
+ volumes:
+ - ./ui/data:/app/ui/data
+ - ./ui/app.py:/app/app.py # Mount app.py for hot reload
+ environment:
+ - GRADIO_WATCH=True # Enable hot reloading
diff --git a/pytest.ini b/pytest.ini
index 3bcd461..47be4b5 100644
--- a/pytest.ini
+++ b/pytest.ini
@@ -1,5 +1,5 @@
[pytest]
-testpaths = api/tests
+testpaths = api/tests ui/tests
python_files = test_*.py
-addopts = -v --tb=short --cov=api --cov-report=term-missing --cov-config=.coveragerc
+addopts = -v --tb=short --cov=api --cov=ui --cov-report=term-missing --cov-config=.coveragerc
pythonpath = .
diff --git a/ui/GradioScreenShot.png b/ui/GradioScreenShot.png
new file mode 100644
index 0000000000000000000000000000000000000000..77af6b39b545310bc72d129f3d01b273de700725
GIT binary patch
literal 115763
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°B3;lk7L@_x+$mh~P3n34banN744nrTK8~7~x
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