이 프로젝트는 Silero-Api-Server에서 영감을 얻었으며 XTTSV2를 사용합니다.
이 서버는 Sillytavern 용으로 생성되었지만 필요에 따라 사용할 수 있습니다.
PRS를 만들거나 자신의 필요에 따라 코드를 사용하십시오.
컴퓨터가 약한 경우 사용할 수있는 Google Collab 버전이 있습니다.
정상적인 xtts 옵션을 찾고 있다면 여기 https://github.com/daswer123/xtts-webui를 사용하십시오.
최근 에이 프로젝트를 수행 할 시간이 거의 없으므로 비슷한 프로젝트에 익숙해지는 것이 좋습니다.
릴리스 페이지에서 모든 변경 사항을 추적 할 수 있습니다.
간단한 설치 :
pip install xtts-api-serverCPU 지원 전용 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-Compose가 제공하여 Docker-Compose.yml 파일을 제공하기 위해 Dockerfile이 제공됩니다.
다음 명령으로 이미지를 작성할 수 있습니다.
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 및 포트에서 실행됩니다 (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 플래그가 필요합니다. 더 많은 정보는 여기에 있습니다
Model-Source는 XTTS를 사용하려는 형식을 정의합니다.
local - 버전 2.0.2를 기본적으로로드하지만 -V 플래그를 통해 버전을 지정할 수 있으며 모델은 모델 폴더에 저장하고 XttsConfig 및 inference 사용합니다.apiManual 버전 2.0.2를 기본적으로로드하지만 -v 플래그를 통해 버전을 지정할 수 있습니다. 모델은 모델 폴더에 저장하고 TTS API의 tts_to_file 함수를 사용합니다.api 최신 버전의 모델을로드합니다. -V 플래그는 작동하지 않습니다.XTTSV2 모델의 모든 버전은 여기에서 찾을 수 있습니다. 모델 버전 이름은 분기 이름 [v2.0.2, v2.0.3, main] 등과 동일합니다.
처음 실행하거나 생성 할 때 XTTS 사용에 동의하는지 확인해야 할 수도 있습니다.
스트리밍 모드를 사용하면 오디오를 얻고 거의 즉시 재생할 수 있습니다. 그러나 여러 제한 사항이 있습니다.
이 모드가 여기에서 어떻게 작동하는지 알 수 있습니다.
이제 한계에 대해
tts_to_file 만 tts_to_audio 만 작동하며 1 초의 침묵을 반환합니다. -v 플래그를 사용하여 XTTS 모델의 버전을 지정할 수 있습니다.
개선 된 스트리밍 모드는 중국어, 일본어, 힌디어와 같은 복잡한 언어에 적합하거나 언어 엔진이 음성을 처리 할 때 더 많은 정보를 고려할 수 있도록하려면 적합합니다.
--stream-play-sync Flag- 그룹 채팅을 사용하는 경우 모든 메시지를 큐 순서로 재생할 수 있습니다. Sillytavern에서는 올바르게 작동하려면 스트리밍을 끄야합니다.
API 문서는 http : // localhost : 8020/docs에서 액세스 할 수 있습니다
기본적으로 speakers 폴더는 폴더에 나타나야합니다. 음성 샘플과 함께 WAV 파일을 넣어야합니다. 폴더를 만들고 몇 가지 음성 샘플을 넣을 수도 있습니다. 더 정확한 결과를 얻을 수 있습니다.
스피커 용 폴더와 API를 통해 출력 폴더를 변경할 수 있습니다.
다음 게시물은 Reddit의 사용자 자료 1276의 견적입니다.
좋은 샘플 만들기에 대한 몇 가지 제안
약 7-9 초 길이를 유지하십시오. 더 오래 반드시 더 나은 것은 아닙니다.
오디오가 모노, 22050Hz 16 비트 WAV 파일로 다운되어 있는지 확인하십시오. 대량으로 처리 속도를 늦출 것이며 그렇지 않으면 품질이 좋지 않은 것으로 보입니다 (몇 가지 테스트에 따라). 24000Hz는 어쨌든 출력하는 품질입니다!
최신 버전의 Audacity를 사용하여 클립 및 트랙> RESAPLE를 22050Hz로 선택한 다음 트랙> 믹스> 스테레오를 모노로 선택하십시오. 그리고 파일> 오디오 내보내기, 22050Hz의 WAV로 저장
오디오 청소를 수행 해야하는 경우 위의 설정 (Mono, 22050Hz, 16 비트)으로 압축하기 전에 수행하십시오.
사용하는 클립에 배경 소음이나 음악이 없는지 확인하십시오. 품질이 좋지 않은 오디오에는 정리가 필요한 히스가 있습니다. AI는 우리가하지 않더라도 어느 정도까지도 시뮬레이션 된 음성으로 어느 정도 사용하더라도 이것을 선택할 것입니다. 따라서 깨끗한 오디오는 핵심입니다!
포함 된 예제 파일과 같이 클립을 멋진 흐르는 연설 중 하나로 만드십시오. 큰 일시 정지, 틈 또는 기타 소리가 없습니다. 바람직하게는 당신이 복사하려는 사람이 약간의 보컬 범위를 보여줄 것입니다. 예제 파일이 여기에 있습니다
클립이 숨막히는 소리 (호흡/아웃 등)로 시작하거나 끝나지 않도록하십시오.
AI 생성 오디오 클립을 사용하면 원치 않는 사운드가 이미 음성 사본/시뮬레이션으로 소개 될 수 있지만 테스트가 필요합니다.