TTS-with-RVC-dev

Форк
0

6 месяцев назад
10 месяцев назад
4 месяца назад
4 месяца назад
5 месяцев назад
6 месяцев назад
README.md

TTS-with-RVC 0.1.3

en

TTS-with-RVC (Text-to-Speech with RVC) — это пакет, предназначенный для улучшения возможностей систем text-to-speech (TTS) с помощью модуля RVC. Пакет позволяет пользователям не только конвертировать текст в речь, но и персонализировать и настраивать голосовой вывод в соответствии с их предпочтениями, поддерживая RVC.

Для работы TTS-with-RVC требуется Pytorch с поддержкой CUDA или MPS.

Может содержать ошибки. Сообщайте о проблемах.

Примечания к выпуску

0.1.3 - исправлено много проблем, некоторая оптимизация.

Необходимые условия

Необходимо установить Python<=3.10 (рекомендуется 3.10).

Необходимо поддержка CUDA или MPS для вашего GPU (MPS пока не тестировалась).

Установка

  1. Установите pytorch с поддержкой CUDA или MPS здесь: https://pytorch.org/get-started/locally/

  2. Затем установите TTS-with-RVC с помощью pip install:

python -m pip install git+https://github.com/Atm4x/tts-with-rvc.git#egg=tts_with_rvc
  1. После этого установите rvc:
python -m pip install git+https://github.com/Atm4x/rvc-lib.git@dev#egg=rvc
  1. Затем установите rvc как репозиторий:
python -m pip install -e git+https://github.com/Atm4x/rvc-lib.git#egg=rvclib
  1. Под конец установите исправленную версию rvc-tts-pipeline:
python -m pip install git+https://github.com/Atm4x/rvc-tts-pipeline-fix.git@dev#egg=rvc_tts_pipe
  1. И, наконец, установите ffmpeg, если он у вас еще не установлен, и добавьте его в папку со скриптом или лучше добавьте ffmpeg в Переменные среды в Path.

Как это работает

  1. Text-to-Speech (TTS): Пользователи вводят текст в модуль TTS, который затем обрабатывает его и генерирует соответствующую речь в виде файла, сохраненного в введенной входной директории.
  2. RVC: При наличии .pth файла, модуль RVC считывает сгенерированный аудиофайл, обрабатывает его и сохраняет новый аудиофайл в output_directory с замененным голосом.

Использование

TTS-with-RVC имеет класс TTS_RVC. Есть несколько необходимых параметров:

rvc_path - путь к вашему установленному каталогу rvclib (обычно в папке venv/src).

input_directory - путь к вашей входной директории (временная директория для сохранения вывода TTS).

model_path - путь к вашему .pth модели.

И необязательные параметры:

voice - голос из списка edge-tts (по умолчанию "ru-RU-DmitryNeural").

output_directory - директория для сохранения озвученных аудиофайлов (temp/ по умолчанию).

Для установки голоса сначала создайте экземпляр TTS_RVC:

from tts_with_rvc import TTS_RVC
tts = TTS_RVC(rvc_path="src\\rvclib", model_path="models\\YourModel.pth", input_directory="input\\")

Все доступные голоса размещены в файле voices.txt:

tts.get_voices() отключен на неопределенный срок из-за проблем.

Далее установите голос для TTS с помощью функции tts.set_voice():

tts.set_voice("un-Un-SelectedNeural")

Установка соответствующего языка необходима, если вы используете другие языки для озвучивания!

И последний шаг — вызов функции tts для замены голоса:

path = tts(text="Привет, мир!", pitch=6)

Параметры:

text - текст для TTS (обязательно).

pitch - высота тона для RVC (необязательно, отрицательные значения совместимы, по умолчанию 0).

tts_rate - дополнительная скорость речи (необязательно, отрицательные значения совместимы, по умолчанию 0).

tts_volume - дополнительная громкость речи (необязательно, отрицательные значения совместимы, по умолчанию 0).

tts_pitch - дополнительная высота тона для аудио, сгенерированного TTS (необязательно, отрицательные значения совместимы, не рекомендуется, по умолчанию 0).

output_filename - заданный путь для озвученного аудио (необязательно, по умолчанию None).

Пример использования

Простой пример для озвучивания текста:

from tts_with_rvc import TTS_RVC
from playsound import playsound
tts = TTS_RVC(rvc_path="src\\rvclib", model_path="models\\DenVot.pth", input_directory="input\\")
tts.set_voice("ru-RU-DmitryNeural")
path = tts(text="Привет, мир!", pitch=6)
playsound(path)

Параметры текста

Есть некоторые параметры текста для интеграции, такие как добавление модуля GPT.

Вы можете обработать их с помощью process_args в классе TTS_RVC:

--tts-rate (value) - параметр TTS для изменения скорости речи (отрицательное значение для уменьшения скорости и положительное для увеличения).

--tts-volume (value) - параметр TTS для изменения громкости речи (отрицательное значение для уменьшения громкости и положительное для увеличения) Кажется, не работает из-за преобразования модуля RVC.

--tts-pitch (value) - параметр TTS для изменения высоты тона аудио, сгенерированного TTS (отрицательное значение для уменьшения высоты тона и положительное для увеличения) Не рекомендую использовать, так как модуль RVC имеет свой собственный pitch для вывода.

--rvc-pitch (value) - параметр RVC для изменения высоты тона выходного аудио (отрицательное значение для уменьшения высоты тона и положительное для увеличения).

Теперь принцип работы:

from tts_with_rvc import TTS_RVC
tts = TTS_RVC(rvc_path="src\\rvclib", model_path="models\\YourModel.pth", input_directory="input\\")
# Этот метод возвращает аргументы и оригинальный текст без этих текстовых параметров
args, message = tts.process_args(message)

Переменная args содержит массив со следующей структурой:

args[0] - скорость TTS.

args[1] - громкость TTS.

args[2] - высота тона TTS.

args[3] - высота тона RVC.

И теперь мы готовы использовать это для генерации:

path = tts(message, pitch=args[3],
tts_rate=args[0],
tts_volume=args[1],
tts_pitch=args[2])

Исключения

  1. NameError: NameError: name 'device' is not defined

Убедитесь, что ваше устройство поддерживает CUDA и вы установили правильную версию Torch.

  1. RuntimeError: RuntimeError: Failed to load audio: {e}

Убедитесь, что вы установили ffmpeg.

Лицензия

Нет лицензии.

Авторы

Atm4x (Артем Дикарев).

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.