Dieses Projekt ist von Silero-API-Server inspiriert und verwendet XTTSV2.
Dieser Server wurde für SillyTavern erstellt, aber Sie können ihn für Ihre Anforderungen verwenden
Fühlen Sie sich frei, PRS zu erstellen oder den Code für Ihre eigenen Anforderungen zu verwenden
Es gibt eine Google Collab -Version, die Sie verwenden können, wenn Ihr Computer schwach ist.
Wenn Sie nach einer Option für normale XTTs suchen
Vor kurzem habe ich wenig Zeit für dieses Projekt, daher rate ich Ihnen, ein ähnliches Projekt kennenzulernen
Sie können alle Änderungen auf der Release -Seite verfolgen
Einfache Installation:
pip install xtts-api-serverDadurch werden alle erforderlichen Abhängigkeiten installiert, einschließlich einer CPU -Unterstützung nur von Pytorch
Ich empfehle Ihnen, die GPU -Version zu installieren, um die Verarbeitungsgeschwindigkeit zu verbessern (bis zu dreimal schneller).
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
Es wird eine Dockerfile bereitgestellt, um ein Docker-Image zu erstellen, und eine Docker-Compose.yml-Datei wird bereitgestellt, um den Server mit Docker als Dienst auszuführen.
Sie können das Bild mit dem folgenden Befehl erstellen:
mkdir xtts-api-server
cd xtts-api-server
docker run -d daswer123/xtts-api-server
ODER
cd docker
docker compose buildDann können Sie den Server mit dem folgenden Befehl ausführen:
docker compose up # or with -d to run in background python -m xtts_api_server wird auf Standard -IP und Port ausgeführt (Localhost: 8020)
Verwenden Sie das Flag --deepspeed , um das Ergebnis schnell zu verarbeiten (2-3x Beschleunigung)
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
Sie können den Pfad zur Datei als Text angeben, dann zählt der Pfad und die Datei wird geäußert
Sie können Ihr eigenes Modell laden. Dafür müssen Sie einen Ordner in Modellen erstellen und das Modell mit Konfigurationen laden. Beachten Sie im Ordner 3 Dateien config.json vocab.json model.pth
Wenn Sie möchten, dass Ihr Host zuhört, verwenden Sie -HS 0.0.0.0 oder verwenden Sie -Listen
Das Flag -t oder -tunnel wird benötigt, damit Sie den richtigen Link erhalten, um die Vorschau zu hören, wenn Sie Lautsprecher erhalten. Weitere Informationen hier
Modell-Source definiert in welchem Format Sie XTTs verwenden möchten:
local - lädt standardmäßig Version 2.0.2, aber Sie können die Version über das -v -Flag angeben, das Modell in den Modelsordner speichert und XttsConfig und inference verwendet.apiManual - lädt standardmäßig Version 2.0.2, aber Sie können die Version über das -v -Flag angeben, das Modell in den Modelsordner speichert und die Funktion tts_to_file aus der TTS -API verwendetapi - lädt die neueste Version des Modells. Die -v -Flagge funktioniert nicht.Alle Versionen des XTTSV2 -Modells finden Sie hier. Der Model -Versionsname ist der gleiche wie der Zweigname [v2.0.2, v2.0.3, main] usw.
Wenn Sie zum ersten Mal ausführen oder generieren, müssen Sie möglicherweise bestätigen, dass Sie sich der Verwendung von XTTs erklären.
Mit dem Streaming -Modus können Sie Audio abrufen und ihn fast sofort zurückspielen. Es hat jedoch eine Reihe von Einschränkungen.
Sie können sehen, wie dieser Modus hier und hier funktioniert
Nun über die Einschränkungen
tts_to_file nur tts_to_audio und es gibt 1 Sekunde der Stille zurück. Sie können die Version des XTTS -Modells mit dem -v -Flag angeben.
Der verbesserte Streaming -Modus eignet sich für komplexe Sprachen wie Chinesisch, Japanisch, Hindi oder wenn Sie möchten, dass die Sprachmaschine bei der Bearbeitung der Sprache weitere Informationen berücksichtigt.
--stream-play-sync Flag-Ermöglicht Ihnen, alle Nachrichten in der Warteschlangenordnung abzuspielen, nützlich, wenn Sie Gruppen-Chats verwenden. In Sillytern müssen Sie das Streaming ausschalten, um richtig zu arbeiten
API -Dokumente können von http: // localhost: 8020/docs zugegriffen werden
Standardmäßig sollte der Ordner speakers im Ordner angezeigt werden.
Sie können die Ordner für Lautsprecher und den Ordner für die Ausgabe über die API ändern.
Der folgende Beitrag ist ein Angebot von Benutzermaterial1276 von Reddit
Einige Vorschläge zur Herstellung guter Proben
Halten Sie sie ungefähr 7-9 Sekunden lang. Länger ist nicht unbedingt besser.
Stellen Sie sicher, dass der Audio in eine Mono, 22050 Hz 16 -Bit -WAV -Datei abgetastet ist. Sie werden die Verarbeitung mit großem % verlangsamen und es scheint sonst zu einer schlechten Qualitätsergebnisse zu führen (basierend auf einigen Tests). 24000 Hz ist die Qualität, bei der es sowieso ausgibt!
Wählen Sie mit der neuesten Version von Audacity Ihren Clip und Tracks> auf 22050 Hz wieder ein und verfolgen Sie dann> Mix> Stereo zu Mono. und dann Datei> Audio exportieren und als WAV von 22050Hz speichern
Wenn Sie Audioreinigung durchführen müssen, tun Sie dies, bevor Sie es auf die oben genannten Einstellungen (Mono, 22050 Hz, 16 Bit) komprimieren.
Stellen Sie sicher, dass der von Ihnen verwendete Clip keine Hintergrundgeräusche oder Musik auf z. B. viele Filme haben ruhige Musik, wenn viele der Schauspieler sprechen. In schlechter Audio wird ein Zischen haben, das aufgeräumt werden muss. Die KI wird dies aufnehmen, auch wenn wir es nicht tun, und verwenden Sie es bis zu einem gewissen Grad in der simulierten Stimme in gewissem Maße, sodass sauberes Audio der Schlüssel ist!
Versuchen Sie, Ihren Clip zu einer der netten fließenden Sprache zu machen, wie die enthaltenen Beispieldateien. Keine großen Pausen, Lücken oder andere Geräusche. Vorzugsweise eine, die die Person, die Sie kopieren möchten, einen kleinen Stimmbereich zeigen. Beispieldateien sind hier
Stellen Sie sicher, dass der Clip nicht mit atemischen Geräuschen beginnt oder endet (einatmen usw.).
Die Verwendung von AI -generierten Audioclips kann unerwünschte Sounds als eine Kopie/Simulation einer Stimme einführen. Dies müsste jedoch getestet werden.