From 73cfeb571eed0562cd922aa2bfb04dbc497a0c11 Mon Sep 17 00:00:00 2001 From: Enno Hermann Date: Wed, 8 May 2024 12:39:09 +0200 Subject: [PATCH] fix: make bangla g2p deps optional --- .github/workflows/tests.yml | 2 +- README.md | 26 ++++++++++++++++++++++++- TTS/tts/utils/text/bangla/phonemizer.py | 9 ++++++--- pyproject.toml | 14 +++++++++---- 4 files changed, 42 insertions(+), 9 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index ec4503e21b..43815f2ef0 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -45,7 +45,7 @@ jobs: sed -i 's/https:\/\/coqui.gateway.scarf.sh\//https:\/\/github.com\/coqui-ai\/TTS\/releases\/download\//g' TTS/.models.json - name: Install TTS run: | - python3 -m uv pip install --system "coqui-tts[dev,server,ja] @ ." + python3 -m uv pip install --system "coqui-tts[dev,server,languages] @ ." python3 setup.py egg_info - name: Unit tests run: make ${{ matrix.subset }} diff --git a/README.md b/README.md index 901da37ea5..d692423e56 100644 --- a/README.md +++ b/README.md @@ -143,9 +143,33 @@ If you plan to code or train models, clone 🐸TTS and install it locally. ```bash git clone https://github.com/idiap/coqui-ai-TTS -pip install -e .[all,dev,notebooks,server] # Select the relevant extras +pip install -e . ``` +### Optional dependencies + +The following extras allow the installation of optional dependencies: + +| Name | Description | +|------|-------------| +| `all` | All optional dependencies, except `dev` and `docs` | +| `dev` | Development dependencies | +| `dev` | Dependencies for building the documentation | +| `notebooks` | Dependencies only used in notebooks | +| `server` | Dependencies to run the TTS server | +| `bn` | Bangla G2P | +| `ja` | Japanese G2P | +| `languages` | All language-specific dependencies | + +You can install them with one of the following commands: + +```bash +pip install coqui-tts[server,ja] +pip install -e .[server,ja] +``` + +### Platforms + If you are on Ubuntu (Debian), you can also run following commands for installation. ```bash diff --git a/TTS/tts/utils/text/bangla/phonemizer.py b/TTS/tts/utils/text/bangla/phonemizer.py index e15830fe8a..cddcb00fd5 100644 --- a/TTS/tts/utils/text/bangla/phonemizer.py +++ b/TTS/tts/utils/text/bangla/phonemizer.py @@ -1,8 +1,11 @@ import re -import bangla -from bnnumerizer import numerize -from bnunicodenormalizer import Normalizer +try: + import bangla + from bnnumerizer import numerize + from bnunicodenormalizer import Normalizer +except ImportError as e: + raise ImportError("Bangla requires: bangla, bnnumerizer, bnunicodenormalizer") from e # initialize bnorm = Normalizer() diff --git a/pyproject.toml b/pyproject.toml index b2c0a31721..492d0d782e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -74,10 +74,6 @@ dependencies = [ "g2pkk>=0.1.1", # Gruut + supported languages "gruut[de,es,fr]==2.2.3", - # Bangla - "bangla", - "bnnumerizer", - "bnunicodenormalizer", # Tortoise "einops>=0.6.0", "transformers>=4.33.0", @@ -115,12 +111,22 @@ notebooks = [ # For running the TTS server server = ["flask>=2.0.1"] # Language-specific dependencies, mainly for G2P +# Bangla +bn = [ + "bangla", + "bnnumerizer", + "bnunicodenormalizer", +] # Japanese ja = [ "mecab-python3", "unidic-lite==1.0.8", "cutlet", ] +# All language-specific dependencies +languages = [ + "coqui-tts[bn,ja]", +] # Installs all extras (except dev and docs) all = [ "coqui-tts[notebooks,server,ja]",