TTS-with-RVC

Форк
0

10 месяцев назад
8 месяцев назад
10 месяцев назад
10 месяцев назад
10 месяцев назад
README.md

TTS-with-RVC 0.1.2

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

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

Пакет может содержать ошибки. Сообщите о проблеме в случае ошибки как Issue (на данный момент, в GitHub).

Установка

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

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

pip install -e git+https://github.com/SunSual/tts-with-rvc.git#egg=tts-with-rvc
  1. После этого установите "rvc":
pip install -e git+https://github.com/JarodMica/rvc.git#egg=rvc
  1. И, наконец-то, установите исправленную версию rvc-tts-pipeline:
pip install -e git+https://github.com/SunSual/rvc-tts-pipeline-fix.git#egg=rvc_tts_pipe

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

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

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

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

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

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

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

И опциональные параметры:

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

Чтобы получить список голосов, сначала создайте экземпляр TTS_RVC:

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

Следующий шаг - вызов функции tts.get_voices() и установка голоса:

voices = tts.get_voices()
print(voices)
tts.set_voice(voices[0])

Этот код выведет все доступные голоса, а затем вы выберете их любым методом (например, voices[0]).

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

И последний шаг - вызов tts для замены голоса:

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

Параметры:

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

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

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

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

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

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

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

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

Текстовые параметры

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

Вы можете обработать текст через функцию tts.process_args() в классе TTS_RVC:

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

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

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

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

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

from inference import TTS_RVC
tts = TTS_RVC(rvc_path="src\\rvc", model_path="models\\YourModel.pth", input_directory="input\\")
# This method returns arguments and original text without these text parameters
args, message = tts.process_args(message)

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

args[0] - TTS Скорость речи

args[1] - TTS Громкость речи

args[2] - TTS Высота голоса

args[3] - RVC Высота голоса

В переменную message записывается эта же строка с вырезанными текстовыми параметрами.

Теперь мы готовы генерировать:

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

Дополнительная информация

Найти различные голоса и их .pth файлы можно на сервисе weights.gg

Лицензия

Отсутствует

Авторы

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

Описание

TTS с RVC модулем для генерации аудиозаписей из текста в формате .wav

Языки

Python

Сообщить о нарушении

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

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

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

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