TTS-with-RVC

0

Описание

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

Языки

Python

Сообщить о нарушении
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 (Артём Дикарев)

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

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

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

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