aedocw / epub2tts

Turn an epub or text file into an audiobook
Apache License 2.0
426 stars 43 forks source link

Mac M1 problem with setup #241

Open caosegueda opened 2 months ago

caosegueda commented 2 months ago

I keep running across an error in the installation process which states:

pip is looking at multiple versions of epub2tts to determine which version is compatible with other requirements. This could take a while.

it then runs through what appears multiple versions of different python and gives this error:

ERROR: Could not find a version that satisfies the requirement TTS (from epub2tts) (from versions: none) ERROR: No matching distribution found for TTS

I am trying to install in a virtual environment and I am following the instructions for Mac installation per the documentation. A check with pyenv indicates that python 3.11.9 was set by epub2tts. I am Running M1 on Monterey. Thanks in advance.

aedocw commented 2 months ago

Hmm, are you installing in a virtual environment? I just did the following on an M1 macbook pro and there were no issues, maybe try this? (you can skip pyenv steps, I just did that to ensure I was trying the exact same python version)

pyenv install 3.11.9
pyenv local 3.11.9
python -m venv test
source test/bin/activate
pip install .
caosegueda commented 2 months ago

does it make a difference that I utilize python3 -m venv test? python -m venv test would not work. Apologies if this is basic.

aedocw commented 2 months ago

Nope, that's the same thing, and definitely don't apologize :) I'm happy to help however, and glad you're trying to mess with this since it's not super user friendly.

I forget that I have python aliased to python3 haha, you should be good to go with that.

caosegueda commented 2 months ago

I really appreciate the patience... so I will do my best to display what I see on my terminal page:

cao@Carloss-MacBook-Pro-2 ~ % cd epub2tts

cao@Carloss-MacBook-Pro-2 epub2tts % pyenv install 3.11.9

pyenv: /Users/cao/.pyenv/versions/3.11.9 already exists continue with installation? (y/N) n cao@Carloss-MacBook-Pro-2 epub2tts % pyenv local 3.11.9

cao@Carloss-MacBook-Pro-2 epub2tts % python -m venv test

zsh: command not found: python cao@Carloss-MacBook-Pro-2 epub2tts % python3 -m venv test cao@Carloss-MacBook-Pro-2 epub2tts % source test/bin/activate

(test) cao@Carloss-MacBook-Pro-2 epub2tts % pip install .

