⚡ Un serveur ONNX est conçu pour une inférence rapide, en prenant en charge les paramètres de streaming et d'inférence supplémentaires pour activer les paramètres de préférence du modèle et optimiser les performances.
Nous proposons des systèmes d'appels prêts à l'emploi.
client = VITS ( "http://127.0.0.1:9557" )
res = client . generate_voice ( model_id = "model_01" , text = "你好,世界!" , speaker_id = 0 , audio_type = "wav" ,
length_scale = 1.0 , noise_scale = 0.5 , noise_scale_w = 0.5 , auto_parse = True )
with open ( "output.wav" , "wb" ) as f :
for chunk in res . iter_content ( chunk_size = 1024 ):
if chunk :
f . write ( chunk ) Nous vous recommandons d'utiliser un environnement virtuel pour isoler l'environnement d'exécution. Étant donné que les dépendances de ce projet peuvent potentiellement perturber votre bibliothèque de dépendances, nous vous recommandons d'utiliser pipenv pour gérer le package de dépendance.
La configuration est dans .env , y compris les champs suivants:
VITS_SERVER_HOST = 0.0.0.0
VITS_SERVER_PORT = 9557
VITS_SERVER_RELOAD = false
# VITS_SERVER_WORKERS=1
# VITS_SERVER_INIT_CONFIG="https://....json"
# VITS_SERVER_INIT_MODEL="https://.....pth or onnx"ou vous pouvez utiliser la commande suivante pour définir la variable d'environnement:
export VITS_SERVER_HOST= " 0.0.0.0 "
export VITS_SERVER_PORT= " 9557 "
export VITS_SERVER_RELOAD= " false "
export VITS_DISABLE_GPU= " false "
VITS_SERVER_RELOAD Signifie Auto Redémarrer le serveur lorsque le fichier a changé.
apt-get update &&
apt-get install -y build-essential libsndfile1 vim gcc g++ cmake
apt install python3-pip
pip3 install pipenv
pipenv install # Create and install dependency packages
pipenv shell # Activate the virtual environment
python3 main.py # Run
# then ctrl+c exit apt install npm
npm install pm2 -g
pm2 start pm2.json
# then the server will run in the background
Et nous avons un script en un clic pour installer pipenv et npm :
curl -LO https://raw.githubusercontent.com/LlmKira/VitsServer/main/deploy_script.sh && chmod +x deploy_script.sh && ./deploy_script.sh
Nous avons docker pull sudoskys/vits-server:main TO DOCKER HUB.
Vous pouvez également construire à partir de dockerfile.
docker build -t < image-name > . où <image-name> est le nom que vous souhaitez donner à l'image. Ensuite, utilisez la commande suivante pour démarrer le conteneur:
docker run -d -p 9557:9557 -v < local-path > /vits_model:/app/model < image-name > où <local-path> est le chemin de dossier local que vous souhaitez mapper vers le répertoire / modèle / modèle dans le conteneur.
Dans le dossier model , placez le model.pth / model.onnx et les fichiers model.json correspondants. S'il est .pth , il sera automatiquement converti en .onnx !
Vous pouvez utiliser .env pour définir VITS_SERVER_INIT_CONFIG et VITS_SERVER_INIT_MODEL pour télécharger des fichiers de modèle.
VITS_SERVER_INIT_CONFIG = " https://....json "
VITS_SERVER_INIT_MODEL = " https://.....pth?trace=233 or onnx?trace=233 " Structure du dossier model :
.
├── 1000_epochs.json
├── 1000_epochs.onnx
├── 1000_epochs.pth
├── 233_epochs.json
├── 233_epochs.onnx
└── 233_epochs.pth
Model ID est 1000_epochs et 233_epochs .
Lorsque vous mettez des fichiers de modèle dans le dossier model , vous devez redémarrer le serveur.
Vous pouvez ajouter des champs supplémentaires dans la configuration du modèle pour obtenir des informations telles que le nom du modèle correspondant à l'ID de modèle via l'API.
{
//...
"info" : {
"name" : "coco" ,
"description" : "a vits model" ,
"author" : "someone" ,
"cover" : "https://xxx.com/xxx.jpg" ,
"email" : "[email protected]"
} ,
"infer" : {
"noise_scale" : 0.667 ,
"length_scale" : 1.0 ,
"noise_scale_w" : 0.8
}
//....
} infer est les paramètres d'inférence par défaut (préférés) pour le modèle.
info sont les informations du modèle.
Vous pouvez accéder à {your_base_url}/model/list?show_speaker=True&show_ms_config=True pour obtenir des informations détaillées sur les rôles et les configurations du modèle.
Nous tenons à reconnaître les contributions des projets suivants dans le développement de ce projet: