Skip to content

Commit 746c377

Browse files
authored
Merge pull request #338 from idiap/dev
v0.26.0
2 parents 69704ee + fb71e2a commit 746c377

File tree

216 files changed

+1746
-3311
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

216 files changed

+1746
-3311
lines changed

.github/actions/setup-uv/action.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,9 @@ runs:
44
using: 'composite'
55
steps:
66
- name: Install uv
7-
uses: astral-sh/setup-uv@v4
7+
uses: astral-sh/setup-uv@v5
88
with:
9-
version: "0.5.4"
9+
version: "0.5.17"
1010
enable-cache: true
1111
cache-dependency-glob: "**/pyproject.toml"
12+
python-version: ${{ matrix.python-version }}

.github/workflows/docker.yaml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,29 @@
11
name: "Docker build and push"
22
on:
33
pull_request:
4+
paths-ignore:
5+
- '.gitignore'
6+
- 'CITATION.cff'
7+
- 'CODE_OF_CONDUCT.md'
8+
- 'CONTRIBUTING.md'
9+
- 'LICENSE.txt'
10+
- 'README.md'
11+
- 'images/**'
412
push:
513
branches:
614
- main
715
- dev
816
tags:
917
- v*
18+
paths-ignore:
19+
- '.gitignore'
20+
- 'CITATION.cff'
21+
- 'CODE_OF_CONDUCT.md'
22+
- 'CONTRIBUTING.md'
23+
- 'LICENSE.txt'
24+
- 'README.md'
25+
- 'images/**'
26+
1027
jobs:
1128
docker-build:
1229
name: "Build and push Docker image"

.github/workflows/pypi-release.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ on:
44
types: [published]
55
defaults:
66
run:
7-
shell:
8-
bash
7+
shell: bash
8+
99
jobs:
1010
build:
1111
runs-on: ubuntu-latest

.github/workflows/style_check.yml

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,31 @@ on:
44
push:
55
branches:
66
- main
7+
paths-ignore:
8+
- '.gitignore'
9+
- 'CITATION.cff'
10+
- 'CODE_OF_CONDUCT.md'
11+
- 'CONTRIBUTING.md'
12+
- 'LICENSE.txt'
13+
- 'README.md'
14+
- 'images/**'
715
pull_request:
816
types: [opened, synchronize, reopened]
17+
paths-ignore:
18+
- '.gitignore'
19+
- 'CITATION.cff'
20+
- 'CODE_OF_CONDUCT.md'
21+
- 'CONTRIBUTING.md'
22+
- 'LICENSE.txt'
23+
- 'README.md'
24+
- 'images/**'
25+
926
jobs:
1027
lint:
1128
runs-on: ubuntu-latest
12-
strategy:
13-
fail-fast: false
14-
matrix:
15-
python-version: [3.9]
1629
steps:
1730
- uses: actions/checkout@v4
1831
- name: Setup uv
1932
uses: ./.github/actions/setup-uv
20-
- name: Set up Python ${{ matrix.python-version }}
21-
run: uv python install ${{ matrix.python-version }}
2233
- name: Lint check
2334
run: make lint

.github/workflows/tests.yml

