Я использую python3.11, linux. Как я понял возможно это из-за несовместимости библиотек (если это так можете пожалуйста написать нужную(ые) версию), но может что то не так сделал. Если же это так, есть ли способ подкорректировать код для новых версий библиотек. Если что код взят из стандартного Readme.md Coqui TTS.
Вывод:
python3.11 test.py
<TTS.utils.manage.ModelManager object at 0x7fe7ea39e250>
> tts_models/multilingual/multi-dataset/xtts_v2 is already downloaded.
Traceback (most recent call last):
File "/home/sakair/Prog/jarvis/test.py", line 11, in <module>
tts = TTS("tts_models/multilingual/multi-dataset/xtts_v2").to(device)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/sakair/Prog/jarvis/venv/lib/python3.11/site-packages/TTS/api.py", line 74, in __init__
self.load_tts_model_by_name(model_name, gpu)
File "/home/sakair/Prog/jarvis/venv/lib/python3.11/site-packages/TTS/api.py", line 177, in load_tts_model_by_name
self.synthesizer = Synthesizer(
^^^^^^^^^^^^
File "/home/sakair/Prog/jarvis/venv/lib/python3.11/site-packages/TTS/utils/synthesizer.py", line 109, in __init__
self._load_tts_from_dir(model_dir, use_cuda)
File "/home/sakair/Prog/jarvis/venv/lib/python3.11/site-packages/TTS/utils/synthesizer.py", line 161, in _load_tts_from_dir
config = load_config(os.path.join(model_dir, "config.json"))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/sakair/Prog/jarvis/venv/lib/python3.11/site-packages/TTS/config/__init__.py", line 97, in load_config
config_class = register_config(model_name.lower())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/sakair/Prog/jarvis/venv/lib/python3.11/site-packages/TTS/config/__init__.py", line 40, in register_config
from TTS.tts.configs.xtts_config import XttsConfig
File "/home/sakair/Prog/jarvis/venv/lib/python3.11/site-packages/TTS/tts/configs/xtts_config.py", line 5, in <module>
from TTS.tts.models.xtts import XttsArgs, XttsAudioConfig
File "/home/sakair/Prog/jarvis/venv/lib/python3.11/site-packages/TTS/tts/models/xtts.py", line 12, in <module>
from TTS.tts.layers.xtts.stream_generator import init_stream_support
File "/home/sakair/Prog/jarvis/venv/lib/python3.11/site-packages/TTS/tts/layers/xtts/stream_generator.py", line 13, in <module>
from transformers import (
ImportError: cannot import name 'BeamSearchScorer' from 'transformers' (/home/sakair/Prog/jarvis/venv/lib/python3.11/site-packages/transformers/__init__.py)
Сам код:
import torch
from TTS.api import TTS
# Get device
device = "cuda" if torch.cuda.is_available() else "cpu"
# List available TTS models
print(TTS().list_models())
# Init TTS
tts = TTS("tts_models/multilingual/multi-dataset/xtts_v2").to(device)
# Run TTS
# ❗ Since this model is multi-lingual voice cloning model, we must set the target speaker_wav and language
# Text to speech list of amplitude values as output
wav = tts.tts(text="Привет мир", speaker_wav="ok.wav", language="ru")
# Text to speech to a file
tts.tts_to_file(text="Привет мир", speaker_wav="ok.wav", language="", file_path="output.wav")
import torch
from TTS.api import TTS
# Get device
device = "cuda" if torch.cuda.is_available() else "cpu"
# List available TTS models
print(TTS().list_models())
# Init TTS
tts = TTS("tts_models/multilingual/multi-dataset/xtts_v2").to(device)
# Run TTS
# ❗ Since this model is multi-lingual voice cloning model, we must set the target speaker_wav and language
# Text to speech list of amplitude values as output
wav = tts.tts(text="Hello world!", speaker_wav="my/cloning/audio.wav", language="en")
# Text to speech to a file
tts.tts_to_file(text="Hello world!", speaker_wav="my/cloning/audio.wav", language="en", file_path="output.wav")
Оба выдают тот же вывод. Буду очень благодарен за потраченное время.