Processing /Users/cao/epub2tts Installing build dependencies ... done Getting requirements to build wheel ... done Preparing metadata (pyproject.toml) ... done Collecting beautifulsoup4 (from epub2tts==2.4.4) Obtaining dependency information for beautifulsoup4 from https://files.pythonhosted.org/packages/b1/fe/e8c672695b37eecc5cbf43e1d0638d88d66ba3a44c4d321c796f4e59167f/beautifulsoup4-4.12.3-py3-none-any.whl.metadata Using cached beautifulsoup4-4.12.3-py3-none-any.whl.metadata (3.8 kB) Collecting deepspeed (from epub2tts==2.4.4) Using cached deepspeed-0.14.2.tar.gz (1.3 MB) Installing build dependencies ... done Getting requirements to build wheel ... done Preparing metadata (pyproject.toml) ... done Collecting ebooklib (from epub2tts==2.4.4) Using cached EbookLib-0.18.tar.gz (115 kB) Installing build dependencies ... done Getting requirements to build wheel ... done Preparing metadata (pyproject.toml) ... done Collecting edge-tts (from epub2tts==2.4.4) Obtaining dependency information for edge-tts from https://files.pythonhosted.org/packages/6a/ba/63e7ec90cd1fbeac3f8f0dd4bd3507e5f7eecf0fe2f71807d9d6a066173d/edge_tts-6.1.11-py3-none-any.whl.metadata Using cached edge_tts-6.1.11-py3-none-any.whl.metadata (4.3 kB) Collecting fuzzywuzzy (from epub2tts==2.4.4) Obtaining dependency information for fuzzywuzzy from https://files.pythonhosted.org/packages/43/ff/74f23998ad2f93b945c0309f825be92e04e0348e062026998b5eefef4c33/fuzzywuzzy-0.18.0-py2.py3-none-any.whl.metadata Using cached fuzzywuzzy-0.18.0-py2.py3-none-any.whl.metadata (4.9 kB) Collecting mutagen (from epub2tts==2.4.4) Obtaining dependency information for mutagen from https://files.pythonhosted.org/packages/b0/7a/620f945b96be1f6ee357d211d5bf74ab1b7fe72a9f1525aafbfe3aee6875/mutagen-1.47.0-py3-none-any.whl.metadata Using cached mutagen-1.47.0-py3-none-any.whl.metadata (1.7 kB) Collecting newspaper3k (from epub2tts==2.4.4) Obtaining dependency information for newspaper3k from https://files.pythonhosted.org/packages/d7/b9/51afecb35bb61b188a4b44868001de348a0e8134b4dfa00ffc191567c4b9/newspaper3k-0.2.8-py3-none-any.whl.metadata Using cached newspaper3k-0.2.8-py3-none-any.whl.metadata (11 kB) Collecting nltk (from epub2tts==2.4.4) Obtaining dependency information for nltk from https://files.pythonhosted.org/packages/a6/0a/0d20d2c0f16be91b9fa32a77b76c60f9baf6eba419e5ef5deca17af9c582/nltk-3.8.1-py3-none-any.whl.metadata Using cached nltk-3.8.1-py3-none-any.whl.metadata (2.8 kB) Collecting noisereduce (from epub2tts==2.4.4) Obtaining dependency information for noisereduce from https://files.pythonhosted.org/packages/f0/5e/d3c72f395b71d1bf513cfa5b990dd5421aa74de3670eaab53e51ae6ce401/noisereduce-3.0.2-py3-none-any.whl.metadata Using cached noisereduce-3.0.2-py3-none-any.whl.metadata (14 kB) Collecting openai (from epub2tts==2.4.4) Obtaining dependency information for openai from https://files.pythonhosted.org/packages/e6/4e/9e9db238574aeb280377813ac2085c0df3e163d113d3a622039855a3de90/openai-1.25.1-py3-none-any.whl.metadata Using cached openai-1.25.1-py3-none-any.whl.metadata (21 kB) Collecting openai-whisper (from epub2tts==2.4.4) Using cached openai-whisper-20231117.tar.gz (798 kB) Installing build dependencies ... done Getting requirements to build wheel ... done Preparing metadata (pyproject.toml) ... done Collecting pedalboard (from epub2tts==2.4.4) Obtaining dependency information for pedalboard from https://files.pythonhosted.org/packages/9a/ed/a7fb07759763a07eff6d1fe3696aeeace3dabb783323fac0e0cf934d24b4/pedalboard-0.9.4-cp312-cp312-macosx_11_0_arm64.whl.metadata Using cached pedalboard-0.9.4-cp312-cp312-macosx_11_0_arm64.whl.metadata (16 kB) Collecting pydub (from epub2tts==2.4.4) Obtaining dependency information for pydub from https://files.pythonhosted.org/packages/a6/53/d78dc063216e62fc55f6b2eebb447f6a4b0a59f55c8406376f76bf959b08/pydub-0.25.1-py2.py3-none-any.whl.metadata Using cached pydub-0.25.1-py2.py3-none-any.whl.metadata (1.4 kB) Collecting pysbd (from epub2tts==2.4.4) Obtaining dependency information for pysbd from https://files.pythonhosted.org/packages/48/0a/c99fb7d7e176f8b176ef19704a32e6a9c6aafdf19ef75a187f701fc15801/pysbd-0.3.4-py3-none-any.whl.metadata Using cached pysbd-0.3.4-py3-none-any.whl.metadata (6.1 kB) Collecting python-Levenshtein (from epub2tts==2.4.4) Obtaining dependency information for python-Levenshtein from https://files.pythonhosted.org/packages/72/8e/559c539e76bc0b1defec3da39a047fe151258efc9b215bf41db41e2c7922/python_Levenshtein-0.25.1-py3-none-any.whl.metadata Using cached python_Levenshtein-0.25.1-py3-none-any.whl.metadata (3.7 kB) Collecting requests (from epub2tts==2.4.4) Obtaining dependency information for requests from https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl.metadata Using cached requests-2.31.0-py3-none-any.whl.metadata (4.6 kB) Collecting torch (from epub2tts==2.4.4) Obtaining dependency information for torch from https://files.pythonhosted.org/packages/55/51/4bdee83e6fa9cca8e3a6cdf81a2695ede9d3fd7148e4fd4188dff142d7b0/torch-2.3.0-cp312-none-macosx_11_0_arm64.whl.metadata Using cached torch-2.3.0-cp312-none-macosx_11_0_arm64.whl.metadata (26 kB) Collecting torchaudio (from epub2tts==2.4.4) Obtaining dependency information for torchaudio from https://files.pythonhosted.org/packages/77/89/8f5382f614072e42bdd0e88ada0eef7b08c831b02c9138f91d3c325ee1c5/torchaudio-2.3.0-cp312-cp312-macosx_11_0_arm64.whl.metadata Using cached torchaudio-2.3.0-cp312-cp312-macosx_11_0_arm64.whl.metadata (6.4 kB) INFO: pip is looking at multiple versions of epub2tts to determine which version is compatible with other requirements. This could take a while.

