Этот проект вдохновлен Silero-API-сервером и использует XTTSV2.
Этот сервер был создан для SillyTavern, но вы можете использовать его для ваших нужд
Не стесняйтесь делать PRS или использовать код для ваших собственных потребностей
Есть версия Collab Google, вы можете использовать ее, если ваш компьютер слаб.
Если вы ищете опцию для обычных XTTS Используйте здесь https://github.com/daswer123/xtts-webui
Недавно у меня мало времени для этого проекта, поэтому я советую вам познакомиться с аналогичным проектом
Вы можете отслеживать все изменения на странице выпуска
Простая установка:
pip install xtts-api-serverЭто установит все необходимые зависимости, в том числе версия Pytorch только для поддержки процессора.
Я рекомендую вам установить версию GPU для повышения скорости обработки (в 3 раза быстрее)
python -m venv venv
venv S cripts a ctivate
pip install xtts-api-server
pip install torch==2.1.1+cu118 torchaudio==2.1.1+cu118 --index-url https://download.pytorch.org/whl/cu118sudo apt install -y python3-dev python3-venv portaudio19-dev
python -m venv venv
source venv b in a ctivate
pip install xtts-api-server
pip install torch==2.1.1+cu118 torchaudio==2.1.1+cu118 --index-url https://download.pytorch.org/whl/cu118 # Clone REPO
git clone https://github.com/daswer123/xtts-api-server
cd xtts-api-server
# Create virtual env
python -m venv venv
venv/scripts/activate or source venv/bin/activate
# Install deps
pip install -r requirements.txt
pip install torch==2.1.1+cu118 torchaudio==2.1.1+cu118 --index-url https://download.pytorch.org/whl/cu118
# Launch server
python -m xtts_api_server
Для создания изображения Docker предоставляется Dockerfile, а файл Docker-compose.yml предоставляется для запуска сервера с помощью Docker Compose в качестве службы.
Вы можете построить изображение со следующей командой:
mkdir xtts-api-server
cd xtts-api-server
docker run -d daswer123/xtts-api-server
ИЛИ
cd docker
docker compose buildЗатем вы можете запустить сервер со следующей командой:
docker compose up # or with -d to run in background python -m xtts_api_server будет работать по IP и PORT по умолчанию (LocalHost: 8020)
Используйте флаг --deepspeed , чтобы быстро обработать результат (2-3-кратное ускорение)
usage: xtts_api_server [-h] [-hs HOST] [-p PORT] [-sf SPEAKER_FOLDER] [-o OUTPUT] [-t TUNNEL_URL] [-ms MODEL_SOURCE] [--listen] [--use-cache] [--lowvram] [--deepspeed] [--streaming-mode] [--stream-play-sync]
Run XTTSv2 within a FastAPI application
options:
-h, --help show this help message and exit
-hs HOST, --host HOST
-p PORT, --port PORT
-d DEVICE, --device DEVICE `cpu` or `cuda`, you can specify which video card to use, for example, `cuda:0`
-sf SPEAKER_FOLDER, --speaker-folder The folder where you get the samples for tts
-o OUTPUT, --output Output folder
-mf MODELS_FOLDERS, --model-folder Folder where models for XTTS will be stored, finetuned models should be stored in this folder
-t TUNNEL_URL, --tunnel URL of tunnel used (e.g: ngrok, localtunnel)
-ms MODEL_SOURCE, --model-source ["api","apiManual","local"]
-v MODEL_VERSION, --version You can download the official model or your own model, official version you can find [here](https://huggingface.co/coqui/XTTS-v2/tree/main) the model version name is the same as the branch name [v2.0.2,v2.0.3, main] etc. Or you can load your model, just put model in models folder
--listen Allows the server to be used outside the local computer, similar to -hs 0.0.0.0
--use-cache Enables caching of results, your results will be saved and if there will be a repeated request, you will get a file instead of generation
--lowvram The mode in which the model will be stored in RAM and when the processing will move to VRAM, the difference in speed is small
--deepspeed allows you to speed up processing by several times, automatically downloads the necessary libraries
--streaming-mode Enables streaming mode, currently has certain limitations, as described below.
--streaming-mode-improve Enables streaming mode, includes an improved streaming mode that consumes 2gb more VRAM and uses a better tokenizer and more context.
--stream-play-sync Additional flag for streaming mod that allows you to play all audio one at a time without interruption
Вы можете указать путь к файлу в виде текста, затем количество пути, и файл будет озвучен
Вы можете загрузить свою собственную модель, для этого вам необходимо создать папку в моделях и загрузить модель с помощью конфигураций, примечание в папке должно быть 3 файлами config.json vocab.json model.pth
Если вы хотите, чтобы ваш хозяин прослушал, используйте -hs 0.0.0.0 или используйте -listen
Флаг -T или -Tunnel необходим, чтобы при получении динамиков через получение правильной ссылки услышат предварительный просмотр. Больше информации здесь
Модель-источник определяет, в каком формате вы хотите использовать XTT:
local - загружает версию 2.0.2 по умолчанию, но вы можете указать версию через флаг -V, модель сохраняет в папке моделей и использует XttsConfig и inference .apiManual - загружает версию 2.0.2 по умолчанию, но вы можете указать версию через флаг -V, модель сохраняет в папке моделей и использует функцию tts_to_file из API TTSapi - загрузит последнюю версию модели. Флаг -v не сработает.Все версии модели XTTSV2 можно найти здесь. Имя версии модели такое же, как и имя ветви [v2.0.2, v2.0.3, main] и т. Д.
В первый раз, когда вы запускаете или генерируете, вам может потребоваться подтвердить, что вы соглашаетесь использовать XTTS.
Потоковой режим позволяет вам получить аудио и воспроизводить его практически сразу. Тем не менее, он имеет ряд ограничений.
Вы можете увидеть, как работает этот режим здесь и здесь
Теперь об ограничениях
tts_to_file только tts_to_audio и возвращает 1 секунду молчания. Вы можете указать версию модели XTTS, используя флаг -v .
Улучшенный режим потоковой передачи подходит для сложных языков, таких как китайский, японский, хинди, или если вы хотите, чтобы языковой двигатель учитывал больше информации при обработке речи.
-Flag --stream-play-sync -позволяет воспроизводить все сообщения в порядке очереди, полезно, если вы используете групповые чаты. В SillyTavern вам нужно отключить потоковую передачу, чтобы работать правильно
Документы API можно получить от http: // localhost: 8020/docs
По умолчанию папка speakers должна появляться в папке, вам нужно поместить там файл wav с помощью голосового образца, вы также можете создать папку и поместить там несколько голосовых образцов, это даст более точные результаты
Вы можете изменить папки для динамиков и папку для вывода через API.
Следующее сообщение - это цитата пользовательского материала1276 от Reddit
Некоторые предложения по изготовлению хороших образцов
Держите их около 7-9 секунд в длину. Дольше не обязательно лучше.
Убедитесь, что звук не работает в моно, 22050 -Гц 16 -битном WAV -файле. Вы будете замедлить обработку на большой %, и в противном случае это приводит к низкокачественным результатам (в зависимости от нескольких тестов). 24000 Гц - это качество, которое он выводит в любом случае!
Используя последнюю версию Audacity, выберите свой клип и треки> Resimple до 22050 Гц, затем треки> Mix> Stereo to Mono. а затем File> Export Audio, сохранив его в виде волны 22050 Гц
Если вам нужно сделать какую -либо чистку звука, сделайте это, прежде чем сжать ее к вышеуказанным настройкам (Mono, 22050 Гц, 16 бит).
Убедитесь, что у клипа, который вы используете, нет фоновых шумов или музыки, например, многие фильмы имеют тихую музыку, когда говорят многие актеры. Аудио плохого качества будет иметь шипение, которое нужно прояснить. ИИ поднимет это, даже если мы этого не сделаем, и в некоторой степени использует его в некоторой степени имитируемым голосом, так что чистый звук является ключевым!
Попробуйте сделать ваш клип одной из хорошей текучивой речи, например, примеры примеров. Нет больших пауз, пробелов или других звуков. Предпочтительно тот, который человек, которого вы пытаетесь скопировать, покажет небольшой вокальный диапазон. Примеры файлов здесь
Убедитесь, что клип не запускается и не заканчивается хриплыми звуками (дыхание/выход и т. Д.).
Использование сгенерированных AI аудио -клипов может представлять нежелательные звуки в качестве уже копию/моделирование голоса, однако, это потребует тестирования.