Commit Graph

392 Commits

Author SHA1 Message Date
Enno Hermann 0971bc236e refactor: use external package for monotonic alignment 2024-11-08 12:35:04 +01:00
Enno Hermann 6314032fd7
Merge pull request #113 from idiap/pytorch
fix: only enable load with weights_only in pytorch>=2.4
2024-11-04 22:14:42 +01:00
Enno Hermann 8e66be2c32 fix: only enable load with weights_only in pytorch>=2.4
Allows moving the minimum Pytorch version back to 2.1
2024-11-04 18:39:51 +01:00
Enno Hermann 47ad0bf190
fix(text.characters): add nasal diacritic (#127) 2024-11-04 17:40:23 +01:00
Shavit 36611a7192
feat: normalize unicode characters in text cleaners (#85)
* Add normalizer type C to text cleaners

* Linter recommendations

* Add unicode normalize to every cleaner

* Format test_text_cleaners.py
2024-10-02 17:01:19 +02:00
shavit 17ca24c3d6 fix: load weights only in torch.load 2024-09-12 23:37:19 +02:00
Enno Hermann f8df19a10c refactor: remove duplicate convert_pad_shape 2024-06-26 10:17:04 +02:00
Enno Hermann 9cfcc0a0f5 chore(cleaners): add type hints 2024-06-14 15:20:04 +02:00
Enno Hermann e5c208d254 feat(cleaners): add multilingual phoneme cleaner
This doesn't convert numbers into English words.
2024-06-14 15:06:03 +02:00
Enno Hermann 07cbcf825c fix(espeak_wrapper): read phonemize() input from file
Avoids utf8 encoding issues on Windows when passing the text directly.
Fixes https://github.com/coqui-ai/TTS/discussions/3761
2024-05-29 10:10:05 +02:00
Enno Hermann 49fcbd908b fix(espeak_wrapper): avoid stuck process on windows
Fixes #24
2024-05-29 07:39:03 +02:00
Enno Hermann 203f60f1e1 refactor(espeak_wrapper): remove sync argument
_espeak_exe is always called with sync=True, so remove code for sync==False
2024-05-28 21:30:55 +02:00
Enno Hermann 865a48156d fix: make korean g2p deps optional 2024-05-08 18:08:40 +02:00
Enno Hermann 55ed162f2a fix: make chinese g2p deps optional 2024-05-08 18:08:40 +02:00
Enno Hermann ea893c3795 fix: make bangla g2p deps optional 2024-05-08 18:08:40 +02:00
Enno Hermann ec50006855 style: run pre-commit
Automatic changes from: pre-commit run --all-files
2024-05-08 12:17:47 +02:00
Enno Hermann fb92e13ebb build: remove unused/obsolete code 2024-05-08 12:13:41 +02:00
Enno Hermann 962f9bbbcf refactor(espeak_wrapper): fix ruff lint suggestions 2024-05-01 13:31:39 +02:00
Enno Hermann 7b2289a454 fix(espeak_wrapper): capture stderr separately
Fixes https://github.com/coqui-ai/TTS/issues/2728

Previously, error messages from espeak were treated as normal output and also
converted to phonemes. This captures and logs them separately.
2024-05-01 12:31:49 +02:00
Enno Hermann 52a52b5e21 fix(LanguageManager): allow initialisation from config with language ids file
Previously, running `LanguageManager.init_from_config(config)` would never use
the `language_ids_file` if that field is present because it was overwritten in
the next line with a new manager that manually parses languages from the
datasets in the config. Now that is only used as a fallback.
2024-04-19 11:57:27 +02:00
Enno Hermann b3c9685aee fix(tokenizer): add debug logging 2024-04-11 16:58:12 +02:00
Enno Hermann b6ab85a050 fix: use logging instead of print statements
Fixes #1691
2024-04-03 15:19:45 +02:00
Enno Hermann d772724125 fix: update repository links, package names, metadata 2024-04-03 12:02:44 +02:00
Enno Hermann 2e8f47a33d
Merge pull request #10 from eginhard/fix-pinyin
fix chinese pinyin phonemes
2024-03-09 16:23:28 +01:00
Enno Hermann efdafd5a7f style: run black 2024-03-07 11:46:51 +01:00
wangjie b184e9f0fe fix chinese pinyin phonemes 2024-01-12 09:11:56 +08:00
Aarni Koskela 00f8f4892a Ruff autofix unnecessary passes 2023-12-13 14:56:41 +02:00
Aarni Koskela 64bb41f4fa Ruff autofix C41 2023-12-13 14:56:41 +02:00
Enno Hermann 39321d02be
fix: correctly strip/restore initial punctuation (#3336)
* refactor(punctuation): remove orphan code for handling lone punctuation

The case of lone punctuation is already handled at the top of restore(). The
removed if statement would never be called and would in fact raise an
AttributeError because the _punc_index named tuple doesn't have the attribute
`mark`.

* refactor(punctuation): remove unused argument

* fix(punctuation): correctly handle initial punctuation

Stripping and restoring initial punctuation didn't work correctly because the
string-splitting caused an additional empty string to be inserted in the text
list (because `".A".split(".")` => `["", "A"]`). Now, an initial empty string is
skipped and relevant test cases are added.

Fixes #3333
2023-11-30 13:03:16 +01:00
Enno Hermann 2af0220996
fix: don't pass quotes to espeak (#3286)
Previously, the text was wrapped in an additional set of quotes that was passed
to Espeak. This could result in different phonemization in certain edges and
caused the insertion of an initial separator "_" that had to be removed.
Compare:
$ espeak-ng -q -b 1 -v en-us --ipa=1 '"A"'
_ˈɐ
$ espeak-ng -q -b 1 -v en-us --ipa=1 'A'
ˈeɪ

Fixes #2619
2023-11-24 12:25:37 +01:00
Eren Gölge 4033db5f4b 🔥 XTTS implementation 2023-09-13 17:51:24 +02:00
Aleś Bułojčyk fead04f779
Add phonemizer for Belarusian language (#2856) 2023-08-28 11:20:45 +02:00
Eren Gölge a7a96d08dd
Fix loading Bark (#2893)
* Fixup hubert path

* Make style
2023-08-26 11:59:00 +02:00
Jake Tae 409db505d2
Add device support in TTS and Synthesizer (#2855)
* fix: resolve merge conflicts

* fix: retain backwards compatability in functions

* feature: utilize device for voice transfer

* feature: use device for vocoder

* chore: cleanup vocoder cpu logic

* fix: add necessary vocoder output device check

* fix: add necessary vocoder output device check

* fix: indentation

* fix: check if waveform is pt tensor before cpu conversion

---------

Co-authored-by: Jake Tae <jaketae@Jakes-MacBook-Pro-2.local>
2023-08-14 21:04:44 +02:00
Eren Gölge 4186f42b21
Handle missing JA phonemizer (#2843)
* Handle missing JA phonemizer

* Make style
2023-08-07 13:19:38 +02:00
Eren Gölge 69f080eb47
Fix DelightfulTTS (#2823)
* Fix tests

* Make style
2023-07-31 13:52:45 +02:00
Aleś Bułojčyk d124f78430
Recipe for Belarusian TTS (#2756)
* Changes from jhlfrfufyfn <jhlfrfufyfn@gmail.com>

* Recipe for Belarusian TTS

---------

Co-authored-by: jhlfrfufyfn <jhlfrfufyfn@gmail.com>
2023-07-31 10:26:21 +02:00
Eren Gölge 8aacb81849
Fix Tortoise load (#2791)
* Remove key prunning in tortoise

* Make lint
2023-07-24 13:42:47 +02:00
logan hart 6fdb88f8e2
Add Delightful-TTS implementation (#2095)
* add configs

* Update config file

* Add model configs

* Add model layers

* Add layer files

* Add layer modules

* change config names

* Add emotion manager

* fIX missing ap bug

* Fix missing ap bug

* Add base TTS e2e class

* Fix wrong variable name in load_tts_samples

* Add training script

* Remove range predictor and gaussian upsampling

* Add helper function

* Add vctk recipe

* Add conformer docs

* Fix linting in conformer.py

* Add Docs

* remove duplicate import

* refactor args

* Fix bugs

* Removew emotion embedding

* remove unused arg

* Remove emotion embedding arg

* Remove emotion embedding arg

* fix style issues

* Fix bugs

* Fix bugs

* Add unittests

* make style

* fix formatter bug

* fix test

* Add pyworld compute pitch func

* Update requirments.txt

* Fix dataset Bug

* Chnge layer norm to instance norm

* Add missing import

* Remove emotions.py

* remove ssim loss

* Add init layers func to aligner

* refactor model layers

* remove audio_config arg

* Rename loss func

* Rename to delightful-tts

* Rename loss func

* Remove unused modules

* refactor imports

* replace audio config with audio processor

* Add change sample rate option

* remove broken resample func

* update recipe

* fix style, add config docs

* fix tests and multispeaker embd dim

* remove pyworld

* Make style and fix inference

* Split tts tests

* Fixup

* Fixup

* Fixup

* Add argument names

* Set "random" speaker in the model Tortoise/Bark

* Use a diff f0_cache path for delightfull tts

* Fix delightful speaker handling

* Fix lint

* Make style

---------

Co-authored-by: loganhart420 <loganartpersonal@gmail.com>
Co-authored-by: Eren Gölge <erogol@hotmail.com>
2023-07-24 13:41:26 +02:00
Paul O'Leary McCann c0aabb8596
Make Japanese-specific dependencies optional (#2776)
* Don't install MeCab by default

* Add optional [ja] deps, like [dev] etc

* Add JA requirements file

* Add JA requirements to requirements_all

This should help the tests run.
2023-07-24 11:28:27 +02:00
Eren G??lge 17ac188958 Drop fairseq for Hubert 2023-06-26 19:27:48 +02:00
Eren Gölge e785d101a1
Port Fairseq TTS models (#2628)
* Load fairseq models

* Add docs and missing files

* Managing fairseq models and docs for API

* Make style

* Use scarf URL

* Add tests

* Fix URL

* Pass cpu

* Make lint

* Fixup

* Make lint

* fixup

* Fixup

* Change tokenization order

* Update README

* Fixup

* Fixup
2023-06-05 11:15:13 +02:00
Eren Gölge 4de797bb11
Draft ONNX export for VITS (#2563)
* Draft ONNX export for VITS

Could not get it work to output variable length sequence

* Fixup for onnx constant output

* Make style

* Remove commented code
2023-05-16 01:07:56 +02:00
manmay nakhashi a3d5801c44
Tortoise TTS inference (#2547)
* initial commit

* Tortoise inference

* revert path change

* style fix

* remove accidental remove

* style fixes

* style fixes

* removed unwanted assests and deps

* remove changes

* remove cvvp

* style fix black

* added tortoise config and updated config and args, refactoring the code

* added tortoise to api

* Pull mel_norm from url

* Use TTS cleaners

* Let download model files

* add ability to pass tortoise presets through coqui api

* fix tests

* fix style and tests

* fix tts commandline for tortoise

* Add config.json to tortoise

* Use kwargs

* Use regular model api for loading tortoise

* Add load from dir to synthesizer

* Fix Tortoise floats

* Use model_dir when there are multiple urls

* Use `synthesize` when exists

* lint fixes and resolve preset bug

* resolve a download bug and update model link

* fix json

* do tortoise inference from voice dir

* fix

* fix test

* fix speaker id and remove assests

* update inference_tests.yml

* replace inference_test.yml

* fix extra dir as None

* fix tests

* remove space

* Reformat docstring

* Add docs

* Update docs

* lint fixes

---------

Co-authored-by: Eren Gölge <egolge@coqui.ai>
Co-authored-by: Eren Gölge <erogol@hotmail.com>
2023-05-16 00:58:21 +02:00
Eren Gölge 1a6a5710fd Make lint 2023-04-17 15:02:56 +02:00
Eren Gölge 2533a18d62 Add BN tests 2023-04-17 13:37:10 +02:00
Eren Gölge 2d49c05259 Remove import 2023-04-17 13:05:29 +02:00
Eren Gölge cd83991067 Add BN phonemizer 2023-04-17 12:54:00 +02:00
Eren Gölge 914280a556
Bump up to v0.11.0 (#2329)
* Make style

* Bump up to v0.11.0
2023-02-08 13:58:49 +01:00
Martin Weinelt 994be163e1
Use packaging.version for version comparisons (#2310)
* Use packaging.version for version comparisons

The distutils package is deprecated¹ and relies on PEP 386² version
comparisons, which have been superseded by PEP 440³ which is implemented
through the packaging module.

With more recent distutils versions, provided through setuptools
vendoring, we are seeing the following exception during version
comparisons:

> TypeError: '<' not supported between instances of 'str' and 'int'

This is fixed by this migration.

[1] https://docs.python.org/3/library/distutils.html
[2] https://peps.python.org/pep-0386/
[3] https://peps.python.org/pep-0440/

* Improve espeak version detection robustness

On many modern systems espeak is just a symlink to espeak-ng. In that
case looking for the 3rd word in the version output will break the
version comparison, when it finds `text-to-speech:`, instead of a proper
version.

This will not break during runtime, where espeak-ng would be
prioritized, but the phonemizer and tokenizer tests force the backend
to `espeak`, which exhibits this breakage.

This improves the version detection by simply looking for the version
after the "text-to-speech:" token.

* Replace distuils.copy_tree with shutil.copytree

The distutils module is deprecated and slated for removal in Python
3.12. Its usage should be replaced, in this case by a compatible method
from shutil.
2023-01-29 23:47:00 +01:00