Решение ошибки ImportError: BeamSearchScorer в Coqui TTS XTTS v2

    При запуске скрипта синтеза речи на основе Coqui TTS XTTS v2 в среде Python 3.11 под Linux возникает ошибка импорта модуля BeamSearchScorer из библиотеки transformers. Проблема проявляется при попытке инициализации модели tts_models/multilingual/multi-dataset/xtts_v2.

    Анализ проблемы

    Трассировка ошибки указывает на несовместимость версий библиотек. Конкретно, модуль BeamSearchScorer был перемещён или переименован в более новых версиях transformers. Исходный код из стандартного README проекта Coqui TTS не работает "из коробки" с актуальными зависимостями.

    Текст ошибки

    ImportError: cannot import name 'BeamSearchScorer' from 'transformers'

    Предлагаемые решения

    Способ 1: Установка совместимых версий библиотек

    Создайте новое виртуальное окружение и установите проверенные версии:

    • transformers == 4.30.2
    • TTS == 0.20.1
    • torch >= 2.0.0 (соответствующая вашей системе версия CUDA)

    Команда для установки:

    pip install transformers==4.30.2 TTS==0.20.1 torch torchaudio

    Способ 2: Модификация кода для новых версий

    Если необходимо использовать актуальные версии библиотек, потребуется патчинг. В файле stream_generator.py замените импорт:

    Было:
    from transformers import (BeamSearchScorer, ...)

    Стало:
    from transformers.generation import BeamSearchScorer

    Полный путь к файлу в вашем случае: /home/sakair/Prog/jarvis/venv/lib/python3.11/site-packages/TTS/tts/layers/xtts/stream_generator.py

    Способ 3: Использование альтернативной модели

    Если решение с XTTS v2 критично, рассмотрите временный переход на другие модели из списка, доступного через TTS().list_models(), пока проблема не будет исправлена в основном репозитории.

    Проверка решения

    После применения одного из методов выполните минимальный тестовый скрипт:

    from TTS.api import TTS
    tts = TTS("tts_models/multilingual/multi-dataset/xtts_v2", progress_bar=False)
    print("Модель успешно загружена")

    Дополнительные рекомендации

    • Проверьте наличие обновлений Coqui TTS на GitHub - проблема может быть уже решена в новых коммитах
    • Для production-использования зафиксируйте версии всех зависимостей в requirements.txt
    • Убедитесь, что файл ok.wav существует в директории скрипта и имеет корректный формат