coqui-ai / TTS

🐸💬 - a deep learning toolkit for Text-to-Speech, battle-tested in research and production
http://coqui.ai
Mozilla Public License 2.0
34.99k stars 4.27k forks source link

[Bug] Use Spawn Instead of Fork on Windows #867

Closed Sniper296 closed 2 years ago

Sniper296 commented 3 years ago

Describe the bug Attempting to train a tacotron model on Windows (Anaconda) fails immediately due to multiprocessing configured to use fork. Multiprocessing#Contexts and start methods

To Reproduce Steps to reproduce the behavior:

  1. conda env create -f environment.yml environment.yml
  2. conda activate tts
  3. python tacotron_train.py tacotron_train.py
    Traceback (most recent call last):
    File "tacotron_train.py", line 5, in <module>
    from TTS.trainer import init_training, Trainer, TrainingArgs
    File "C:\Users\Adam\.conda\envs\tts\lib\site-packages\TTS\trainer.py", line 46, in <module>
    multiprocessing.set_start_method("fork")
    File "C:\Users\Adam\.conda\envs\tts\lib\multiprocessing\context.py", line 247, in set_start_method
    self._actual_context = self.get_context(method)
    File "C:\Users\Adam\.conda\envs\tts\lib\multiprocessing\context.py", line 239, in get_context
    return super().get_context(method)
    File "C:\Users\Adam\.conda\envs\tts\lib\multiprocessing\context.py", line 193, in get_context
    raise ValueError('cannot find context for %r' % method) from None
    ValueError: cannot find context for 'fork'

Expected behavior Training to start.

Environment (please complete the following information):

erogol commented 3 years ago

I don't have a Win system. We should wait for someone to send a ✨PR✨ for a fix.

stale[bot] commented 2 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. You might also look our discussion channels.

bitnom commented 2 years ago

This continues to occur on windows after installing via pip.

bitnom commented 2 years ago

Temporary fix until PR is accepted:

  1. Clone TTS repo.
  2. In requirements.txt replace trainer with trainer4win
  3. Build TTS package and install via pip.