After this it does this error message and appears to cycle different renditions of python (image):

Screen Shot 2024-05-03 at 2 57 56 PM

The only thing that I can think of is that I installed miniconda on my computer a few days ago. It is set by default to any new Terminal window. However,I deactivate it by using conda deactivate Thx

caosegueda commented 2 months ago

Analyzing this error below leads me to believe that perhaps there should be a tts folder in ~/.local/share and there is none. The documentation stated that voice models would be found in this folder. Perhaps this might be part of the problem.

ERROR: Could not find a version that satisfies the requirement TTS (from epub2tts) (from versions: none)

aedocw commented 2 months ago

Hmm, this is pretty strange, doing the install in a virtual environment should have cleared the issues.

There's a possibility there were things missing from the requirements.txt file in the repo recently.

Let's try one more thing. In the repo, do a git pull to make sure it's got the latest version of everything. Then with a virtual environment activated, try running pip install . --upgrade --force-reinstall. This should make pip try installing everything fresh (rather than relying on cached copies). Let me know how that goes, thanks!

caosegueda commented 1 month ago

Hello. Unfortunately, this did not work. I am still trying to find a solution. Thanks.

aedocw commented 1 month ago

Thanks for following up. Can you try pip install TTS==0.22.0 in the virtual environment just to see if Coqui-TTS will install on it's own? If that installs on it's own you might be able to run pip install . for epub2tts.

Depending on what speech synthesis you're looking for, you might try https://github.com/aedocw/epub2tts-edge . That version has a much smaller set of dependencies, but only offers MS Edge TTS.

caosegueda commented 1 month ago

Thanks for all your help, again I am not a developer by any means, however this is how I solved this problem and wanted to recreate my steps in the event a future user needs the details. I suspect that the current version of python 3.12.3 is not compatible with TTS.

1) Dowloaded python 3.11.9 installer directly from the python website and installed. Note- I was under the impression that by using pyenv install 3.11.9 python version 3.11.9 was installed. Based on some research I determined that pyenv is not a stable way of installing python. https://stackoverflow.com/questions/1534210/use-different-python-version-with-virtualenv

2) After installing python 3.11.9, I ran across an error where pip was not recognized. I then followed steps as indicated at this website, a fix that we straightforward enough. https://www.reddit.com/r/learnpython/comments/12ekz36/how_to_install_pip_in_python_311_i_cant_find_it/?rdt=53151&onetap_auto=true&one_tap=true

3) The final error was a certificate error `urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate in certificate chain (_ssl.c:1006)>. 3.11' this problem was solved by referring to this stackoverflow discussion - https://stackoverflow.com/questions/50236117/scraping-ssl-certificate-verify-failed-error-for-http-en-wikipedia-oRg. In a nutshell, If you're using macOS go to Macintosh HD > Applications > Python3.11 folder (or whatever version of python you're using) > double click on "Install Certificates.command" file.

Finally (and I suspect this makes no difference) is that I ran this code in mac Ventura whereas earlier I was using Monterey.