Задать вопрос
@sakair

Почему код с coqui-tts не генерирует речь?

Я использую 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")

Оба выдают тот же вывод. Буду очень благодарен за потраченное время.
  • Вопрос задан
  • 69 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Python-разработчик: расширенный курс + нейросети
    12 месяцев
    Далее
  • Яндекс Практикум
    Python-разработчик
    10 месяцев
    Далее
  • Skillbox
    Python-разработчик
    10 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 2
@Everything_is_bad
Используя такие давно необновляемые библиотеки, у которых в зависимостях не прописаны конкретные версии или их лимиты сверху, ты не можешь надеяться на то, что в текущий момент, у этих зависимостей не сломались совместимости. Проверяй какая версия transformers у тебя поставилась и есть ли в этой версии BeamSearchScorer

jarvis
самое бесполезное, чем можно заниматься новичкам, ты ничего не понимаешь в коде, которого у тебя дофига.
Ответ написан
Комментировать
@dim5x
ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
Используйте:
torch==2.5.1
torchaudio==2.5.1
transformers==4.38.2

Запускал на Debian 13.

З.Ы. В русском варианте language забыли указать.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы