mirror of https://github.com/coqui-ai/TTS.git
ci: simplify ci by using uv where possible
This commit is contained in:
parent
8e66be2c32
commit
ce5c492518
|
@ -13,17 +13,15 @@ jobs:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
python-version: [3.9]
|
python-version: [3.9]
|
||||||
experimental: [false]
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- name: Set up Python ${{ matrix.python-version }}
|
- name: Install uv
|
||||||
uses: actions/setup-python@v5
|
uses: astral-sh/setup-uv@v3
|
||||||
with:
|
with:
|
||||||
python-version: ${{ matrix.python-version }}
|
version: "0.4.27"
|
||||||
architecture: x64
|
enable-cache: true
|
||||||
cache: 'pip'
|
cache-dependency-glob: "**/pyproject.toml"
|
||||||
cache-dependency-path: 'requirements*'
|
- name: Set up Python ${{ matrix.python-version }}
|
||||||
- name: Install/upgrade dev dependencies
|
run: uv python install ${{ matrix.python-version }}
|
||||||
run: python3 -m pip install -r requirements.dev.txt
|
|
||||||
- name: Lint check
|
- name: Lint check
|
||||||
run: make lint
|
run: make lint
|
||||||
|
|
|
@ -16,17 +16,14 @@ jobs:
|
||||||
subset: ["data_tests", "inference_tests", "test_aux", "test_text", "test_tts", "test_tts2", "test_vocoder", "test_xtts", "test_zoo0", "test_zoo1", "test_zoo2"]
|
subset: ["data_tests", "inference_tests", "test_aux", "test_text", "test_tts", "test_tts2", "test_vocoder", "test_xtts", "test_zoo0", "test_zoo1", "test_zoo2"]
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- name: Set up Python ${{ matrix.python-version }}
|
- name: Install uv
|
||||||
uses: actions/setup-python@v5
|
uses: astral-sh/setup-uv@v3
|
||||||
with:
|
with:
|
||||||
python-version: ${{ matrix.python-version }}
|
version: "0.4.27"
|
||||||
architecture: x64
|
enable-cache: true
|
||||||
cache: 'pip'
|
cache-dependency-glob: "**/pyproject.toml"
|
||||||
cache-dependency-path: 'requirements*'
|
- name: Set up Python ${{ matrix.python-version }}
|
||||||
- name: check OS
|
run: uv python install ${{ matrix.python-version }}
|
||||||
run: cat /etc/os-release
|
|
||||||
- name: set ENV
|
|
||||||
run: export TRAINER_TELEMETRY=0
|
|
||||||
- name: Install Espeak
|
- name: Install Espeak
|
||||||
if: contains(fromJSON('["inference_tests", "test_text", "test_tts", "test_tts2", "test_xtts", "test_zoo0", "test_zoo1", "test_zoo2"]'), matrix.subset)
|
if: contains(fromJSON('["inference_tests", "test_text", "test_tts", "test_tts2", "test_xtts", "test_zoo0", "test_zoo1", "test_zoo2"]'), matrix.subset)
|
||||||
run: |
|
run: |
|
||||||
|
@ -37,21 +34,17 @@ jobs:
|
||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
sudo apt-get install -y --no-install-recommends git make gcc
|
sudo apt-get install -y --no-install-recommends git make gcc
|
||||||
make system-deps
|
make system-deps
|
||||||
- name: Install/upgrade Python setup deps
|
|
||||||
run: python3 -m pip install --upgrade pip setuptools wheel uv
|
|
||||||
- name: Replace scarf urls
|
- name: Replace scarf urls
|
||||||
if: contains(fromJSON('["data_tests", "inference_tests", "test_aux", "test_tts", "test_tts2", "test_xtts", "test_zoo0", "test_zoo1", "test_zoo2"]'), matrix.subset)
|
if: contains(fromJSON('["data_tests", "inference_tests", "test_aux", "test_tts", "test_tts2", "test_xtts", "test_zoo0", "test_zoo1", "test_zoo2"]'), matrix.subset)
|
||||||
run: |
|
run: |
|
||||||
sed -i 's/https:\/\/coqui.gateway.scarf.sh\//https:\/\/github.com\/coqui-ai\/TTS\/releases\/download\//g' TTS/.models.json
|
sed -i 's/https:\/\/coqui.gateway.scarf.sh\//https:\/\/github.com\/coqui-ai\/TTS\/releases\/download\//g' TTS/.models.json
|
||||||
- name: Install TTS
|
- name: Unit tests
|
||||||
run: |
|
run: |
|
||||||
resolution=highest
|
resolution=highest
|
||||||
if [ "${{ matrix.python-version }}" == "3.9" ]; then
|
if [ "${{ matrix.python-version }}" == "3.9" ]; then
|
||||||
resolution=lowest-direct
|
resolution=lowest-direct
|
||||||
fi
|
fi
|
||||||
python3 -m uv pip install --resolution=$resolution --system "coqui-tts[dev,server,languages] @ ."
|
uv run --resolution=$resolution --extra server --extra languages make ${{ matrix.subset }}
|
||||||
- name: Unit tests
|
|
||||||
run: make ${{ matrix.subset }}
|
|
||||||
- name: Upload coverage data
|
- name: Upload coverage data
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
|
@ -65,18 +58,17 @@ jobs:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- uses: actions/setup-python@v5
|
- name: Install uv
|
||||||
|
uses: astral-sh/setup-uv@v3
|
||||||
with:
|
with:
|
||||||
python-version: "3.12"
|
version: "0.4.27"
|
||||||
- uses: actions/download-artifact@v4
|
- uses: actions/download-artifact@v4
|
||||||
with:
|
with:
|
||||||
pattern: coverage-data-*
|
pattern: coverage-data-*
|
||||||
merge-multiple: true
|
merge-multiple: true
|
||||||
- name: Combine coverage
|
- name: Combine coverage
|
||||||
run: |
|
run: |
|
||||||
python -Im pip install --upgrade coverage[toml]
|
uv python install
|
||||||
|
uvx coverage combine
|
||||||
python -Im coverage combine
|
uvx coverage html --skip-covered --skip-empty
|
||||||
python -Im coverage html --skip-covered --skip-empty
|
uvx coverage report --format=markdown >> $GITHUB_STEP_SUMMARY
|
||||||
|
|
||||||
python -Im coverage report --format=markdown >> $GITHUB_STEP_SUMMARY
|
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
uv.lock
|
||||||
|
|
||||||
WadaSNR/
|
WadaSNR/
|
||||||
.idea/
|
.idea/
|
||||||
*.pyc
|
*.pyc
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
repos:
|
repos:
|
||||||
- repo: "https://github.com/pre-commit/pre-commit-hooks"
|
- repo: "https://github.com/pre-commit/pre-commit-hooks"
|
||||||
rev: v4.5.0
|
rev: v5.0.0
|
||||||
hooks:
|
hooks:
|
||||||
- id: check-yaml
|
- id: check-yaml
|
||||||
- id: end-of-file-fixer
|
- id: end-of-file-fixer
|
||||||
|
@ -11,14 +11,7 @@ repos:
|
||||||
- id: black
|
- id: black
|
||||||
language_version: python3
|
language_version: python3
|
||||||
- repo: https://github.com/astral-sh/ruff-pre-commit
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
||||||
rev: v0.3.0
|
rev: v0.7.0
|
||||||
hooks:
|
hooks:
|
||||||
- id: ruff
|
- id: ruff
|
||||||
args: [--fix, --exit-non-zero-on-fix]
|
args: [--fix, --exit-non-zero-on-fix]
|
||||||
- repo: local
|
|
||||||
hooks:
|
|
||||||
- id: generate_requirements.py
|
|
||||||
name: generate_requirements.py
|
|
||||||
language: system
|
|
||||||
entry: python scripts/generate_requirements.py
|
|
||||||
files: "pyproject.toml|requirements.*\\.txt|tools/generate_requirements.py"
|
|
||||||
|
|
|
@ -44,29 +44,37 @@ If you have a new feature, a model to implement, or a bug to squash, go ahead an
|
||||||
Please use the following steps to send a ✨**PR**✨.
|
Please use the following steps to send a ✨**PR**✨.
|
||||||
Let us know if you encounter a problem along the way.
|
Let us know if you encounter a problem along the way.
|
||||||
|
|
||||||
The following steps are tested on an Ubuntu system.
|
The following steps are tested on an Ubuntu system and require
|
||||||
|
[uv](https://docs.astral.sh/uv/) for virtual environment management. Choose your
|
||||||
|
preferred [installation
|
||||||
|
method](https://docs.astral.sh/uv/getting-started/installation/), e.g. the
|
||||||
|
standalone installer:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
curl -LsSf https://astral.sh/uv/install.sh | sh
|
||||||
|
```
|
||||||
|
|
||||||
1. Fork 🐸TTS[https://github.com/idiap/coqui-ai-TTS] by clicking the fork button at the top right corner of the project page.
|
1. Fork 🐸TTS[https://github.com/idiap/coqui-ai-TTS] by clicking the fork button at the top right corner of the project page.
|
||||||
|
|
||||||
2. Clone 🐸TTS and add the main repo as a new remote named ```upstream```.
|
2. Clone 🐸TTS and add the main repo as a new remote named ```upstream```.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ git clone git@github.com:<your Github name>/coqui-ai-TTS.git
|
git clone git@github.com:<your Github name>/coqui-ai-TTS.git
|
||||||
$ cd coqui-ai-TTS
|
cd coqui-ai-TTS
|
||||||
$ git remote add upstream https://github.com/idiap/coqui-ai-TTS.git
|
git remote add upstream https://github.com/idiap/coqui-ai-TTS.git
|
||||||
```
|
```
|
||||||
|
|
||||||
3. Install 🐸TTS for development.
|
3. Install 🐸TTS for development.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ make system-deps # intended to be used on Ubuntu (Debian). Let us know if you have a different OS.
|
make system-deps # intended to be used on Ubuntu (Debian). Let us know if you have a different OS.
|
||||||
$ make install_dev
|
make install_dev
|
||||||
```
|
```
|
||||||
|
|
||||||
4. Create a new branch with an informative name for your goal.
|
4. Create a new branch with an informative name for your goal.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ git checkout -b an_informative_name_for_my_branch
|
git checkout -b an_informative_name_for_my_branch
|
||||||
```
|
```
|
||||||
|
|
||||||
5. Implement your changes on your new branch.
|
5. Implement your changes on your new branch.
|
||||||
|
@ -75,39 +83,42 @@ The following steps are tested on an Ubuntu system.
|
||||||
|
|
||||||
7. Add your tests to our test suite under ```tests``` folder. It is important to show that your code works, edge cases are considered, and inform others about the intended use.
|
7. Add your tests to our test suite under ```tests``` folder. It is important to show that your code works, edge cases are considered, and inform others about the intended use.
|
||||||
|
|
||||||
8. Run the tests to see how your updates work with the rest of the project. You can repeat this step multiple times as you implement your changes to make sure you are on the right direction.
|
8. Run the tests to see how your updates work with the rest of the project. You
|
||||||
|
can repeat this step multiple times as you implement your changes to make
|
||||||
|
sure you are on the right direction. **NB: running all tests takes a long time,
|
||||||
|
it is better to leave this to the CI.**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ make test # stop at the first error
|
uv run make test # stop at the first error
|
||||||
$ make test_all # run all the tests, report all the errors
|
uv run make test_all # run all the tests, report all the errors
|
||||||
```
|
```
|
||||||
|
|
||||||
9. Format your code. We use ```black``` for code formatting.
|
9. Format your code. We use ```black``` for code formatting.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ make style
|
make style
|
||||||
```
|
```
|
||||||
|
|
||||||
10. Run the linter and correct the issues raised. We use ```ruff``` for linting. It helps to enforce a coding standard, offers simple refactoring suggestions.
|
10. Run the linter and correct the issues raised. We use ```ruff``` for linting. It helps to enforce a coding standard, offers simple refactoring suggestions.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ make lint
|
make lint
|
||||||
```
|
```
|
||||||
|
|
||||||
11. When things are good, add new files and commit your changes.
|
11. When things are good, add new files and commit your changes.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ git add my_file1.py my_file2.py ...
|
git add my_file1.py my_file2.py ...
|
||||||
$ git commit
|
git commit
|
||||||
```
|
```
|
||||||
|
|
||||||
It's a good practice to regularly sync your local copy of the project with the upstream code to keep up with the recent updates.
|
It's a good practice to regularly sync your local copy of the project with the upstream code to keep up with the recent updates.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ git fetch upstream
|
git fetch upstream
|
||||||
$ git rebase upstream/main
|
git rebase upstream/main
|
||||||
# or for the development version
|
# or for the development version
|
||||||
$ git rebase upstream/dev
|
git rebase upstream/dev
|
||||||
```
|
```
|
||||||
|
|
||||||
12. Send a PR to ```dev``` branch.
|
12. Send a PR to ```dev``` branch.
|
||||||
|
@ -115,7 +126,7 @@ The following steps are tested on an Ubuntu system.
|
||||||
Push your branch to your fork.
|
Push your branch to your fork.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ git push -u origin an_informative_name_for_my_branch
|
git push -u origin an_informative_name_for_my_branch
|
||||||
```
|
```
|
||||||
|
|
||||||
Then go to your fork's Github page and click on 'Pull request' to send your ✨**PR**✨.
|
Then go to your fork's Github page and click on 'Pull request' to send your ✨**PR**✨.
|
||||||
|
@ -137,9 +148,9 @@ If you prefer working within a Docker container as your development environment,
|
||||||
2. Clone 🐸TTS and add the main repo as a new remote named ```upsteam```.
|
2. Clone 🐸TTS and add the main repo as a new remote named ```upsteam```.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ git clone git@github.com:<your Github name>/coqui-ai-TTS.git
|
git clone git@github.com:<your Github name>/coqui-ai-TTS.git
|
||||||
$ cd coqui-ai-TTS
|
cd coqui-ai-TTS
|
||||||
$ git remote add upstream https://github.com/idiap/coqui-ai-TTS.git
|
git remote add upstream https://github.com/idiap/coqui-ai-TTS.git
|
||||||
```
|
```
|
||||||
|
|
||||||
3. Build the Docker Image as your development environment (it installs all of the dependencies for you):
|
3. Build the Docker Image as your development environment (it installs all of the dependencies for you):
|
||||||
|
|
|
@ -14,7 +14,7 @@ RUN rm -rf /root/.cache/pip
|
||||||
WORKDIR /root
|
WORKDIR /root
|
||||||
COPY . /root
|
COPY . /root
|
||||||
|
|
||||||
RUN make install
|
RUN pip3 install -e .[all]
|
||||||
|
|
||||||
ENTRYPOINT ["tts"]
|
ENTRYPOINT ["tts"]
|
||||||
CMD ["--help"]
|
CMD ["--help"]
|
||||||
|
|
17
Makefile
17
Makefile
|
@ -1,5 +1,5 @@
|
||||||
.DEFAULT_GOAL := help
|
.DEFAULT_GOAL := help
|
||||||
.PHONY: test system-deps dev-deps style lint install install_dev help docs
|
.PHONY: test system-deps style lint install install_dev help docs
|
||||||
|
|
||||||
help:
|
help:
|
||||||
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
|
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
|
||||||
|
@ -50,27 +50,24 @@ test_failed: ## only run tests failed the last time.
|
||||||
coverage run -m nose2 -F -v -B tests
|
coverage run -m nose2 -F -v -B tests
|
||||||
|
|
||||||
style: ## update code style.
|
style: ## update code style.
|
||||||
black ${target_dirs}
|
uv run --only-dev black ${target_dirs}
|
||||||
|
|
||||||
lint: ## run linters.
|
lint: ## run linters.
|
||||||
ruff check ${target_dirs}
|
uv run --only-dev ruff check ${target_dirs}
|
||||||
black ${target_dirs} --check
|
uv run --only-dev black ${target_dirs} --check
|
||||||
|
|
||||||
system-deps: ## install linux system deps
|
system-deps: ## install linux system deps
|
||||||
sudo apt-get install -y libsndfile1-dev
|
sudo apt-get install -y libsndfile1-dev
|
||||||
|
|
||||||
dev-deps: ## install development deps
|
|
||||||
pip install -r requirements.dev.txt
|
|
||||||
|
|
||||||
build-docs: ## build the docs
|
build-docs: ## build the docs
|
||||||
cd docs && make clean && make build
|
cd docs && make clean && make build
|
||||||
|
|
||||||
install: ## install 🐸 TTS
|
install: ## install 🐸 TTS
|
||||||
pip install -e .[all]
|
uv sync --all-extras
|
||||||
|
|
||||||
install_dev: ## install 🐸 TTS for development.
|
install_dev: ## install 🐸 TTS for development.
|
||||||
pip install -e .[all,dev]
|
uv sync --all-extras
|
||||||
pre-commit install
|
uv run pre-commit install
|
||||||
|
|
||||||
docs: ## build the docs
|
docs: ## build the docs
|
||||||
$(MAKE) -C docs clean && $(MAKE) -C docs html
|
$(MAKE) -C docs clean && $(MAKE) -C docs html
|
||||||
|
|
22
README.md
22
README.md
|
@ -1,16 +1,13 @@
|
||||||
|
|
||||||
## 🐸Coqui TTS News
|
## 🐸Coqui TTS News
|
||||||
- 📣 Fork of the [original, unmaintained repository](https://github.com/coqui-ai/TTS). New PyPI package: [coqui-tts](https://pypi.org/project/coqui-tts)
|
- 📣 Fork of the [original, unmaintained repository](https://github.com/coqui-ai/TTS). New PyPI package: [coqui-tts](https://pypi.org/project/coqui-tts)
|
||||||
|
- 📣 Prebuilt wheels are now also published for Mac and Windows (in addition to Linux as before) for easier installation across platforms.
|
||||||
- 📣 ⓍTTSv2 is here with 16 languages and better performance across the board.
|
- 📣 ⓍTTSv2 is here with 16 languages and better performance across the board.
|
||||||
- 📣 ⓍTTS fine-tuning code is out. Check the [example recipes](https://github.com/idiap/coqui-ai-TTS/tree/dev/recipes/ljspeech).
|
- 📣 ⓍTTS fine-tuning code is out. Check the [example recipes](https://github.com/idiap/coqui-ai-TTS/tree/dev/recipes/ljspeech).
|
||||||
- 📣 ⓍTTS can now stream with <200ms latency.
|
- 📣 ⓍTTS can now stream with <200ms latency.
|
||||||
- 📣 ⓍTTS, our production TTS model that can speak 13 languages, is released [Blog Post](https://coqui.ai/blog/tts/open_xtts), [Demo](https://huggingface.co/spaces/coqui/xtts), [Docs](https://coqui-tts.readthedocs.io/en/latest/models/xtts.html)
|
- 📣 ⓍTTS, our production TTS model that can speak 13 languages, is released [Blog Post](https://coqui.ai/blog/tts/open_xtts), [Demo](https://huggingface.co/spaces/coqui/xtts), [Docs](https://coqui-tts.readthedocs.io/en/latest/models/xtts.html)
|
||||||
- 📣 [🐶Bark](https://github.com/suno-ai/bark) is now available for inference with unconstrained voice cloning. [Docs](https://coqui-tts.readthedocs.io/en/latest/models/bark.html)
|
- 📣 [🐶Bark](https://github.com/suno-ai/bark) is now available for inference with unconstrained voice cloning. [Docs](https://coqui-tts.readthedocs.io/en/latest/models/bark.html)
|
||||||
- 📣 You can use [~1100 Fairseq models](https://github.com/facebookresearch/fairseq/tree/main/examples/mms) with 🐸TTS.
|
- 📣 You can use [~1100 Fairseq models](https://github.com/facebookresearch/fairseq/tree/main/examples/mms) with 🐸TTS.
|
||||||
- 📣 🐸TTS now supports 🐢Tortoise with faster inference. [Docs](https://coqui-tts.readthedocs.io/en/latest/models/tortoise.html)
|
|
||||||
|
|
||||||
<div align="center">
|
|
||||||
<img src="https://static.scarf.sh/a.png?x-pxid=cf317fe7-2188-4721-bc01-124bb5d5dbb2" />
|
|
||||||
|
|
||||||
## <img src="https://raw.githubusercontent.com/idiap/coqui-ai-TTS/main/images/coqui-log-green-TTS.png" height="56"/>
|
## <img src="https://raw.githubusercontent.com/idiap/coqui-ai-TTS/main/images/coqui-log-green-TTS.png" height="56"/>
|
||||||
|
|
||||||
|
@ -27,7 +24,6 @@ ______________________________________________________________________
|
||||||
[](https://discord.gg/5eXr5seRrv)
|
[](https://discord.gg/5eXr5seRrv)
|
||||||
[](https://opensource.org/licenses/MPL-2.0)
|
[](https://opensource.org/licenses/MPL-2.0)
|
||||||
[](https://badge.fury.io/py/coqui-tts)
|
[](https://badge.fury.io/py/coqui-tts)
|
||||||
[](https://github.com/idiap/coqui-ai-TTS/blob/main/CODE_OF_CONDUCT.md)
|
|
||||||
[](https://pepy.tech/project/coqui-tts)
|
[](https://pepy.tech/project/coqui-tts)
|
||||||
[](https://zenodo.org/badge/latestdoi/265612440)
|
[](https://zenodo.org/badge/latestdoi/265612440)
|
||||||
|
|
||||||
|
@ -44,9 +40,8 @@ ______________________________________________________________________
|
||||||
Please use our dedicated channels for questions and discussion. Help is much more valuable if it's shared publicly so that more people can benefit from it.
|
Please use our dedicated channels for questions and discussion. Help is much more valuable if it's shared publicly so that more people can benefit from it.
|
||||||
|
|
||||||
| Type | Platforms |
|
| Type | Platforms |
|
||||||
| ------------------------------- | --------------------------------------- |
|
| -------------------------------------------- | ----------------------------------- |
|
||||||
| 🚨 **Bug Reports** | [GitHub Issue Tracker] |
|
| 🚨 **Bug Reports, Feature Requests & Ideas** | [GitHub Issue Tracker] |
|
||||||
| 🎁 **Feature Requests & Ideas** | [GitHub Issue Tracker] |
|
|
||||||
| 👩💻 **Usage Questions** | [GitHub Discussions] |
|
| 👩💻 **Usage Questions** | [GitHub Discussions] |
|
||||||
| 🗯 **General Discussion** | [GitHub Discussions] or [Discord] |
|
| 🗯 **General Discussion** | [GitHub Discussions] or [Discord] |
|
||||||
|
|
||||||
|
@ -66,15 +61,10 @@ repository are also still a useful source of information.
|
||||||
| 💼 **Documentation** | [ReadTheDocs](https://coqui-tts.readthedocs.io/en/latest/)
|
| 💼 **Documentation** | [ReadTheDocs](https://coqui-tts.readthedocs.io/en/latest/)
|
||||||
| 💾 **Installation** | [TTS/README.md](https://github.com/idiap/coqui-ai-TTS/tree/dev#installation)|
|
| 💾 **Installation** | [TTS/README.md](https://github.com/idiap/coqui-ai-TTS/tree/dev#installation)|
|
||||||
| 👩💻 **Contributing** | [CONTRIBUTING.md](https://github.com/idiap/coqui-ai-TTS/blob/main/CONTRIBUTING.md)|
|
| 👩💻 **Contributing** | [CONTRIBUTING.md](https://github.com/idiap/coqui-ai-TTS/blob/main/CONTRIBUTING.md)|
|
||||||
| 📌 **Road Map** | [Main Development Plans](https://github.com/coqui-ai/TTS/issues/378)
|
|
||||||
| 🚀 **Released Models** | [Standard models](https://github.com/idiap/coqui-ai-TTS/blob/dev/TTS/.models.json) and [Fairseq models in ~1100 languages](https://github.com/idiap/coqui-ai-TTS#example-text-to-speech-using-fairseq-models-in-1100-languages-)|
|
| 🚀 **Released Models** | [Standard models](https://github.com/idiap/coqui-ai-TTS/blob/dev/TTS/.models.json) and [Fairseq models in ~1100 languages](https://github.com/idiap/coqui-ai-TTS#example-text-to-speech-using-fairseq-models-in-1100-languages-)|
|
||||||
| 📰 **Papers** | [TTS Papers](https://github.com/erogol/TTS-papers)|
|
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
- High-performance Deep Learning models for Text2Speech tasks.
|
- High-performance Deep Learning models for Text2Speech tasks. See lists of models below.
|
||||||
- Text2Spec models (Tacotron, Tacotron2, Glow-TTS, SpeedySpeech).
|
|
||||||
- Speaker Encoder to compute speaker embeddings efficiently.
|
|
||||||
- Vocoder models (MelGAN, Multiband-MelGAN, GAN-TTS, ParallelWaveGAN, WaveGrad, WaveRNN)
|
|
||||||
- Fast and efficient model training.
|
- Fast and efficient model training.
|
||||||
- Detailed training logs on the terminal and Tensorboard.
|
- Detailed training logs on the terminal and Tensorboard.
|
||||||
- Support for Multi-speaker TTS.
|
- Support for Multi-speaker TTS.
|
||||||
|
@ -180,8 +170,8 @@ pip install -e .[server,ja]
|
||||||
If you are on Ubuntu (Debian), you can also run following commands for installation.
|
If you are on Ubuntu (Debian), you can also run following commands for installation.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ make system-deps # intended to be used on Ubuntu (Debian). Let us know if you have a different OS.
|
make system-deps # intended to be used on Ubuntu (Debian). Let us know if you have a different OS.
|
||||||
$ make install
|
make install
|
||||||
```
|
```
|
||||||
|
|
||||||
If you are on Windows, 👑@GuyPaddock wrote installation instructions
|
If you are on Windows, 👑@GuyPaddock wrote installation instructions
|
||||||
|
|
|
@ -20,4 +20,4 @@ RUN rm -rf /root/.cache/pip
|
||||||
WORKDIR /root
|
WORKDIR /root
|
||||||
COPY . /root
|
COPY . /root
|
||||||
|
|
||||||
RUN make install
|
RUN pip3 install -e .[all,dev]
|
||||||
|
|
|
@ -48,7 +48,7 @@ dependencies = [
|
||||||
"cython>=3.0.0",
|
"cython>=3.0.0",
|
||||||
"scipy>=1.11.2",
|
"scipy>=1.11.2",
|
||||||
"torch>=2.1",
|
"torch>=2.1",
|
||||||
"torchaudio",
|
"torchaudio>=2.1.0",
|
||||||
"soundfile>=0.12.0",
|
"soundfile>=0.12.0",
|
||||||
"librosa>=0.10.1",
|
"librosa>=0.10.1",
|
||||||
"inflect>=5.6.0",
|
"inflect>=5.6.0",
|
||||||
|
@ -77,15 +77,6 @@ dependencies = [
|
||||||
]
|
]
|
||||||
|
|
||||||
[project.optional-dependencies]
|
[project.optional-dependencies]
|
||||||
# Development dependencies
|
|
||||||
dev = [
|
|
||||||
"black==24.2.0",
|
|
||||||
"coverage[toml]>=7",
|
|
||||||
"nose2>=0.15",
|
|
||||||
"pre-commit>=3",
|
|
||||||
"ruff==0.4.9",
|
|
||||||
"tomli>=2; python_version < '3.11'",
|
|
||||||
]
|
|
||||||
# Dependencies for building the documentation
|
# Dependencies for building the documentation
|
||||||
docs = [
|
docs = [
|
||||||
"furo>=2023.5.20",
|
"furo>=2023.5.20",
|
||||||
|
@ -115,6 +106,7 @@ ko = [
|
||||||
"hangul_romanize>=0.1.0",
|
"hangul_romanize>=0.1.0",
|
||||||
"jamo>=0.4.1",
|
"jamo>=0.4.1",
|
||||||
"g2pkk>=0.1.1",
|
"g2pkk>=0.1.1",
|
||||||
|
"pip>=22.2",
|
||||||
]
|
]
|
||||||
# Japanese
|
# Japanese
|
||||||
ja = [
|
ja = [
|
||||||
|
@ -136,6 +128,15 @@ all = [
|
||||||
"coqui-tts[notebooks,server,bn,ja,ko,zh]",
|
"coqui-tts[notebooks,server,bn,ja,ko,zh]",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[dependency-groups]
|
||||||
|
dev = [
|
||||||
|
"black==24.2.0",
|
||||||
|
"coverage[toml]>=7",
|
||||||
|
"nose2>=0.15",
|
||||||
|
"pre-commit>=3",
|
||||||
|
"ruff==0.7.0",
|
||||||
|
]
|
||||||
|
|
||||||
[project.urls]
|
[project.urls]
|
||||||
Homepage = "https://github.com/idiap/coqui-ai-TTS"
|
Homepage = "https://github.com/idiap/coqui-ai-TTS"
|
||||||
Documentation = "https://coqui-tts.readthedocs.io"
|
Documentation = "https://coqui-tts.readthedocs.io"
|
||||||
|
@ -151,13 +152,12 @@ tts-server = "TTS.server.server:main"
|
||||||
constraint-dependencies = ["numba>0.58.0"]
|
constraint-dependencies = ["numba>0.58.0"]
|
||||||
|
|
||||||
[tool.ruff]
|
[tool.ruff]
|
||||||
target-version = "py39"
|
|
||||||
line-length = 120
|
line-length = 120
|
||||||
|
extend-exclude = ["*.ipynb"]
|
||||||
lint.extend-select = [
|
lint.extend-select = [
|
||||||
"B033", # duplicate-value
|
"B033", # duplicate-value
|
||||||
"C416", # unnecessary-comprehension
|
"C416", # unnecessary-comprehension
|
||||||
"D419", # empty-docstring
|
"D419", # empty-docstring
|
||||||
"E999", # syntax-error
|
|
||||||
"F401", # unused-import
|
"F401", # unused-import
|
||||||
"F704", # yield-outside-function
|
"F704", # yield-outside-function
|
||||||
"F706", # return-outside-function
|
"F706", # return-outside-function
|
||||||
|
|
|
@ -1,8 +0,0 @@
|
||||||
# Generated via scripts/generate_requirements.py and pre-commit hook.
|
|
||||||
# Do not edit this file; modify pyproject.toml instead.
|
|
||||||
black==24.2.0
|
|
||||||
coverage[toml]>=7
|
|
||||||
nose2>=0.15
|
|
||||||
pre-commit>=3
|
|
||||||
ruff==0.4.9
|
|
||||||
tomli>=2; python_version < '3.11'
|
|
|
@ -1,39 +0,0 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
"""Generate requirements/*.txt files from pyproject.toml.
|
|
||||||
|
|
||||||
Adapted from:
|
|
||||||
https://github.com/numpy/numpydoc/blob/e7c6baf00f5f73a4a8f8318d0cb4e04949c9a5d1/tools/generate_requirements.py
|
|
||||||
"""
|
|
||||||
|
|
||||||
import sys
|
|
||||||
from pathlib import Path
|
|
||||||
|
|
||||||
try: # standard module since Python 3.11
|
|
||||||
import tomllib as toml
|
|
||||||
except ImportError:
|
|
||||||
try: # available for older Python via pip
|
|
||||||
import tomli as toml
|
|
||||||
except ImportError:
|
|
||||||
sys.exit("Please install `tomli` first: `pip install tomli`")
|
|
||||||
|
|
||||||
script_pth = Path(__file__)
|
|
||||||
repo_dir = script_pth.parent.parent
|
|
||||||
script_relpth = script_pth.relative_to(repo_dir)
|
|
||||||
header = [
|
|
||||||
f"# Generated via {script_relpth.as_posix()} and pre-commit hook.",
|
|
||||||
"# Do not edit this file; modify pyproject.toml instead.",
|
|
||||||
]
|
|
||||||
|
|
||||||
|
|
||||||
def generate_requirement_file(name: str, req_list: list[str]) -> None:
|
|
||||||
req_fname = repo_dir / f"requirements.{name}.txt"
|
|
||||||
req_fname.write_text("\n".join(header + req_list) + "\n")
|
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
|
||||||
pyproject = toml.loads((repo_dir / "pyproject.toml").read_text())
|
|
||||||
generate_requirement_file("dev", pyproject["project"]["optional-dependencies"]["dev"])
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
Loading…
Reference in New Issue