🐍 Python 3.10.x support and drop Python 3.6 support (#1565)

* Update requirements

* Update CI for p3.10

* Update numpy requirement

* Drop 🐍p3.6 support

Numpy also dropped support for p3.6

* Bind cython v0.29.28

* Bind pyworld to v0.2.10

> 0.2.10 is not p3.10.x compatible

* Update Dockerfile
pull/1573/head
Eren Gölge 2022-05-12 15:50:25 +02:00 committed by GitHub
parent a97eed696a
commit 4857967063
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
17 changed files with 38 additions and 43 deletions

View File

@ -18,7 +18,7 @@ jobs:
strategy:
fail-fast: false
matrix:
python-version: [3.6, 3.7, 3.8, 3.9]
python-version: [3.7, 3.8, 3.9, "3.10"]
experimental: [false]
steps:
- uses: actions/checkout@v2

View File

@ -18,7 +18,7 @@ jobs:
strategy:
fail-fast: false
matrix:
python-version: [3.6, 3.7, 3.8, 3.9]
python-version: [3.7, 3.8, 3.9, "3.10"]
experimental: [false]
steps:
- uses: actions/checkout@v2

View File

@ -18,7 +18,7 @@ jobs:
strategy:
fail-fast: false
matrix:
python-version: [3.6, 3.7, 3.8, 3.9]
python-version: [3.7, 3.8, 3.9, "3.10"]
experimental: [false]
steps:
- uses: actions/checkout@v2

View File

@ -36,7 +36,7 @@ jobs:
runs-on: ubuntu-20.04
strategy:
matrix:
python-version: ["3.6", "3.7", "3.8", "3.9"]
python-version: ["3.7", "3.8", "3.9", "3.10"]
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
@ -62,10 +62,6 @@ jobs:
with:
name: "sdist"
path: "dist/"
- uses: actions/download-artifact@v2
with:
name: "wheel-3.6"
path: "dist/"
- uses: actions/download-artifact@v2
with:
name: "wheel-3.7"
@ -78,6 +74,10 @@ jobs:
with:
name: "wheel-3.9"
path: "dist/"
- uses: actions/download-artifact@v2
with:
name: "wheel-3.10"
path: "dist/"
- run: |
ls -lh dist/
- name: Setup PyPI config

View File

@ -18,7 +18,7 @@ jobs:
strategy:
fail-fast: false
matrix:
python-version: [3.6, 3.7, 3.8, 3.9]
python-version: [3.7, 3.8, 3.9, "3.10"]
experimental: [false]
steps:
- uses: actions/checkout@v2

View File

@ -18,7 +18,7 @@ jobs:
strategy:
fail-fast: false
matrix:
python-version: [3.6, 3.7, 3.8, 3.9]
python-version: [3.7, 3.8, 3.9, "3.10"]
experimental: [false]
steps:
- uses: actions/checkout@v2

View File

@ -18,7 +18,7 @@ jobs:
strategy:
fail-fast: false
matrix:
python-version: [3.6, 3.7, 3.8, 3.9]
python-version: [3.7, 3.8, 3.9, "3.10"]
experimental: [false]
steps:
- uses: actions/checkout@v2

View File

@ -18,7 +18,7 @@ jobs:
strategy:
fail-fast: false
matrix:
python-version: [3.6, 3.7, 3.8, 3.9]
python-version: [3.7, 3.8, 3.9, "3.10"]
experimental: [false]
steps:
- uses: actions/checkout@v2

View File

@ -1,10 +1,11 @@
FROM nvcr.io/nvidia/pytorch:22.03-py3
RUN apt-get update && apt-get install -y --no-install-recommends espeak && rm -rf /var/lib/apt/lists/*
RUN apt-get update && apt-get install -y --no-install-recommends espeak espeak-ng && rm -rf /var/lib/apt/lists/*
RUN pip install llvmlite --ignore-installed
WORKDIR /root
COPY requirements.txt /root
COPY requirements.dev.txt /root
COPY requirements.notebooks.txt /root
RUN pip install -r <(cat requirements.txt requirements.dev.txt requirements.notebooks.txt)
RUN ["/bin/bash", "-c", "pip install -r <(cat requirements.txt requirements.dev.txt requirements.notebooks.txt)"]
COPY . /root
RUN make install
ENTRYPOINT ["tts"]

View File

@ -7,36 +7,36 @@ help:
target_dirs := tests TTS notebooks recipes
test_all: ## run tests and don't stop on an error.
nosetests --with-cov -cov --cover-erase --cover-package TTS tests --nologcapture --with-id
nose2 --with-coverage --coverage TTS tests
./run_bash_tests.sh
test: ## run tests.
nosetests -x --with-cov -cov --cover-erase --cover-package TTS tests --nologcapture --with-id
nose2 -F -v -B --with-coverage --coverage TTS tests
test_vocoder: ## run vocoder tests.
nosetests tests.vocoder_tests -x --with-cov -cov --cover-erase --cover-package TTS tests.vocoder_tests --nologcapture --with-id
nose2 -F -v -B --with-coverage --coverage TTS tests.vocoder_tests
test_tts: ## run tts tests.
nosetests tests.tts_tests -x --with-cov -cov --cover-erase --cover-package TTS tests.tts_tests --nologcapture --with-id
nose2 -F -v -B --with-coverage --coverage TTS tests.tts_tests
test_aux: ## run aux tests.
nosetests tests.aux_tests -x --with-cov -cov --cover-erase --cover-package TTS tests.aux_tests --nologcapture --with-id
nose2 -F -v -B --with-coverage --coverage TTS tests.aux_tests
./run_bash_tests.sh
test_zoo: ## run zoo tests.
nosetests tests.zoo_tests -x --with-cov -cov --cover-erase --cover-package TTS tests.zoo_tests --nologcapture --with-id
nose2 -F -v -B --with-coverage --coverage TTS tests.zoo_tests
inference_tests: ## run inference tests.
nosetests tests.inference_tests -x --with-cov -cov --cover-erase --cover-package TTS tests.inference_tests --nologcapture --with-id
nose2 -F -v -B --with-coverage --coverage TTS tests.inference_tests
data_tests: ## run data tests.
nosetests tests.data_tests -x --with-cov -cov --cover-erase --cover-package TTS tests.data_tests --nologcapture --with-id
nose2 -F -v -B --with-coverage --coverage TTS tests.data_tests
test_text: ## run text tests.
nosetests tests.text_tests -x --with-cov -cov --cover-erase --cover-package TTS tests.text_tests --nologcapture --with-id
nose2 -F -v -B --with-coverage --coverage TTS tests.text_tests
test_failed: ## only run tests failed the last time.
nosetests -x --with-cov -cov --cover-erase --cover-package TTS tests --nologcapture --failed
nose2 -F -v -B --with-coverage --coverage TTS tests
style: ## update code style.
black ${target_dirs}

View File

@ -104,7 +104,7 @@ Underlined "TTS*" and "Judy*" are 🐸TTS models
You can also help us implement more models.
## Install TTS
🐸TTS is tested on Ubuntu 18.04 with **python >= 3.6, < 3.9**.
🐸TTS is tested on Ubuntu 18.04 with **python >= 3.7, < 3.11.**.
If you are only interested in [synthesizing speech](https://tts.readthedocs.io/en/latest/inference.html) with the released 🐸TTS models, installing from PyPI is the easiest option.

View File

@ -1,9 +1,3 @@
<!-- ## TTS example web-server
You'll need a model package (Zip file, includes TTS Python wheel, model files, server configuration, and optional nginx/uwsgi configs). Publicly available models are listed [here](https://github.com/mozilla/TTS/wiki/Released-Models#simple-packaging---self-contained-package-that-runs-an-http-api-for-a-pre-trained-tts-model).
Instructions below are based on a Ubuntu 18.04 machine, but it should be simple to adapt the package names to other distros if needed. Python 3.6 is recommended, as some of the dependencies' versions predate Python 3.7 and will force building from source, which requires extra dependencies and is not guaranteed to work. -->
# :frog: TTS demo server
Before you use the server, make sure you [install](https://github.com/coqui-ai/TTS/tree/dev#install-tts)) :frog: TTS properly. Then, you can follow the steps below.

View File

@ -1,6 +1,6 @@
# Installation
🐸TTS supports python >=3.6 <=3.9 and tested on Ubuntu 18.10, 19.10, 20.10.
🐸TTS supports python >=3.7 <3.11.0 and tested on Ubuntu 18.10, 19.10, 20.10.
## Using `pip`

View File

@ -1,5 +1,5 @@
[build-system]
requires = ["setuptools", "wheel", "Cython", "numpy==1.19.5"]
requires = ["setuptools", "wheel", "cython==0.29.28", "numpy==1.21.6"]
[flake8]
max-line-length=120

View File

@ -1,5 +1,5 @@
black
coverage
isort
nose
nose2
pylint==2.10.2

View File

@ -1,12 +1,12 @@
# core deps
numpy==1.19.5
cython
numpy==1.21.6
cython==0.29.28
scipy>=1.4.0
torch>=1.7
torchaudio
soundfile
librosa==0.8.0
numba==0.53
numba==0.55.1
inflect
tqdm
anyascii
@ -22,7 +22,7 @@ pandas
# deps for training
matplotlib
tensorboardX
pyworld
pyworld==0.2.10 # > 0.2.10 is not p3.10.x compatible
# coqui stack
trainer
# config management
@ -31,7 +31,7 @@ coqpit>=0.0.16
jieba
pypinyin
# japanese g2p deps
mecab-python3==1.0.3
mecab-python3==1.0.5
unidic-lite==1.0.8
# gruut+supported langs
gruut[cs,de,es,fr,it,nl,pt,ru,sv]==2.2.3

View File

@ -31,8 +31,8 @@ import setuptools.command.develop
from Cython.Build import cythonize
from setuptools import Extension, find_packages, setup
if LooseVersion(sys.version) < LooseVersion("3.6") or LooseVersion(sys.version) > LooseVersion("3.10"):
raise RuntimeError("TTS requires python >= 3.6 and <=3.10 " "but your Python version is {}".format(sys.version))
if LooseVersion(sys.version) < LooseVersion("3.7") or LooseVersion(sys.version) >= LooseVersion("3.11"):
raise RuntimeError("TTS requires python >= 3.7 and < 3.11 " "but your Python version is {}".format(sys.version))
cwd = os.path.dirname(os.path.abspath(__file__))
@ -113,15 +113,15 @@ setup(
"dev": requirements_dev,
"notebooks": requirements_notebooks,
},
python_requires=">=3.6.0, <3.10",
python_requires=">=3.7.0, <3.11",
entry_points={"console_scripts": ["tts=TTS.bin.synthesize:main", "tts-server = TTS.server.server:main"]},
classifiers=[
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.6",
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Development Status :: 3 - Alpha",
"Intended Audience :: Science/Research",
"Intended Audience :: Developers",