Задать вопрос
@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")

Оба выдают тот же вывод. Буду очень благодарен за потраченное время.
  • Вопрос задан
  • 165 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Python-разработчик: расширенный курс + нейросети
    12 месяцев
    Далее
  • Хекслет
    Python-разработчик
    10 месяцев
    Далее
  • Skillbox
    Python-разработчик
    10 месяцев
    Далее
Решения вопроса 1
@dim5x
ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
Используйте:
torch==2.5.1
torchaudio==2.5.1
transformers==4.38.2

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

З.Ы. В русском варианте language забыли указать.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Everything_is_bad
Используя такие давно необновляемые библиотеки, у которых в зависимостях не прописаны конкретные версии или их лимиты сверху, ты не можешь надеяться на то, что в текущий момент, у этих зависимостей не сломались совместимости. Проверяй какая версия transformers у тебя поставилась и есть ли в этой версии BeamSearchScorer

jarvis
самое бесполезное, чем можно заниматься новичкам, ты ничего не понимаешь в коде, которого у тебя дофига.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
от 100 000 до 150 000 ₽
Hard Bootstrapping LLC. Санкт-Петербург
от 250 000 до 500 000 ₽
ITK academy Воронеж
от 75 000 ₽