Lines changed: 36 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,24 @@ on:
44
push:
55
branches:
66
- main
7+
paths-ignore:
8+
- '.gitignore'
9+
- 'CITATION.cff'
10+
- 'CODE_OF_CONDUCT.md'
11+
- 'CONTRIBUTING.md'
12+
- 'LICENSE.txt'
13+
- 'README.md'
14+
- 'images/**'
715
pull_request:
816
types: [opened, synchronize, reopened]
17+
paths-ignore:
18+
- '.gitignore'
19+
- 'CITATION.cff'
20+
- 'CODE_OF_CONDUCT.md'
21+
- 'CONTRIBUTING.md'
22+
- 'LICENSE.txt'
23+
- 'README.md'
24+
- 'images/**'
925
workflow_dispatch:
1026
inputs:
1127
trainer_branch:
@@ -16,20 +32,27 @@ on:
1632
description: "Branch of Coqpit to test"
1733
required: false
1834
default: "main"
35+
paths-ignore:
36+
- '.gitignore'
37+
- 'CITATION.cff'
38+
- 'CODE_OF_CONDUCT.md'
39+
- 'CONTRIBUTING.md'
40+
- 'LICENSE.txt'
41+
- 'README.md'
42+
- 'images/**'
43+
1944
jobs:
2045
unit:
2146
runs-on: ubuntu-latest
2247
strategy:
2348
fail-fast: false
2449
matrix:
25-
python-version: [3.9, "3.10", "3.11", "3.12"]
50+
python-version: ["3.10", "3.11", "3.12"]
2651
subset: ["data_tests", "inference_tests", "test_aux", "test_text"]
2752
steps:
2853
- uses: actions/checkout@v4
2954
- name: Setup uv
3055
uses: ./.github/actions/setup-uv
31-
- name: Set up Python ${{ matrix.python-version }}
32-
run: uv python install ${{ matrix.python-version }}
3356
- name: Install Espeak
3457
if: contains(fromJSON('["inference_tests", "test_text"]'), matrix.subset)
3558
run: |
@@ -50,7 +73,7 @@ jobs:
5073
- name: Unit tests
5174
run: |
5275
resolution=highest
53-
if [ "${{ matrix.python-version }}" == "3.9" ]; then
76+
if [ "${{ matrix.python-version }}" == "3.10" ]; then
5477
resolution=lowest-direct
5578
fi
5679
uv run --resolution=$resolution --extra server --extra languages make ${{ matrix.subset }}
@@ -60,22 +83,18 @@ jobs:
6083
include-hidden-files: true
6184
name: coverage-data-${{ matrix.subset }}-${{ matrix.python-version }}
6285
path: .coverage.*
63-
if-no-files-found: ignore
6486
integration:
6587
runs-on: ubuntu-latest
6688
strategy:
6789
fail-fast: false
6890
matrix:
69-
python-version: ["3.9", "3.12"]
70-
subset: ["test_tts", "test_tts2", "test_vocoder", "test_xtts"]
91+
python-version: ["3.10", "3.12"]
92+
shard: [0, 1, 2, 3, 4]
7193
steps:
7294
- uses: actions/checkout@v4
7395
- name: Setup uv
7496
uses: ./.github/actions/setup-uv
75-
- name: Set up Python ${{ matrix.python-version }}
76-
run: uv python install ${{ matrix.python-version }}
7797
- name: Install Espeak
78-
if: contains(fromJSON('["test_tts", "test_tts2", "test_xtts"]'), matrix.subset)
7998
run: |
8099
sudo apt-get update
81100
sudo apt-get install espeak espeak-ng
@@ -91,20 +110,22 @@ jobs:
91110
if [[ -n "${{ github.event.inputs.coqpit_branch }}" ]]; then
92111
uv add git+https://github.com/idiap/coqui-ai-coqpit --branch ${{ github.event.inputs.coqpit_branch }}
93112
fi
94-
- name: Integration tests
113+
- name: Integration tests for shard ${{ matrix.shard }}
95114
run: |
115+
uv run pytest tests/integration --collect-only --quiet | grep "::" > integration_tests.txt
116+
total_shards=5
117+
shard_tests=$(awk "NR % $total_shards == ${{ matrix.shard }}" integration_tests.txt)
96118
resolution=highest
97-
if [ "${{ matrix.python-version }}" == "3.9" ]; then
119+
if [ "${{ matrix.python-version }}" == "3.10" ]; then
98120
resolution=lowest-direct
99121
fi
100-
uv run --resolution=$resolution --extra server --extra languages make ${{ matrix.subset }}
122+
uv run --resolution=$resolution --extra languages coverage run -m pytest -x -v --durations=0 $shard_tests
101123
- name: Upload coverage data
102124
uses: actions/upload-artifact@v4
103125
with:
104126
include-hidden-files: true
105-
name: coverage-data-${{ matrix.subset }}-${{ matrix.python-version }}
127+
name: coverage-data-integration-${{ matrix.shard }}-${{ matrix.python-version }}
106128
path: .coverage.*
107-
if-no-files-found: ignore
108129
zoo:
109130
runs-on: ubuntu-latest
110131
strategy:
@@ -116,8 +137,6 @@ jobs:
116137
- uses: actions/checkout@v4
117138
- name: Setup uv
118139
uses: ./.github/actions/setup-uv
119-
- name: Set up Python ${{ matrix.python-version }}
120-
run: uv python install ${{ matrix.python-version }}
121140
- name: Install Espeak
122141
run: |
123142
sudo apt-get update
@@ -145,7 +164,6 @@ jobs:
145164
include-hidden-files: true
146165
name: coverage-data-zoo-${{ matrix.partition }}
147166
path: .coverage.*
148-
if-no-files-found: ignore
149167
coverage:
150168
if: always()
151169
needs: [unit, integration, zoo]

