Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v0.25.2 #261

Merged
merged 55 commits into from
Jan 15, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
236e490
build(docs): update dependencies, fix makefile
eginhard Dec 11, 2024
849e75e
docs: improve documentation
eginhard Dec 11, 2024
e23766d
docs: move project structure from readme into documentation
eginhard Dec 12, 2024
ae2f8d2
docs: use nested contents for easier overview
eginhard Dec 12, 2024
e38dcbe
docs: streamline readme and reuse content in other docs pages
eginhard Dec 12, 2024
cd52907
Merge pull request #207 from idiap/docs
eginhard Dec 12, 2024
a425ba5
feat: allow both Path and strings where possible and add type hints
eginhard Dec 13, 2024
0df04cc
docs: add notes about xtts fine-tuning
eginhard Dec 14, 2024
5165e71
Merge pull request #210 from idiap/manager
eginhard Dec 16, 2024
9d5fc60
feat(manager): print download location when listing models (#213)
eginhard Dec 16, 2024
1f9dda6
docs(xtts): show manual inference with default speakers
eginhard Dec 17, 2024
6a52c8a
fix(bin): log to stdout in cli tools, unless pipe_out is set
eginhard Dec 17, 2024
370fb1d
Merge pull request #217 from idiap/stdout
eginhard Dec 17, 2024
8f8873c
refactor(bin.compute_embeddings): factor out arg parsing
eginhard Dec 18, 2024
3e5759b
fix(notebooks): update plot_embeddings_umap notebook
eginhard Dec 18, 2024
f89ce41
fix(xtts): voice_dir should remain None if not specified (#224)
eginhard Dec 19, 2024
98080e2
fix(xtts): use correct language code for Czech num2words call (#237)
SkaceKamen Dec 28, 2024
eaff93d
chore: remove unused callback code (#229)
eginhard Jan 6, 2025
49fa9b9
fix: convert >35 digit English numbers digit-by-digit (#240)
lostways Jan 6, 2025
d8c2224
docs: update docker image urls (#243)
DelovoiDC Jan 7, 2025
fd93176
fix(vc): support both cpu and cuda (#244)
eginhard Jan 8, 2025
821b862
test: switch from nose2 to pytest
eginhard Dec 12, 2024
76257c6
test: consistently name test config.json files
eginhard Dec 13, 2024
269699b
test(xtts): use temp folder and pytest.parametrize
eginhard Dec 12, 2024
69d0114
test: use temp output folders, pytest.parametrize, fixtures
eginhard Dec 12, 2024
41bfd25
test(find_unique_phonemes): remove duplicate test
eginhard Dec 13, 2024
d3fdd96
test(zoo): use pytest.parametrize to parallelize zoo tests
eginhard Dec 13, 2024
13f58f4
test: call cli tests via main functions to get test coverage
eginhard Dec 14, 2024
e8e9b6f
test(bin.compute_statistics): convert to python
eginhard Dec 13, 2024
8a0b085
test(zoo): move big model tests into separate files
eginhard Dec 14, 2024
5ff0c2c
test: move vocoder training tests into one file
eginhard Dec 14, 2024
0eca7dc
test: fix wavegrad test and switch to pytest
eginhard Dec 16, 2024
a32e362
test(bin.extract_spectrograms): run cli test from python
eginhard Dec 16, 2024
5e63ee9
test(bin.find_unique_phonemes): run cli test from python
eginhard Dec 16, 2024
b85c162
refactor: use @torch.inference_mode() instead of @torch.no_grad()
eginhard Dec 26, 2024
d749090
refactor(vits): handle deprecation of multi-dimensional transpose
eginhard Jan 9, 2025
e17723a
Merge pull request #208 from idiap/pytest
eginhard Jan 10, 2025
d6c8dae
chore(api): improve type hints
eginhard Jan 10, 2025
38fda7f
feat(server): switch to python api
eginhard Jan 10, 2025
81b6340
test(server): convert bash test to python
eginhard Jan 10, 2025
88485d9
fix(bark): handle broken paths in config (#253)
eginhard Jan 10, 2025
1ead8f2
Merge pull request #221 from idiap/bokeh
eginhard Jan 15, 2025
23b7cac
Merge pull request #252 from idiap/server
eginhard Jan 15, 2025
cfa767c
chore: add type hints, fix typos
eginhard Oct 3, 2024
b125fea
refactor: move device property into BaseTrainerModel
eginhard Dec 10, 2024
25eeaaa
feat(hifigan): add optional linear transformation at the beginning
eginhard Dec 10, 2024
e88b4b6
refactor(vc): remove unused argument
eginhard Dec 10, 2024
ea21777
feat(vc): add knnvc model
eginhard Oct 3, 2024
40a2805
feat: support vocoders for voice conversion
eginhard Dec 10, 2024
6c3404a
feat(synthesizer): show timing for voice conversion
eginhard Dec 11, 2024
5e1085c
feat(vc): allow multiple target audio files
eginhard Jan 14, 2025
309c31c
fix(openvoice): correctly set utterance length (#260)
eginhard Jan 15, 2025
0c3d995
docs(vc): add page on voice conversion
eginhard Jan 15, 2025
240aae4
chore: bump version to 0.25.2
eginhard Jan 15, 2025
205eed3
Merge pull request #256 from idiap/knnvc
eginhard Jan 15, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 44 additions & 5 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@ jobs:
sudo apt-get install espeak espeak-ng
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends git make gcc
make system-deps
- name: Install custom Trainer and/or Coqpit if requested
Expand Down Expand Up @@ -68,21 +67,20 @@ jobs:
fail-fast: false
matrix:
python-version: ["3.9", "3.12"]
subset: ["test_tts", "test_tts2", "test_vocoder", "test_xtts", "test_zoo0", "test_zoo1", "test_zoo2"]
subset: ["test_tts", "test_tts2", "test_vocoder", "test_xtts"]
steps:
- uses: actions/checkout@v4
- name: Setup uv
uses: ./.github/actions/setup-uv
- name: Set up Python ${{ matrix.python-version }}
run: uv python install ${{ matrix.python-version }}
- name: Install Espeak
if: contains(fromJSON('["test_tts", "test_tts2", "test_xtts", "test_zoo0", "test_zoo1", "test_zoo2"]'), matrix.subset)
if: contains(fromJSON('["test_tts", "test_tts2", "test_xtts"]'), matrix.subset)
run: |
sudo apt-get update
sudo apt-get install espeak espeak-ng
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends git make gcc
make system-deps
- name: Install custom Trainer and/or Coqpit if requested
Expand All @@ -107,9 +105,50 @@ jobs:
name: coverage-data-${{ matrix.subset }}-${{ matrix.python-version }}
path: .coverage.*
if-no-files-found: ignore
zoo:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: ["3.12"]
partition: ["0", "1", "2"]
steps:
- uses: actions/checkout@v4
- name: Setup uv
uses: ./.github/actions/setup-uv
- name: Set up Python ${{ matrix.python-version }}
run: uv python install ${{ matrix.python-version }}
- name: Install Espeak
run: |
sudo apt-get update
sudo apt-get install espeak espeak-ng
- name: Install dependencies
run: |
sudo apt-get install -y --no-install-recommends git make gcc
make system-deps
- name: Install custom Trainer and/or Coqpit if requested
run: |
if [[ -n "${{ github.event.inputs.trainer_branch }}" ]]; then
uv add git+https://github.com/idiap/coqui-ai-Trainer --branch ${{ github.event.inputs.trainer_branch }}
fi
if [[ -n "${{ github.event.inputs.coqpit_branch }}" ]]; then
uv add git+https://github.com/idiap/coqui-ai-coqpit --branch ${{ github.event.inputs.coqpit_branch }}
fi
- name: Zoo tests
run: uv run --extra server --extra languages make test_zoo
env:
NUM_PARTITIONS: 3
TEST_PARTITION: ${{ matrix.partition }}
- name: Upload coverage data
uses: actions/upload-artifact@v4
with:
include-hidden-files: true
name: coverage-data-zoo-${{ matrix.partition }}
path: .coverage.*
if-no-files-found: ignore
coverage:
if: always()
needs: [unit, integration]
needs: [unit, integration, zoo]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
Expand Down
24 changes: 10 additions & 14 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,30 +11,25 @@ You can contribute not only with code but with bug reports, comments, questions,

If you like to contribute code, squash a bug but if you don't know where to start, here are some pointers.

- [Development Road Map](https://github.com/coqui-ai/TTS/issues/378)

You can pick something out of our road map. We keep the progess of the project in this simple issue thread. It has new model proposals or developmental updates etc.

- [Github Issues Tracker](https://github.com/idiap/coqui-ai-TTS/issues)

This is a place to find feature requests, bugs.

Issues with the ```good first issue``` tag are good place for beginners to take on.

- ✨**PR**✨ [pages](https://github.com/idiap/coqui-ai-TTS/pulls) with the ```🚀new version``` tag.

We list all the target improvements for the next version. You can pick one of them and start contributing.
Issues with the ```good first issue``` tag are good place for beginners to
take on. Issues tagged with `help wanted` are suited for more experienced
outside contributors.

- Also feel free to suggest new features, ideas and models. We're always open for new things.

## Call for sharing language models
## Call for sharing pretrained models
If possible, please consider sharing your pre-trained models in any language (if the licences allow for you to do so). We will include them in our model catalogue for public use and give the proper attribution, whether it be your name, company, website or any other source specified.

This model can be shared in two ways:
1. Share the model files with us and we serve them with the next 🐸 TTS release.
2. Upload your models on GDrive and share the link.

Models are served under `.models.json` file and any model is available under TTS CLI or Server end points.
Models are served under `.models.json` file and any model is available under TTS
CLI and Python API end points.

Either way you choose, please make sure you send the models [here](https://github.com/coqui-ai/TTS/discussions/930).

Expand Down Expand Up @@ -135,17 +130,18 @@ curl -LsSf https://astral.sh/uv/install.sh | sh

13. Let's discuss until it is perfect. 💪

We might ask you for certain changes that would appear in the ✨**PR**✨'s page under 🐸TTS[https://github.com/idiap/coqui-ai-TTS/pulls].
We might ask you for certain changes that would appear in the
[Github ✨**PR**✨'s page](https://github.com/idiap/coqui-ai-TTS/pulls).

14. Once things look perfect, We merge it to the ```dev``` branch and make it ready for the next version.

## Development in Docker container

If you prefer working within a Docker container as your development environment, you can do the following:

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 the 🐸TTS [Github repository](https://github.com/idiap/coqui-ai-TTS) by clicking the fork button at the top right corner of the page.

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 ```upstream```.

```bash
git clone git@github.com:<your Github name>/coqui-ai-TTS.git
Expand Down
42 changes: 16 additions & 26 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -6,48 +6,41 @@ help:

target_dirs := tests TTS notebooks recipes

test_all: ## run tests and don't stop on an error.
nose2 --with-coverage --coverage TTS tests
./run_bash_tests.sh

test: ## run tests.
coverage run -m nose2 -F -v -B tests
coverage run -m pytest -x -v --durations=0 tests

test_vocoder: ## run vocoder tests.
coverage run -m nose2 -F -v -B tests.vocoder_tests
coverage run -m pytest -x -v --durations=0 tests/vocoder_tests

test_tts: ## run tts tests.
coverage run -m nose2 -F -v -B tests.tts_tests
coverage run -m pytest -x -v --durations=0 tests/tts_tests

test_tts2: ## run tts tests.
coverage run -m nose2 -F -v -B tests.tts_tests2
coverage run -m pytest -x -v --durations=0 tests/tts_tests2

test_xtts:
coverage run -m nose2 -F -v -B tests.xtts_tests
coverage run -m pytest -x -v --durations=0 tests/xtts_tests

test_aux: ## run aux tests.
coverage run -m nose2 -F -v -B tests.aux_tests
./run_bash_tests.sh
coverage run -m pytest -x -v --durations=0 tests/aux_tests

test_zoo: ## run zoo tests.
coverage run -m pytest -x -v --durations=0 tests/zoo_tests/test_models.py

test_zoo0: ## run zoo tests.
coverage run -m nose2 -F -v -B tests.zoo_tests.test_models.test_models_offset_0_step_3 \
tests.zoo_tests.test_models.test_voice_conversion
test_zoo1: ## run zoo tests.
coverage run -m nose2 -F -v -B tests.zoo_tests.test_models.test_models_offset_1_step_3
test_zoo2: ## run zoo tests.
coverage run -m nose2 -F -v -B tests.zoo_tests.test_models.test_models_offset_2_step_3
test_zoo_big: ## run tests for models that are too big for CI.
coverage run -m pytest -x -v --durations=0 tests/zoo_tests/test_big_models.py

inference_tests: ## run inference tests.
coverage run -m nose2 -F -v -B tests.inference_tests
coverage run -m pytest -x -v --durations=0 tests/inference_tests

data_tests: ## run data tests.
coverage run -m nose2 -F -v -B tests.data_tests
coverage run -m pytest -x -v --durations=0 tests/data_tests

test_text: ## run text tests.
coverage run -m nose2 -F -v -B tests.text_tests
coverage run -m pytest -x -v --durations=0 tests/text_tests

test_failed: ## only run tests failed the last time.
coverage run -m nose2 -F -v -B tests
coverage run -m pytest -x -v --last-failed tests

style: ## update code style.
uv run --only-dev black ${target_dirs}
Expand All @@ -59,9 +52,6 @@ lint: ## run linters.
system-deps: ## install linux system deps
sudo apt-get install -y libsndfile1-dev

build-docs: ## build the docs
cd docs && make clean && make build

install: ## install 🐸 TTS
uv sync --all-extras

Expand All @@ -70,4 +60,4 @@ install_dev: ## install 🐸 TTS for development.
uv run pre-commit install

docs: ## build the docs
$(MAKE) -C docs clean && $(MAKE) -C docs html
uv run --group docs $(MAKE) -C docs clean && uv run --group docs $(MAKE) -C docs html
Loading
Loading