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.0 #188

Merged
merged 69 commits into from
Dec 4, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
69 commits
Select commit Hold shift + click to select a range
ef8158d
build: use group not extra for docs dependencies
eginhard Nov 6, 2024
020a724
ci(readthedocs): build docs with uv
eginhard Nov 6, 2024
59996ff
Merge pull request #133 from idiap/docs
eginhard Nov 6, 2024
0971bc2
refactor: use external package for monotonic alignment
eginhard Nov 6, 2024
9dd7ae6
build: switch to hatch
eginhard Nov 7, 2024
d30eba5
chore: remove obsolete code owners file
eginhard Nov 7, 2024
683ee66
ci: simplify release, cibuildwheel not needed anymore
eginhard Nov 7, 2024
e18f7da
Merge pull request #135 from idiap/mas
eginhard Nov 8, 2024
540e8d6
fix(bin.synthesize): return speakers names only (#147)
shavit Nov 9, 2024
2df9bfa
refactor: handle deprecation of torch.cuda.amp.autocast (#144)
eginhard Nov 9, 2024
21172ec
ci: update uv and move into composite action
eginhard Nov 10, 2024
993da77
chore: use original instead of scarf urls
eginhard Nov 10, 2024
5de47e9
ci: run integration tests only on lowest and highest python
eginhard Nov 10, 2024
d3c3ba3
build: set upper limit on transformers
eginhard Nov 10, 2024
b5bd995
Merge pull request #149 from idiap/cache-models
eginhard Nov 11, 2024
75d0825
fix(docker): add Support for building Docker on Mac/arm64 (#159)
hongkongkiwi Nov 14, 2024
e81f8d0
fix: more helpful error message when formatter is not found
eginhard Nov 16, 2024
627bbe4
fix(xtts): more helpful error message when vocab.json not found
eginhard Nov 16, 2024
48f5be2
feat(audio): automatically convert audio to mono
eginhard Nov 17, 2024
5784f67
refactor(audio): improve type hints, address lint issues
eginhard Nov 17, 2024
8ba3233
refactor(audio): remove duplicate save_wav code
eginhard Nov 17, 2024
fbbae5a
refactor(audio): remove duplicate rms_volume_norm function
eginhard Nov 17, 2024
312593e
Merge pull request #166 from idiap/error-messages
eginhard Nov 20, 2024
9035e36
ci: allow testing out trainer/coqpit branches before release (#168)
eginhard Nov 20, 2024
1b6d3eb
refactor(xtts): remove duplicate hifigan generator
eginhard Nov 20, 2024
1f27f99
refactor(utils): remove duplicate set_partial_state_dict
eginhard Nov 20, 2024
66701e1
refactor(xtts): reuse functions/classes from tortoise
eginhard Nov 21, 2024
4ba83f4
chore(tortoise): remove unused AudioMiniEncoder
eginhard Nov 21, 2024
705551c
refactor(tortoise): remove unused do_checkpoint arguments
eginhard Nov 21, 2024
5ffc054
refactor(bark): remove custom layer norm
eginhard Nov 21, 2024
490c973
refactor(xtts): use position embedding from tortoise
eginhard Nov 21, 2024
33ac0d6
refactor(xtts): use build_hf_gpt_transformer from tortoise
eginhard Nov 21, 2024
7cdfde2
refactor: move amp_to_db/db_to_amp into torch_transforms
eginhard Nov 22, 2024
6f25c2b
refactor(delightful_tts): remove unused classes
eginhard Nov 21, 2024
e63962c
refactor(losses): move shared losses into losses.py
eginhard Nov 21, 2024
2e5f68d
refactor(wavernn): remove duplicate Stretch2d
eginhard Nov 22, 2024
69a599d
refactor(freevc): remove duplicate code
eginhard Nov 22, 2024
6ecf473
refactor(xtts): use tortoise conditioning encoder
eginhard Nov 22, 2024
0f69d31
refactor(vocoder): remove duplicate function
eginhard Nov 22, 2024
fa844e0
refactor(tacotron): remove duplicate function
eginhard Nov 22, 2024
b45a7a4
refactor: move exists() and default() into generic_utils
eginhard Nov 22, 2024
54f4228
refactor(xtts): use existing cleaners
eginhard Nov 22, 2024
b1ac884
refactor: move shared function into dataset.py
eginhard Nov 22, 2024
2c82477
ci: merge integration tests back into unit tests
eginhard Nov 22, 2024
76df642
refactor: move more audio processing into torch_transforms
eginhard Nov 23, 2024
8bf288e
test: move test_helpers.py to fast unit tests
eginhard Nov 24, 2024
7330ad8
refactor: move duplicate alignment functions into helpers
eginhard Nov 24, 2024
170d3da
refactor: remove duplicate to_camel
eginhard Nov 24, 2024
63625e7
refactor: import get_last_checkpoint from trainer.io
eginhard Nov 27, 2024
98a372b
Merge pull request #172 from idiap/deduplicate
eginhard Dec 2, 2024
6de98ff
feat(openvoice): initial integration
ajk1402 Jun 13, 2024
4124b9d
feat(vits): add tau parameter to posterior encoder
eginhard Jun 25, 2024
b97d537
refactor(openvoice): remove duplicate and unused code
eginhard Jun 20, 2024
9599837
feat(openvoice): add config classes
eginhard Jun 20, 2024
ca02d03
feat(openvoice): add to .models.json
eginhard Nov 13, 2024
1a21853
ci: validate .models.json file
eginhard Nov 13, 2024
fce3137
feat: add openvoice vc model
eginhard Jun 25, 2024
d488441
test(freevc): remove unused code
eginhard Nov 13, 2024
6927e0b
fix(api): clearer error message when model doesn't support VC
eginhard Nov 29, 2024
546f43c
refactor: only use keyword args in Synthesizer
eginhard Nov 29, 2024
9ef2c7e
test(freevc): fix output length check
eginhard Dec 1, 2024
5f8ad4c
test(openvoice): add sanity check
eginhard Nov 29, 2024
32c99e8
docs(readme): mention openvoice vc
eginhard Jun 13, 2024
7d0416f
refactor(vc): rename TTS.vc.modules to TTS.vc.layers for consistency
eginhard Dec 1, 2024
3539e65
refactor(synthesizer): set sample rate in loading methods
eginhard Dec 2, 2024
834d41b
build: switch to forked coqpit
eginhard Oct 20, 2024
d4ffff4
chore: bump version to 0.25.0
eginhard Dec 3, 2024
9ae0b27
Merge pull request #183 from idiap/openvoice
eginhard Dec 3, 2024
48ad1da
Merge pull request #110 from idiap/uv
eginhard Dec 3, 2024
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
11 changes: 11 additions & 0 deletions .github/actions/setup-uv/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
name: Setup uv

runs:
using: 'composite'
steps:
- name: Install uv
uses: astral-sh/setup-uv@v4
with:
version: "0.5.4"
enable-cache: true
cache-dependency-glob: "**/pyproject.toml"
46 changes: 16 additions & 30 deletions .github/workflows/pypi-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,12 @@ defaults:
shell:
bash
jobs:
build-sdist:
name: Build source distribution
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup uv
uses: ./.github/actions/setup-uv
- name: Verify tag matches version
run: |
set -ex
Expand All @@ -20,37 +21,23 @@ jobs:
if [[ "v$version" != "$tag" ]]; then
exit 1
fi
- uses: actions/setup-python@v5
with:
python-version: 3.9
- run: |
python -m pip install -U pip setuptools build
- run: |
python -m build
- run: |
pip install dist/*.tar.gz
- uses: actions/upload-artifact@v4
with:
name: build-sdist
path: dist/*.tar.gz
build-wheels:
name: Build wheels on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
steps:
- uses: actions/checkout@v4
- name: Build wheels
uses: pypa/[email protected]
- name: Set up Python
run: uv python install 3.12
- name: Build sdist and wheel
run: uv build
- name: Test installation of sdist and wheel
run: |
uv venv --no-project
uv pip install dist/*.tar.gz
uv pip install dist/*.whl
- uses: actions/upload-artifact@v4
with:
name: build-wheels-${{ matrix.os }}
path: ./wheelhouse/*.whl
name: build
path: dist/*
publish-artifacts:
name: Publish to PyPI
runs-on: ubuntu-latest
needs: [build-sdist, build-wheels]
needs: [build]
environment:
name: release
url: https://pypi.org/p/coqui-tts
Expand All @@ -60,8 +47,7 @@ jobs:
- uses: actions/download-artifact@v4
with:
path: dist
pattern: build-*
merge-multiple: true
pattern: build
- run: |
ls -lh dist/
- name: Publish package distributions to PyPI
Expand Down
10 changes: 3 additions & 7 deletions .github/workflows/style_check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,20 +7,16 @@ on:
pull_request:
types: [opened, synchronize, reopened]
jobs:
test:
lint:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: [3.9]
steps:
- uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v3
with:
version: "0.4.27"
enable-cache: true
cache-dependency-glob: "**/pyproject.toml"
- name: Setup uv
uses: ./.github/actions/setup-uv
- name: Set up Python ${{ matrix.python-version }}
run: uv python install ${{ matrix.python-version }}
- name: Lint check
Expand Down
89 changes: 71 additions & 18 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
@@ -1,31 +1,37 @@
name: tests
name: test

on:
push:
branches:
- main
pull_request:
types: [opened, synchronize, reopened]
workflow_dispatch:
inputs:
trainer_branch:
description: "Branch of Trainer to test"
required: false
default: "main"
coqpit_branch:
description: "Branch of Coqpit to test"
required: false
default: "main"
jobs:
test:
unit:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: [3.9, "3.10", "3.11", "3.12"]
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"]
steps:
- uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v3
with:
version: "0.4.27"
enable-cache: true
cache-dependency-glob: "**/pyproject.toml"
- 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('["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"]'), matrix.subset)
run: |
sudo apt-get update
sudo apt-get install espeak espeak-ng
Expand All @@ -34,10 +40,14 @@ jobs:
sudo apt-get update
sudo apt-get install -y --no-install-recommends git make gcc
make system-deps
- 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)
- name: Install custom Trainer and/or Coqpit if requested
run: |
sed -i 's/https:\/\/coqui.gateway.scarf.sh\//https:\/\/github.com\/coqui-ai\/TTS\/releases\/download\//g' TTS/.models.json
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: Unit tests
run: |
resolution=highest
Expand All @@ -52,16 +62,59 @@ jobs:
name: coverage-data-${{ matrix.subset }}-${{ matrix.python-version }}
path: .coverage.*
if-no-files-found: ignore
integration:
runs-on: ubuntu-latest
strategy:
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"]
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)
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
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: Integration tests
run: |
resolution=highest
if [ "${{ matrix.python-version }}" == "3.9" ]; then
resolution=lowest-direct
fi
uv run --resolution=$resolution --extra server --extra languages make ${{ matrix.subset }}
- name: Upload coverage data
uses: actions/upload-artifact@v4
with:
include-hidden-files: true
name: coverage-data-${{ matrix.subset }}-${{ matrix.python-version }}
path: .coverage.*
if-no-files-found: ignore
coverage:
if: always()
needs: test
needs: [unit, integration]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v3
with:
version: "0.4.27"
- name: Setup uv
uses: ./.github/actions/setup-uv
- uses: actions/download-artifact@v4
with:
pattern: coverage-data-*
Expand Down
2 changes: 2 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@ repos:
- repo: "https://github.com/pre-commit/pre-commit-hooks"
rev: v5.0.0
hooks:
- id: check-json
files: "TTS/.models.json"
- id: check-yaml
- id: end-of-file-fixer
- id: trailing-whitespace
Expand Down
15 changes: 7 additions & 8 deletions .readthedocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,13 @@ version: 2
build:
os: ubuntu-22.04
tools:
python: "3.11"

# Optionally set the version of Python and requirements required to build your docs
python:
install:
- path: .
extra_requirements:
- docs
python: "3.12"
commands:
- asdf plugin add uv
- asdf install uv latest
- asdf global uv latest
- uv sync --group docs
- uv run -m sphinx -T -b html -d docs/_build/doctrees -D language=en docs/source $READTHEDOCS_OUTPUT/html

# Build documentation in the docs/ directory with Sphinx
sphinx:
Expand Down
75 changes: 0 additions & 75 deletions CODE_OWNERS.rst

This file was deleted.

17 changes: 14 additions & 3 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,9 +1,20 @@
ARG BASE=nvidia/cuda:11.8.0-base-ubuntu22.04
FROM ${BASE}

RUN apt-get update && apt-get upgrade -y
RUN apt-get install -y --no-install-recommends gcc g++ make python3 python3-dev python3-pip python3-venv python3-wheel espeak-ng libsndfile1-dev && rm -rf /var/lib/apt/lists/*
RUN pip3 install -U pip setuptools
RUN apt-get update && \
apt-get upgrade -y
RUN apt-get install -y --no-install-recommends \
gcc g++ make python3 python3-dev python3-pip \
python3-venv python3-wheel espeak-ng \
libsndfile1-dev libc-dev curl && \
rm -rf /var/lib/apt/lists/*

# Install Rust compiler (to build sudachipy for Mac)
RUN curl --proto '=https' --tlsv1.2 -sSf "https://sh.rustup.rs" | sh -s -- -y
ENV PATH="/root/.cargo/bin:${PATH}"

RUN pip3 install -U pip setuptools wheel
RUN pip3 install -U "spacy[ja]<3.8"
RUN pip3 install llvmlite --ignore-installed

# Install Dependencies:
Expand Down
10 changes: 0 additions & 10 deletions MANIFEST.in

This file was deleted.

Loading
Loading