.pre-commit-config.yaml

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,9 @@ repos:
77
- id: check-yaml
88
- id: end-of-file-fixer
99
- id: trailing-whitespace
10-
- repo: "https://github.com/psf/black"
11-
rev: 24.2.0
12-
hooks:
13-
- id: black
14-
language_version: python3
1510
- repo: https://github.com/astral-sh/ruff-pre-commit
16-
rev: v0.7.0
11+
rev: v0.9.1
1712
hooks:
1813
- id: ruff
1914
args: [--fix, --exit-non-zero-on-fix]
15+
- id: ruff-format

CONTRIBUTING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ curl -LsSf https://astral.sh/uv/install.sh | sh
8888
uv run make test_all # run all the tests, report all the errors
8989
```
9090

91-
9. Format your code. We use ```black``` for code formatting.
91+
9. Format your code. We use ```ruff``` for code formatting.
9292

9393
```bash
9494
make style

Makefile

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,6 @@ test_vocoder: ## run vocoder tests.
1515
test_tts: ## run tts tests.
1616
coverage run -m pytest -x -v --durations=0 tests/tts_tests
1717

18-
test_tts2: ## run tts tests.
19-
coverage run -m pytest -x -v --durations=0 tests/tts_tests2
20-
21-
test_xtts:
22-
coverage run -m pytest -x -v --durations=0 tests/xtts_tests
23-
2418
test_aux: ## run aux tests.
2519
coverage run -m pytest -x -v --durations=0 tests/aux_tests
2620

@@ -43,11 +37,11 @@ test_failed: ## only run tests failed the last time.
4337
coverage run -m pytest -x -v --last-failed tests
4438

4539
style: ## update code style.
46-
uv run --only-dev black ${target_dirs}
40+
uv run --only-dev ruff format ${target_dirs}
4741

4842
lint: ## run linters.
4943
uv run --only-dev ruff check ${target_dirs}
50-
uv run --only-dev black ${target_dirs} --check
44+
uv run --only-dev ruff format ${target_dirs} --check
5145

5246
system-deps: ## install linux system deps
5347
sudo apt-get install -y libsndfile1-dev

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ You can also help us implement more models.
116116
<!-- start installation -->
117117
## Installation
118118

119-
🐸TTS is tested on Ubuntu 24.04 with **python >= 3.9, < 3.13**, but should also
119+
🐸TTS is tested on Ubuntu 24.04 with **python >= 3.10, < 3.13**, but should also
120120
work on Mac and Windows.
121121

122122
If you are only interested in [synthesizing speech](https://coqui-tts.readthedocs.io/en/latest/inference.html) with the pretrained 🐸TTS models, installing from PyPI is the easiest option.

TTS/.models.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -723,6 +723,17 @@
723723
"description": "persian-tts-female-glow_tts model for text to speech purposes. Single-speaker female voice Trained on persian-tts-dataset-famale. \nThis model has no compatible vocoder thus the output quality is not very good. \nDataset: https://www.kaggle.com/datasets/magnoliasis/persian-tts-dataset-famale.",
724724
"author": "@karim23657",
725725
"license": "CC-BY-4.0"
726+
},
727+
"vits-female": {
728+
"hf_url": [
729+
"https://huggingface.co/Kamtera/persian-tts-female-vits/resolve/main/best_model_30824.pth",
730+
"https://huggingface.co/Kamtera/persian-tts-female-vits/resolve/main/config.json"
731+
],
732+
"default_vocoder": null,
733+
"commit": null,
734+
"description": "persian-tts-female-vits model for text to speech purposes. Single-speaker female voice trained on persian-tts-dataset-female.\nDataset: https://www.kaggle.com/datasets/magnoliasis/persian-tts-dataset-famale.",
735+
"author": "@karim23657",
736+
"license": "openrail"
726737
}
727738
}
728739
},

0 commit comments

Comments
 (0)