Standardize project naming to uncloseai-speech across all files
- Add CHANGELOG.md with full version history (moved from README)
- Update all documentation to use lowercase 'uncloseai-speech' project name
- Update organization references to lowercase 'uncloseai' (not 'UncloseAI')
- Add Brand Identity section to docs/CLAUDE.md with naming guidelines
- Update speech.py argparse description to match branding
- Update README.md headers and sections with consistent naming
- Update all model documentation with consistent branding
Files updated:
- CHANGELOG.md (new file)
- README.md (changelog reference, server options, multilingual section)
- speech.py (--workers argument, branding in argparse)
- Makefile (header comment)
- docs/CLAUDE.md (Brand Identity section)
- docs/MODELS.md
- docs/MIRRORS.md
- docs/AUDIT.md
- docs/models/coqui-tts.md
- docs/research/tts-models-overview.md
Branding standard:
- Project: uncloseai-speech (lowercase, hyphenated)
- Organization: uncloseai (lowercase, one word)
🦝 Generated with Claude Code
This commit is contained in:
parent
da8e960b2d
commit
7559e56d0c
10 changed files with 313 additions and 165 deletions
163
README.md
163
README.md
|
|
@ -1,4 +1,4 @@
|
|||
# UncloseAI Speech
|
||||
# uncloseai-speech
|
||||
|
||||
🦝 **Raccoon Mission Fork:** Rescuing abandoned TTS models and building a unified, resilient text-to-speech system.
|
||||
|
||||
|
|
@ -79,130 +79,7 @@ If you find a better voice match for `tts-1` or `tts-1-hd`, please let me know s
|
|||
|
||||
## Recent Changes
|
||||
|
||||
**Raccoon Mission Updates, 2025-11-09**
|
||||
|
||||
* 🦝 **Production-ready multiprocess architecture** - 4 uvicorn workers for true concurrency, bypassing Python's GIL
|
||||
* 🦝 **Voice auto-detection** - `model` parameter now optional, automatically selects correct engine from voice name
|
||||
* 🦝 **Voice cache initialization fix** - All worker processes now properly initialize voice-to-model lookup cache
|
||||
* 🦝 **Args initialization fix** - Worker processes now have access to server configuration via DefaultArgs class
|
||||
* 🦝 **235/245 voices working** (95.9% hydration success rate):
|
||||
- Piper: 55/55 voices (100%)
|
||||
- XTTS: 6/8 voices (75%)
|
||||
- Silero: 142/148 voices (95.9%)
|
||||
- Kokoro: 32/34 voices (94.1%)
|
||||
* 🦝 **Extended `/v1/voices` endpoint** - Returns all available voices with engine metadata
|
||||
* 🦝 **Makefile targets** - `make hydrate` (test all voices), `make load-test` (concurrent stress test)
|
||||
* 🦝 **Comprehensive docs** - See `docs/CLAUDE.md`, `docs/MODELS.md`, `docs/MIRRORS.md`, `docs/AUDIT.md`
|
||||
|
||||
Version 0.18.2, 2024-08-16
|
||||
|
||||
* Fix docker building for amd64, refactor github actions again, free up more disk space
|
||||
|
||||
Version 0.18.1, 2024-08-15
|
||||
|
||||
* refactor github actions
|
||||
|
||||
Version 0.18.0, 2024-08-15
|
||||
|
||||
* Allow folders of wav samples in xtts. Samples will be combined, allowing for mixed voices and collections of small samples. Still limited to 30 seconds total. Thanks @nathanhere.
|
||||
* Fix missing yaml requirement in -min image
|
||||
* fix fr_FR-tom-medium and other 44khz piper voices (detect non-default sample rates)
|
||||
* minor updates
|
||||
|
||||
Version 0.17.2, 2024-07-01
|
||||
|
||||
* fix -min image (re: langdetect)
|
||||
|
||||
Version 0.17.1, 2024-07-01
|
||||
|
||||
* fix ROCm (add langdetect to requirements-rocm.txt)
|
||||
* Fix zh-cn for xtts
|
||||
|
||||
Version 0.17.0, 2024-07-01
|
||||
|
||||
* Automatic language detection, thanks [@RodolfoCastanheira](https://github.com/RodolfoCastanheira)
|
||||
|
||||
Version 0.16.0, 2024-06-29
|
||||
|
||||
* Multi-client safe version. Audio generation is synchronized in a single process. The estimated 'realtime' factor of XTTS on a GPU is roughly 1/3, this means that multiple streams simultaneously, or `speed` over 2, may experience audio underrun (delays or pauses in playback). This makes multiple clients possible and safe, but in practice 2 or 3 simultaneous streams is the maximum without audio underrun.
|
||||
|
||||
Version 0.15.1, 2024-06-27
|
||||
|
||||
* Remove deepspeed from requirements.txt, it's too complex for typical users. A more detailed deepspeed install document will be required.
|
||||
|
||||
Version 0.15.0, 2024-06-26
|
||||
|
||||
* Switch to [coqui-tts](https://github.com/idiap/coqui-ai-TTS) (updated fork), updated simpler dependencies, torch 2.3, etc.
|
||||
* Resolve cuda threading issues
|
||||
|
||||
Version 0.14.1, 2024-06-26
|
||||
|
||||
* Make deepspeed possible (`--use-deepspeed`), but not enabled in pre-built docker images (too large). Requires the cuda-toolkit installed, see the Dockerfile comment for details
|
||||
|
||||
Version 0.14.0, 2024-06-26
|
||||
|
||||
* Added `response_format`: `wav` and `pcm` support
|
||||
* Output streaming (while generating) for `tts-1` and `tts-1-hd`
|
||||
* Enhanced [generation parameters](#generation-parameters) for xtts models (temperature, top_p, etc.)
|
||||
* Idle unload timer (optional) - doesn't work perfectly yet
|
||||
* Improved error handling
|
||||
|
||||
Version 0.13.0, 2024-06-25
|
||||
|
||||
* Added [Custom fine-tuned XTTS model support](#custom-fine-tuned-model-support)
|
||||
* Initial prebuilt arm64 image support (Apple M-series, Raspberry Pi - MPS is not supported in XTTS/torch), thanks [@JakeStevenson](https://github.com/JakeStevenson), [@hchasens](https://github.com/hchasens)
|
||||
* Initial attempt at AMD GPU (ROCm 5.7) support
|
||||
* Parler-tts support removed
|
||||
* Move the *.default.yaml to the root folder
|
||||
* Run the docker as a service by default (`restart: unless-stopped`)
|
||||
* Added `audio_reader.py` for streaming text input and reading long texts
|
||||
|
||||
Version 0.12.3, 2024-06-17
|
||||
|
||||
* Additional logging details for BadRequests (400)
|
||||
|
||||
Version 0.12.2, 2024-06-16
|
||||
|
||||
* Fix :min image requirements (numpy<2?)
|
||||
|
||||
Version 0.12.0, 2024-06-16
|
||||
|
||||
* Improved error handling and logging
|
||||
* Restore the original alloy tts-1-hd voice by default, use alloy-alt for the old voice.
|
||||
|
||||
Version 0.11.0, 2024-05-29
|
||||
|
||||
* 🌐 [Multilingual](#multilingual) support (16 languages) with XTTS
|
||||
* Remove high Unicode filtering from the default `config/pre_process_map.yaml`
|
||||
* Update Docker build & app startup. thanks @justinh-rahb
|
||||
* Fix: "Plan failed with a cudnnException"
|
||||
* Remove piper cuda support
|
||||
|
||||
Version: 0.10.1, 2024-05-05
|
||||
|
||||
* Remove `runtime: nvidia` from docker-compose.yml, this assumes nvidia/cuda compatible runtime is available by default. thanks [@jmtatsch](https://github.com/jmtatsch)
|
||||
|
||||
Version: 0.10.0, 2024-04-27
|
||||
|
||||
* Pre-built & tested docker images, smaller docker images (8GB or 860MB)
|
||||
* Better upgrades: reorganize config files under `config/`, voice models under `voices/`
|
||||
* **Compatibility!** If you customized your `voice_to_speaker.yaml` or `pre_process_map.yaml` you need to move them to the `config/` folder.
|
||||
* default listen host to 0.0.0.0
|
||||
|
||||
Version: 0.9.0, 2024-04-23
|
||||
|
||||
* Fix bug with yaml and loading UTF-8
|
||||
* New sample text-to-speech application `say.py`
|
||||
* Smaller docker base image
|
||||
* Add beta [parler-tts](https://huggingface.co/parler-tts/parler_tts_mini_v0.1) support (you can describe very basic features of the speaker voice), See: (https://www.text-description-to-speech.com/) for some examples of how to describe voices. Voices can be defined in the `voice_to_speaker.default.yaml`. Two example [parler-tts](https://huggingface.co/parler-tts/parler_tts_mini_v0.1) voices are included in the `voice_to_speaker.default.yaml` file. `parler-tts` is experimental software and is kind of slow. The exact voice will be slightly different each generation but should be similar to the basic description.
|
||||
|
||||
...
|
||||
|
||||
Version: 0.7.3, 2024-03-20
|
||||
|
||||
* Allow different xtts versions per voice in `voice_to_speaker.yaml`, ex. xtts_v2.0.2
|
||||
* Quality: Fix xtts sample rate (24000 vs. 22050 for piper) and pops
|
||||
|
||||
See [CHANGELOG.md](CHANGELOG.md) for full version history.
|
||||
|
||||
## Installation instructions
|
||||
|
||||
|
|
@ -298,10 +175,11 @@ bash startup.sh
|
|||
## Server Options
|
||||
|
||||
```shell
|
||||
usage: speech.py [-h] [--xtts_device XTTS_DEVICE] [--preload PRELOAD] [--unload-timer UNLOAD_TIMER] [--use-deepspeed] [--no-cache-speaker] [-P PORT] [-H HOST]
|
||||
usage: speech.py [-h] [--xtts_device XTTS_DEVICE] [--preload PRELOAD] [--unload-timer UNLOAD_TIMER]
|
||||
[--use-deepspeed] [--no-cache-speaker] [-W WORKERS] [-P PORT] [-H HOST]
|
||||
[-L {DEBUG,INFO,WARNING,ERROR,CRITICAL}]
|
||||
|
||||
UncloseAI Speech API Server
|
||||
uncloseai-speech API Server
|
||||
|
||||
options:
|
||||
-h, --help show this help message and exit
|
||||
|
|
@ -312,6 +190,8 @@ options:
|
|||
Idle unload timer for the XTTS model in seconds, Ex. 900 for 15 minutes (default: None)
|
||||
--use-deepspeed Use deepspeed with xtts (this option is unsupported) (default: False)
|
||||
--no-cache-speaker Don't use the speaker wav embeddings cache (default: False)
|
||||
-W WORKERS, --workers WORKERS
|
||||
Number of uvicorn worker processes for concurrent request handling (default: 4)
|
||||
-P PORT, --port PORT Server tcp port (default: 8000)
|
||||
-H HOST, --host HOST Host to listen on, Ex. 0.0.0.0 (default: 0.0.0.0)
|
||||
-L {DEBUG,INFO,WARNING,ERROR,CRITICAL}, --log-level {DEBUG,INFO,WARNING,ERROR,CRITICAL}
|
||||
|
|
@ -452,11 +332,13 @@ Where the `voices/mixed/` folder contains multiple wav files. The total audio le
|
|||
|
||||
## Multilingual
|
||||
|
||||
Multilingual cloning support was added in version 0.11.0 and is available only with the XTTS v2 model. To use multilingual voices with piper simply download a language specific voice.
|
||||
uncloseai-speech supports multiple languages across different TTS engines:
|
||||
|
||||
Coqui XTTSv2 has support for multiple languages: English (`en`), Spanish (`es`), French (`fr`), German (`de`), Italian (`it`), Portuguese (`pt`), Polish (`pl`), Turkish (`tr`), Russian (`ru`), Dutch (`nl`), Czech (`cs`), Arabic (`ar`), Chinese (`zh-cn`), Hungarian (`hu`), Korean (`ko`), Japanese (`ja`), and Hindi (`hi`). When not set, an attempt will be made to automatically detect the language, falling back to English (`en`).
|
||||
### XTTS (tts-1-hd) - 17 Languages
|
||||
|
||||
Unfortunately the OpenAI API does not support language, but you can create your own custom speaker voice and set the language for that.
|
||||
Multilingual cloning support was added in version 0.11.0. Coqui XTTSv2 has support for multiple languages: English (`en`), Spanish (`es`), French (`fr`), German (`de`), Italian (`it`), Portuguese (`pt`), Polish (`pl`), Turkish (`tr`), Russian (`ru`), Dutch (`nl`), Czech (`cs`), Arabic (`ar`), Chinese (`zh-cn`), Hungarian (`hu`), Korean (`ko`), Japanese (`ja`), and Hindi (`hi`). When not set, an attempt will be made to automatically detect the language, falling back to English (`en`).
|
||||
|
||||
Unfortunately the OpenAI API does not support language parameters, but you can create your own custom speaker voice and set the language for that.
|
||||
|
||||
1) Create the WAV file for your speaker, as in [Custom Voices Howto](#custom-voices-howto)
|
||||
2) Add the voice to `config/voice_to_speaker.yaml` and include the correct Coqui `language` code for the speaker. For example:
|
||||
|
|
@ -476,10 +358,29 @@ Remove:
|
|||
- ''
|
||||
```
|
||||
|
||||
These lines were added to the `config/pre_process_map.yaml` config file by default before version 0.11.0:
|
||||
These lines were added to the `config/pre_process_map.yaml` config file by default before version 0.11.0.
|
||||
|
||||
4) Your new multi-lingual speaker voice is ready to use!
|
||||
|
||||
### Silero (tts-1-silero) - 5 Languages
|
||||
|
||||
Silero TTS provides native multilingual support with 148 voices across 5 languages:
|
||||
- **English (en)** - 117 voices
|
||||
- **Russian (ru)** - 10 voices
|
||||
- **German (de)** - 5 voices
|
||||
- **Spanish (es)** - 3 voices
|
||||
- **French (fr)** - 5 voices
|
||||
|
||||
Each language has multiple speaker variations. Voices are automatically configured in `config/voice_to_speaker.yaml`. Simply select the appropriate voice (e.g., `en_0`, `ru_0`, `de_0`) and the correct language model will be loaded automatically.
|
||||
|
||||
### Kokoro (tts-1-kokoro) - English Only
|
||||
|
||||
Kokoro TTS currently supports only American and British English with 34 high-quality voices. The model uses a lightweight decoder-only architecture (82M parameters) optimized for English speech synthesis.
|
||||
|
||||
### Piper (tts-1) - 50+ Languages
|
||||
|
||||
For Piper TTS, simply download language-specific voice models from [piper samples](https://rhasspy.github.io/piper-samples/). Piper supports 50+ languages with hundreds of voice options. Add the voice to `config/voice_to_speaker.yaml` as shown in [Custom Voices Howto](#custom-voices-howto).
|
||||
|
||||
|
||||
## Custom Fine-Tuned Model Support
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue