Skip to main content

Text-to-Speech Synthesis for the Speech Generation for Indigenous Language Education Small Teams Project

Project description

EveryVoice TTS Toolkit 💬

codecov Documentation Build Status license beta

This is the Text-to-Speech (TTS) toolkit used by the Small Teams "Speech Generation for Indigenous Language Education" project.

Quickstart from PyPI

  • Install Python 3.10, 3.11, or 3.12 and create a venv or a conda env for EveryVoice.

  • Install sox.

    • On Ubuntu, sudo apt-get install sox should work.
    • Other Linux distros should have equivalent packages.
    • With Conda, conda install sox -c conda-forge is reliable.
  • Install ffmpeg:

    • On Ubuntu, sudo apt-get install ffmpeg should work.
    • Other Linux distros should have an equivalent package.
    • With Conda, conda install ffmpeg is reliable.
    • Or, use the official bundles from https://www.ffmpeg.org/download.html
  • Install torch and torchaudio version 2.1.0 for your platform and CUDA version: follow the instructions at https://pytorch.org/get-started/locally/ but specify torch==2.1.0 torchaudio==2.1.0 in the install command and remove torchvision.

  • Run pip install everyvoice

Quickstart from source

Install conda

First, you'll need to install conda. Miniforge3 is a fully open-source option which is free for all users and works well. You can also use Anaconda3 or Miniconda3 if you have or can get a license.

Clone the repo

git clone https://github.com/EveryVoiceTTS/EveryVoice.git
cd EveryVoice
git submodule update --init

Environment and installation – automated

To run EveryVoice, you need to create a new environment using Conda and Python 3.12, install all our dependencies and EveryVoice itself.

We have automated the procedure required to do all this in the script make-everyvoice-env, which you can run like this:

./make-everyvoice-env --path <env-path-of-your-choice>
conda activate <env-path-of-your-choice>

Add the option --cuda CUDA_VERSION if you need to override the default CUDA version, or --cpu to use Torch compiled for CPU use only.

Environment and installation – manual

If the automated installation process does not work for you, or if you prefer to do the full installation manually, please refer to EveryVoice / Installation.

Documentation

Read the full EveryVoice documentation.

In particular, read the Guides to get familiar with the whole process.

To build and view the documentation locally:

pip install -e '.[docs]'
mkdocs serve

and browse to http://127.0.0.1:8000/.

Contributing

Feel free to dive in! Open an issue or submit PRs.

This repo follows the Contributor Covenant Code of Conduct.

Please make sure our standard Git hooks are activated, by running these commands in your sandbox (if you used our make-everyvoice-env script then this step is already done for you):

pip install -e '.[dev]'
pre-commit install
gitlint install-hook
git submodule foreach 'pre-commit install'
git submodule foreach 'gitlint install-hook'

Have a look at Contributing.md for the full details on the Conventional Commit messages we prefer, our code formatting conventions, our Git hooks, and recommendations on how to make effective pull requests.

Publishing Instructions

To publish a new version of the project, follow these steps:

  1. Determine the Version Bump Decide whether your changes constitute a:

    • Major version bump (breaking changes),
    • Minor version bump (new features, backward-compatible, any change to the schema), or
    • Patch version bump (bug fixes, small changes).
  2. Update Version Files

    • Update the everyvoice._version file to reflect the new version.
    • Keep all submodule._version files in sync with this version, except for the wav2vec2aligner submodule (which can be installed separately).
    • Keep the everyvoice dependency in all submodule/pyproject.toml files in sync with the everyvoice Major.minor version, except in wav2vec2aligner.
    • Commit the resulting changes, including all submodules.
  3. Update the Documentation

    • Make sure the documentation reflects the current state of the code.
    • Look for references to the current or most recent version and update them if necessary.
  4. Update Schema (for Major/Minor bumps) If you bumped a major or minor version:

    • Run everyvoice update-schema. You may need to delete existing schema files if you get an error message, but you should only do so if you are sure that those schema files have not already been published. I.e. we might already have schema files related to an alpha release - those can be overwritten, but we should never change published schema files.
    • Commit the resulting changes.
  5. Open a Pull Request

    • Create a PR with your changes.
    • Wait for tests to pass and for the PR to be merged into main.
  6. Tag the Release After merging:

    git tag -a -m vX.Y.Z vX.Y.Z
    git push 'vX.Y.Z'
    
  7. Update SchemaStore (for Major/Minor bumps) Once the CI has built and released your version, if you bumped a major or minor version:

    Submit a PR to SchemaStore to update the schema reference.

    The only file you need to change is: src/api/json/catalog.json

Acknowledgements

This repository draws on many other wonderful code bases. Many thanks to:

Tests

There are many ways to run the unit tests, if you installed EveryVoice from source:

  • Run all the tests with the most concise output: pytest
  • Run all the dev tests: everyvoice/run_tests.py dev or everyvoice test dev
  • Run the tests with verbose logs: everyvoice/run_tests.py --verbose dev
  • Show the names of the other suites you can run: everyvoice/run_tests.py -h
  • Run all the tests in one test file: python -m unittest everyvoice/tests/test_<somefilename>.py
  • Run one specific test case: python -m unittest everyvoice.tests.<filename>.<class_name>.<function_name>

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

everyvoice-0.4.0.tar.gz (176.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

everyvoice-0.4.0-py3-none-any.whl (223.7 kB view details)

Uploaded Python 3

File details

Details for the file everyvoice-0.4.0.tar.gz.

File metadata

  • Download URL: everyvoice-0.4.0.tar.gz
  • Upload date:
  • Size: 176.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for everyvoice-0.4.0.tar.gz
Algorithm Hash digest
SHA256 0b320e9dec1c62235566c6fda60b3ee74f688893bcd559d6579db31f49ad85e6
MD5 7819f047f1d988df22c69cbdfd4cd5a4
BLAKE2b-256 76fe59a0128c9587e08ef3ac4f017b950930ff1ecd37716807be72a090db080f

See more details on using hashes here.

Provenance

The following attestation bundles were made for everyvoice-0.4.0.tar.gz:

Publisher: publish.yaml on EveryVoiceTTS/EveryVoice

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file everyvoice-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: everyvoice-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 223.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for everyvoice-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f271d74b585da31fa30bcea1fbad215d3a786fcf5e2a34750dbc3c194d1e3018
MD5 55713f823e6547604fa3af6e42d3a207
BLAKE2b-256 40ba6100b64f859d731550da033d170f9602e1401c2dc07f2f4dbbb0c79c35bf

See more details on using hashes here.

Provenance

The following attestation bundles were made for everyvoice-0.4.0-py3-none-any.whl:

Publisher: publish.yaml on EveryVoiceTTS/EveryVoice

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page