TTS-with-RVC
Описание
TTS с RVC модулем для генерации аудиозаписей из текста в формате .wav
Языки
Python
TTS-with-RVC 0.1.2
TTS-with-RVC (Text-to-Speech с RVC) - это пакет, предназначенный для расширения возможностей систем преобразования текста в речь (TTS) за счет внедрения модуля RVC. Пакет позволяет пользователям не только преобразовывать текст в речь, но и персонализировать и настраивать голосовой вывод в соответствии со своими предпочтениями с помощью поддержки RVC.
Для работы TTS-with-RVC требуется Pytorch с CUDA или MPS.
Пакет может содержать ошибки. Сообщите о проблеме в случае ошибки как Issue (на данный момент, в GitHub).
Установка
-
Установите Pytorch с поддержкой CUDA или MPS здесь: https://pytorch.org/get-started/locally/
-
Затем установите TTS-with-RVC с помощью pip install:
pip install -e git+https://github.com/SunSual/tts-with-rvc.git#egg=tts-with-rvc
- После этого установите "rvc":
pip install -e git+https://github.com/JarodMica/rvc.git#egg=rvc
- И, наконец-то, установите исправленную версию rvc-tts-pipeline:
pip install -e git+https://github.com/SunSual/rvc-tts-pipeline-fix.git#egg=rvc_tts_pipe
Как это работает
- Text-to-Speech (TTS): Пользователь вводит текст в модуль TTS, который затем обрабатывает его и генерирует соответствующую речь в виде файла, сохраненного в указанной папке для ввода.
- RVC: С указанным .pth файлом (веса модели голоса), модуль RVC считывает сгенерированный аудиофайл, обрабатывает его и генерирует новое аудио, сохраненное в директории output с замененным голосом.
Использование
В TTS-with-RVC есть класс под названием
. В нем есть несколько параметров, которые необходимы:
- путь к папке установленного вами rvc (обычно в папке venv/src)
- путь к папке input (Папка для временного сохранения вывода TTS)
- путь к вашей модели .pth
И опциональные параметры:
- голос из списка голосов 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\\")
Следующий шаг - вызов функции
и установка голоса:
voices = tts.get_voices()print(voices)tts.set_voice(voices[0])
Этот код выведет все доступные голоса, а затем вы выберете их любым методом (например,
).
Изменять голос на голос с другим языком необходимо, если вы используете другие языки для озвучки!
И последний шаг - вызов
для замены голоса:
path = tts(text="Привет, мир!", pitch=6)
Параметры:
- текст для TTS (обязательно)
- высота тона для RVC (опционально, поддерживаются отрицательные значения, по умолчанию 0)
- дополнительная скорость речи (опционально, поддерживаются отрицательные значения, по умолчанию 0)
- дополнительная громкость речи (опционально, поддерживаются отрицательные значения, по умолчанию 0)
- дополнительная высота тона генерируемого TTS аудио (опционально, поддерживаются отрицательные значения, не рекомендуется, по умолчанию 0)
Пример использования
Простой пример озвучки текста с кастомным голосом:
from inference import TTS_RVCfrom 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 параметр для изменения скорости речи (отрицательное значение для уменьшения скорости и положительное значение для увеличения скорости)
- TTS параметр для изменения громкости речи (отрицательное значение для уменьшения громкости и положительное значение для увеличения громкости) Похоже, что он не работает из-за преобразования модуля RVC.
- TTS параметр для изменения высоты тона генерируемого TTS-аудио (отрицательное значение для уменьшения высоты тона и положительное значение для увеличения высоты тона) Я не рекомендую использовать это, потому что модуль RVC имеет свою собственную
для вывода.
- параметр 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 parametersargs, message = tts.process_args(message)
Переменная
содержит массив со следующей структурой:
- TTS Скорость речи
- TTS Громкость речи
- TTS Высота голоса
- RVC Высота голоса
В переменную
записывается эта же строка с вырезанными текстовыми параметрами.
Теперь мы готовы генерировать:
path = tts(message, pitch=args[3], tts_rate=args[0], tts_volume=args[1], tts_pitch=args[2])
Дополнительная информация
Найти различные голоса и их .pth файлы можно на сервисе weights.gg
Лицензия
Отсутствует
Авторы
Atm4x (Артём Дикарев)